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

ASU Masters of Advanced Study Workshop - The State of Location Technology

ASU Masters of Advanced Study Workshop - The State of Location Technology

1e1293843b57cc564b268f36f729a771?s=128

James Fee

March 20, 2012
Tweet

More Decks by James Fee

Other Decks in Technology

Transcript

  1. The State of Location Technology James Fee Chief Evangelist, WeoGeo.com

  2. Photo by deviantmonk - http://flic.kr/p/6dxAqP

  3. Photo by Just Joe ( Again) - http://flic.kr/p/9RfZYx

  4. None
  5. None
  6. None
  7. None
  8. None
  9. Esri’s Future • ArcGIS.com (ArcGIS Online) • Hosted GIS (Amazon

    Web Services) • 64-bit (Servers) • Improving the Core
  10. ArcGIS.com

  11. • On AWS (you manage) • On “Cloud” (Esri Manages)

    • Vblock (Cisco, EMC, VMWare, Intel) Photo by gwaar - http://flic.kr/p/6aGKZc
  12. Esri on AWS Photo by Yakinik - http://flic.kr/p/83MjSx

  13. Esri on AWS • Pre-configured AMI • ArcGIS for Server

    AMI (ArcGIS Server Standard) • Enterprise Geodatabase AMI (ArcGIS Server Advanced w/ Postgres) Photo by Yakinik - http://flic.kr/p/83MjSx
  14. GIS Administrators need to understand how to configure and manage

    cloud infrastructure.
  15. Python • Python IS the standard • Esri, Open Source,

    Autodesk use it • Lots of packages
  16. Back to Arc 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)  
  17. Back to Arc 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)   arcpy.Clip_analysis(soils.shp, studbndy.shp, stdysoil)
  18. WeoGeo Uses Python import  WeoGeoAPI   #do  a  simple  browse

     of  WeoGeo  Market   session  =  WeoGeoAPI.weoSession('market.weogeo.com',  '',  '')   session.connectToMarket()   #send  some  parameters  to  look  for  vector  data  sets  covering  Washington,  DC.   datasets  =  session.getDatasets('JSON',   '&data_type=VECTOR&per_page=2&page=1&north=39.043&south=38.767&west=-­‐77.2&east=-­‐77 .906')   #prints  the  raw  JSON  response   print  datasets
  19. Python Packages • Shapely - manipulate and analyze geometric objects

    (PostGIS-like) • Fiona - minimal interface to OGR (treats geometry as data) • Rtree - spatial index for python (integrates with many python libraries)
  20. Feedparser >>>  import  feedparser   >>>  feed  =  feedparser.parse("http://earthquake.usgs.gov/ earthquakes/catalogs/1hour-­‐M1.xml")

      >>>  feed.entries[0]['where']   {'type':  'Point',  'coordinates':  (-­‐122.8282,   38.844700000000003)}   http://sgillies.net/blog/1129/feedparser-­‐and-­‐georssgml/
  21. Mapnik #!/usr/bin/env  python   from  mapnik  import  *   #

     Map   m  =  Map(600,300,'+proj=latlong  +datum=WGS84')   m.background  =  Color('steelblue')   #  Styles   poly  =  PolygonSymbolizer(Color('lavender'))   line  =  LineSymbolizer(Color('slategray'),.3)   s,r  =  Style(),Rule()   r.symbols.extend([poly,line])   s.rules.append(r)   m.append_style('My  Style',s)   #  Layer   lyr  =  Layer('world')   lyr.datasource  =  Shapefile(file='../data/world_borders')   lyr.srs  =  '+proj=latlong  +datum=WGS84'   lyr.styles.append('My  Style')   m.layers.append(lyr)   #  Render   m.zoom_to_box(lyr.envelope())   render_to_file(m,  'map/hello_world_in_pure_python.png')
  22. Mapnik #!/usr/bin/env  python   from  mapnik  import  *   #

     Map   m  =  Map(600,300,'+proj=latlong  +datum=WGS84')   m.background  =  Color('steelblue')   #  Styles   poly  =  PolygonSymbolizer(Color('lavender'))   line  =  LineSymbolizer(Color('slategray'),.3)   s,r  =  Style(),Rule()   r.symbols.extend([poly,line])   s.rules.append(r)   m.append_style('My  Style',s)   #  Layer   lyr  =  Layer('world')   lyr.datasource  =  Shapefile(file='../data/world_borders')   lyr.srs  =  '+proj=latlong  +datum=WGS84'   lyr.styles.append('My  Style')   m.layers.append(lyr)   #  Render   m.zoom_to_box(lyr.envelope())   render_to_file(m,  'map/hello_world_in_pure_python.png')
  23. Tiling Photo by biblicone - http://flic.kr/p/4XRak1

  24. Tools for Tiling • Mapnik • TileMill • ArcGIS Server

    • Polymaps (vector tiles)
  25. Mapnik • *nix users get from GitHub (https:// github.com/mapnik/mapnik) •

    Windows users get from OSGeo4W (http://trac.osgeo.org/osgeo4w/)
  26. TileMill

  27. TileMill http://www.mapbox.com/tilemill/ OS X, Linux and Windows

  28. Scaling Tile Engines

  29. Scaling Tile Engines

  30. Mobile • The Future of GIS?

  31. Two Directions • Native Clients • iOS, Android, Windows Phone,

    Blackberry • Objective-C, Java, .NET • Adobe Air • HTML5
  32. Native Clients

  33. HTML5 Use the right library Works cross platform (iOS, Android,

    Windows Mobile, Blackberry) Small (21kb) https://github.com/CloudMade/Leaflet
  34. Interoperability

  35. GIS is Not an Island

  36. None
  37. GIS is an Engine • 80-90% of all data has

    a location component • GIS gives value to business intelligence engines
  38. Pick Your Transmission • Software • Safe Software FME (Proprietary)

    • GeoKettle (Open Source) • Service • WeoGeo • Esri (integration with Cognos)
  39. Programming • GIS Analysts need to be able to script

    Photo by Brad Wilson - http://flic.kr/p/31N2FD
  40. None
  41. Where to Focus • Python (key to all GIS) •

    Basic understanding of Object-Oriented Programming Syntax • RDBMS Management and SQL • CSS
  42. One Last Thing WeoGeo Internship - Geodata Processor The main

    goal of this position will be to create and maintain data listings for WeoGeo’s clients. A listing is a web representation of a geo-dataset. You will be exposed to several leading GIS software packages (ESRI’s ArcGIS suite, Pitney Bowes’ MapInfo product, ITT’s ENVI, and Safe’s FME Server), many geo-data formats (ESRI Shape, MapInfo TAB, ENVI, ...), and cutting edge web mapping technologies (MapNik, OpenLayers,..). Prior knowledge in any of these is a plus but is not required. However, an ability to demonstrate a basic understanding of GIS and cartographic principals is required. Scripted programming experience (Python, Ruby, bash) is desired but not critical. email resume to: jfee@weogeo.com
  43. 5IBOLT 2VFTUJPOT$PNNFOUT KGFF!XFPHFPDPN !DBHFZKBNFT TQBUJBMMZBEKVTUFEDPN XFPHFPDPN