Upgrade to Pro — share decks privately, control downloads, hide ads and more …

South Florida GIS Expo 2012: Professional GIS: Argle bargle, or fooforaw

James Fee
October 11, 2012

South Florida GIS Expo 2012: Professional GIS: Argle bargle, or fooforaw

James Fee

October 11, 2012
Tweet

More Decks by James Fee

Other Decks in Technology

Transcript

  1. Professional GIS
    Argle bargle, or fooforaw
    James Fee
    Chief Evangelist - WeoGeo.com

    View Slide

  2. What is GIS?

    View Slide

  3. What is GIS?
    Who Cares?

    View Slide

  4. What are GIS Professionals?

    View Slide

  5. What are GIS Professionals?
    Programmers!

    View Slide

  6. Say
    Wut?

    View Slide

  7. Programmer /= Developer

    View Slide

  8. View Slide

  9. View Slide

  10. James’ Definition of a
    GIS Professional
    Someone digitally creates and "manipulates"
    spatial areas that may be jurisdictional,
    purpose, or application-oriented.

    View Slide

  11. Image attribution: ESRI International User Conference - 2011 - San Diego, California by Kris Krüg http://flic.kr/p/a2rdhq CC BY-NC-SA 2.0

    View Slide

  12. Embrace the
    Tools of
    Programmers

    View Slide

  13. View Slide

  14. GIS

    View Slide

  15. Esri in the 70’s

    View Slide

  16. ArcInfo

    View Slide

  17. ARC/INFO Required Prime Computer

    View Slide

  18. View Slide

  19. View Slide

  20. View Slide

  21. View Slide

  22. View Slide

  23. View Slide

  24. View Slide

  25. ArcGIS Desktop

    View Slide

  26. ArcGIS Desktop

    View Slide

  27. ArcGIS Desktop

    View Slide

  28. ArcGIS Desktop

    View Slide

  29. View Slide

  30. View Slide

  31. View Slide

  32. View Slide

  33. Why The History Lesson?

    View Slide

  34. Photo by dullhunk - http://flic.kr/p/zDLZm

    View Slide

  35. View Slide

  36. A Simpler Time

    View Slide

  37. A Simpler Time

    View Slide

  38. Problems with Wizards
    • Wizards cause us to conform
    • Options are either preset or
    confusing
    • Lack of documenting the
    process

    View Slide

  39. Familiarity is a Tough
    Nut to Crack
    Most GIS
    Professionals
    only know
    ArcToolbox

    View Slide

  40. View Slide

  41. View Slide

  42. View Slide

  43. With the Command Line
    • Freedom to work with the data as you want
    • Better understanding of the commands
    • Combined with scripting you have a recipe for
    future work. AKA documentation!

    View Slide

  44. Programming GIS
    1999-2004

    View Slide

  45. Programming GIS
    1999-2004
    • Start up ArcCatalog (wait 2-4 min while it loads)

    View Slide

  46. Programming GIS
    1999-2004
    • Start up ArcCatalog (wait 2-4 min while it loads)
    • Browse for toolbox (clicking through the endless tree)

    View Slide

  47. Programming GIS
    1999-2004
    • Start up ArcCatalog (wait 2-4 min while it loads)
    • Browse for toolbox (clicking through the endless tree)
    • Open tool dialog

    View Slide

  48. Programming GIS
    1999-2004
    • Start up ArcCatalog (wait 2-4 min while it loads)
    • Browse for toolbox (clicking through the endless tree)
    • Open tool dialog
    • Browse for input dataset

    View Slide

  49. Programming GIS
    1999-2004
    • Start up ArcCatalog (wait 2-4 min while it loads)
    • Browse for toolbox (clicking through the endless tree)
    • Open tool dialog
    • Browse for input dataset
    • Browse for any optional data for analysis

    View Slide

  50. Programming GIS
    1999-2004
    • Start up ArcCatalog (wait 2-4 min while it loads)
    • Browse for toolbox (clicking through the endless tree)
    • Open tool dialog
    • Browse for input dataset
    • Browse for any optional data for analysis
    • Browse for an output location

    View Slide

  51. Programming GIS
    1999-2004
    • Start up ArcCatalog (wait 2-4 min while it loads)
    • Browse for toolbox (clicking through the endless tree)
    • Open tool dialog
    • Browse for input dataset
    • Browse for any optional data for analysis
    • Browse for an output location
    • Fill out options

    View Slide

  52. Programming GIS
    1999-2004
    • Start up ArcCatalog (wait 2-4 min while it loads)
    • Browse for toolbox (clicking through the endless tree)
    • Open tool dialog
    • Browse for input dataset
    • Browse for any optional data for analysis
    • Browse for an output location
    • Fill out options
    • Click OK and pray it doesn’t crash

    View Slide

  53. Programming GIS the
    ArcINFO Way

    View Slide

  54. Programming GIS the
    ArcINFO Way
    • Start up Command Prompt (about a
    second)

    View Slide

  55. Programming GIS the
    ArcINFO Way
    • Start up Command Prompt (about a
    second)
    • Type simple command (BUILD, CLIP, etc)

    View Slide

  56. Programming GIS the
    ArcINFO Way
    • Start up Command Prompt (about a
    second)
    • Type simple command (BUILD, CLIP, etc)
    • Hit Enter

    View Slide

  57. Programming GIS the
    ArcINFO Way
    • Start up Command Prompt (about a
    second)
    • Type simple command (BUILD, CLIP, etc)
    • Hit Enter
    • Tell everyone how hard it was

    View Slide

  58. AML Scripting
    in ARC/INFO
    clip  soils  studbndy  stdysoil

    View Slide

  59. Where is Python Used?
    • GIS Applications (ArcGIS, QGIS, Safe FME,
    Autodesk)
    • Web Frameworks (WeoGeo.com, Google)
    • Anywhere (Corel, Civilization, Gmail)
    • Become the de-facto scripting language

    View Slide

  60. ArcPy, the New
    Command Line
    • Much like the Arc prompt and AML, ArcPy and Python
    give us a powerful analysis and scripting method.
    • ArcPy builds on the commands we learned 15 years
    ago.
    • ArcPy is integrated in ArcMap
    • Python can be extended to other GIS platforms such
    as QGIS.

    View Slide

  61. Python Scripting
    in ArcGIS
    arcpy.Clip_analysis(soils.shp,  studbndy.shp,  stdysoil)

    View Slide

  62. Python Scripting With
    ArcPy
    import  arcpy  
    from  arcpy  import  env  
    env.workspace  =  "c:/workspace"  
    #  variables

    in_features  =  "soils.shp"  
    clip_features  =  "study_boundary.shp"  
    out_feature_class  =  "c:/workspace/output/study_area_soils.shp"  
    xy_tolerance  =  ""  
    #  Execute  Clip  
    arcpy.Clip_analysis(in_features,  clip_features,

    out_feature_class,  xy_tolerance)

    View Slide

  63. Python Scripting With
    ArcPy
    import  arcpy  
    from  arcpy  import  env  
    env.workspace  =  "c:/workspace"  
    #  variables

    in_features  =  "soils.shp"  
    clip_features  =  "study_boundary.shp"  
    out_feature_class  =  "c:/workspace/output/study_area_soils.shp"  
    xy_tolerance  =  ""  
    #  Execute  Clip  
    arcpy.Clip_analysis(in_features,  clip_features,

    out_feature_class,  xy_tolerance)

    View Slide

  64. http://www.flickr.com/photos/wwarby/2989238425/
    Python

    View Slide

  65. Export to KML
    import  arcpy  
    arcpy.CheckOutExtension(“3D”)  
    env.workspace  =  "c:/workspace"  
    #  variables

    in_feature  =  "c:/data/TIGER2009/04/ARIZONA/tl_2009_04_county.lyr"  
    out_feature  =  "c:/temp/output.kmz"  
    #  Execute  KML  Export  
    arcpy.LayerToKML_conversion(in_feature,  out_feature,1)

    View Slide

  66. Export to KML
    arcpy.LayerToKML_conversion(input.shp,  output.kml,  scale)

    View Slide

  67. Python Libraries

    View Slide

  68. View Slide

  69. View Slide

  70. View Slide

  71. View Slide

  72. If you like GIS, you like
    statistics

    View Slide

  73. If you like GIS, you like
    statistics
    If you like statistics, you like
    baseball

    View Slide

  74. If you like GIS, you like
    statistics
    If you like statistics, you like
    baseball
    If you like baseball, you
    should root for the 2010
    World Series Champion
    San Francisco Giants

    View Slide

  75. Baseball as an
    Excuse to Program

    View Slide

  76. View Slide

  77. NYY 95 67 .586 +136
    BAL 93 69 .574 +7
    TAM 90 72 .556 +120
    TOR 73 89 .451 -68
    BOS 69 93 .426 -72
    DET 88 74 .543 +56
    CHS 85 77 .525 +72
    KAN 72 90 .444 -70
    CLE 68 94 .420 -178
    MIN 66 96 .407 -131
    OAK 94 68 .580 +99
    TEX 93 69 .574 +101
    LAA 89 73 .549 +68
    SEA 75 87 .463 -32
    WAS 98 64 .605 +137
    ATL 94 68 .580 +100
    PHI 81 81 .500 +4
    NYM 74 88 .457 -59
    MIA 69 93 .426 -115
    CIN 97 65 .599 +81
    STL 88 74 .543 +117
    MIL 83 79 .512 +43
    PIT 79 83 .488 -23
    CHC 61 101 .377 -146
    HOU 55 107 .340 -211
    SFG 94 68 .580 +69
    LAD 86 76 .531 +40
    ARI 81 81 .500 +46
    SDP 76 86 .469 -59
    COL 64 98 .395 -132

    View Slide

  78. View Slide

  79. #!/usr/bin/python  
    from  scipy  import  stats  
    from  pylab  import  *  
    #  Read  in  the  data.  
    mlb  =  loadtxt('mlb.txt',  dtype=[('team',  'S3'),  ('w',  'i'),  ('l',  'i'),  
    ('pct',  'f'),    ('rdiff',  'i')])  
    #  Plot  the  data  with  invisible  points.  
    scatter(mlb['rdiff'],  mlb['w'],  s=0)  
    xlabel('Run  differential')  
    ylabel('Wins')  
    #  Put  team  names  at  the  data  points.  
    for  (t,  w,  rd)  in  zip(mlb['team'],  mlb['w'],  mlb['rdiff']):  
      text(rd,  w,  t,  size=9,  
       
       horizontalalignment='center',  verticalalignment='center')  
       
    #  Perform  the  linear  regression  
    m,  b,  r,  p,  stderr  =  stats.linregress(mlb['rdiff'],  mlb['w'])  
    #  Get  endpoints  of  regression  line  and  plot  it.  
    rdMin  =  min(mlb['rdiff'])  
    wMin  =  m*rdMin  +  b  
    rdMax  =  max(mlb['rdiff'])  
    wMax  =  m*rdMax  +  b  
    plot([rdMin,  rdMax],  [wMin,  wMax])  
    show()

    View Slide

  80. #!/usr/bin/python  
    from  scipy  import  stats  
    from  pylab  import  *  
    #  Read  in  the  data.  
    mlb  =  loadtxt('mlb.txt',  dtype=[('team',  'S3'),  ('w',  'i'),  ('l',  'i'),  
    ('pct',  'f'),    ('rdiff',  'i')])  
    #  Plot  the  data  with  invisible  points.  
    scatter(mlb['rdiff'],  mlb['w'],  s=0)  
    xlabel('Run  differential')  
    ylabel('Wins')  
    #  Put  team  names  at  the  data  points.  
    for  (t,  w,  rd)  in  zip(mlb['team'],  mlb['w'],  mlb['rdiff']):  
      text(rd,  w,  t,  size=9,  
       
       horizontalalignment='center',  verticalalignment='center')  
       
    #  Perform  the  linear  regression  
    m,  b,  r,  p,  stderr  =  stats.linregress(mlb['rdiff'],  mlb['w'])  
    #  Get  endpoints  of  regression  line  and  plot  it.  
    rdMin  =  min(mlb['rdiff'])  
    wMin  =  m*rdMin  +  b  
    rdMax  =  max(mlb['rdiff'])  
    wMax  =  m*rdMax  +  b  
    plot([rdMin,  rdMax],  [wMin,  wMax])  
    show()

    View Slide

  81. View Slide

  82. View Slide

  83. Rainbows and Unicorns

    View Slide

  84. PySAL
    https://geodacenter.asu.edu/pysal

    View Slide

  85. OpenGeoDa
    • Spatial Data Manipulation
    • Visualization and Queries
    • Mapping
    • Exploratory Data Analysis
    • Spatial Statistics
    https://geodacenter.asu.edu/

    View Slide

  86. View Slide

  87. The Future for GIS
    Professionals

    View Slide

  88. So You Want to be a
    Word Processor

    View Slide

  89. The Future for
    Word Processors

    View Slide

  90. View Slide

  91. If You...
    • Put points on a map and throw up a scale
    bar
    • Perform geoprocessing without Python or
    Model Builder
    • Have a job description of “Plotter
    Operator”
    • Have no idea what “fuzzy tolerance” is

    View Slide

  92. You’ll be out of a job

    View Slide

  93. If You...
    • Embrace Python as your GIS tool of choice.
    • Use Model Builder to automate your work
    flows.
    • Learn new tools such as TileMill/Mapnik/
    PostGIS

    View Slide

  94. View Slide

  95. History of GIS
    Professionals

    View Slide

  96. View Slide

  97. View Slide

  98. Rise of the Database

    View Slide

  99. Rise of the Web

    View Slide

  100. View Slide

  101. View Slide

  102. View Slide

  103. View Slide

  104. View Slide

  105. View Slide

  106. View Slide

  107. GIS

    View Slide

  108. GIS Professionals Assimilate
    New Technology

    View Slide

  109. Technology
    Comes
    Early to
    GIS

    View Slide

  110. Don’t Settle Down with
    GIS

    View Slide

  111. Cutting edge is lots of
    work.

    View Slide

  112. View Slide

  113. One More Thing...

    View Slide

  114. WeoGeo
    OpenStreetMap

    View Slide

  115. View Slide

  116. WeoGeo OSM
    • Early availability tomorrow (10/12)
    • Clip/Ship to FGDB, GML, KML, DWG, CSV
    and FFS
    • Available Western USA, then rest of the
    world
    • Updated monthly
    • Free!

    View Slide

  117. Thanks!
    James Fee
    [email protected]
    @cageyjames
    spatiallyadjusted.com

    View Slide