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

The State of Location Technology in 2012

The State of Location Technology in 2012

Talk given to the 2012 ASU MAS program.

1e1293843b57cc564b268f36f729a771?s=128

James Fee

April 27, 2012
Tweet

More Decks by James Fee

Other Decks in Technology

Transcript

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

    Friday, April 27, 12
  2. Photo by deviantmonk - http://flic.kr/p/6dxAqP Friday, April 27, 12

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

    27, 12
  4. Friday, April 27, 12

  5. Friday, April 27, 12

  6. Friday, April 27, 12

  7. Friday, April 27, 12

  8. Esri’s Future • ArcGIS.com (ArcGIS Online) • Hosted GIS (Amazon

    Web Services) • 64-bit (Servers) • Improving the Core Friday, April 27, 12
  9. ArcGIS.com Friday, April 27, 12

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

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

    27, 12
  12. 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 Friday, April 27, 12
  13. GIS Administrators need to understand how to configure and manage

    cloud infrastructure. Friday, April 27, 12
  14. Python • Python IS the standard • Esri, Open Source,

    Autodesk use it • Lots of packages Friday, April 27, 12
  15. 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) Friday, April 27, 12
  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) arcpy.Clip_analysis(soils.shp, studbndy.shp, stdysoil) Friday, April 27, 12
  17. 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 Friday, April 27, 12
  18. 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) Friday, April 27, 12
  19. 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/ Friday, April 27, 12
  20. 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') Friday, April 27, 12
  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') Friday, April 27, 12
  22. Tiling Photo by biblicone - http://flic.kr/p/4XRak1 Friday, April 27, 12

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

    • Polymaps (vector tiles) Friday, April 27, 12
  24. Mapnik • *nix users get from GitHub (https:// github.com/mapnik/mapnik) •

    Windows users get from OSGeo4W (http://trac.osgeo.org/osgeo4w/) Friday, April 27, 12
  25. TileMill Friday, April 27, 12

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

    12
  27. Scaling Tile Engines Friday, April 27, 12

  28. Mobile • The Future of GIS? Friday, April 27, 12

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

    Blackberry • Objective-C, Java, .NET • Adobe Air • HTML5 Friday, April 27, 12
  30. Native Clients Friday, April 27, 12

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

    Windows Mobile, Blackberry) Small (21kb) https://github.com/CloudMade/Leaflet Friday, April 27, 12
  32. Interoperability Friday, April 27, 12

  33. GIS is Not an Island Friday, April 27, 12

  34. Friday, April 27, 12

  35. GIS is an Engine • 80-90% of all data has

    a location component • GIS gives value to business intelligence engines Friday, April 27, 12
  36. Pick Your Transmission • Software • Safe Software FME (Proprietary)

    • GeoKettle (Open Source) • Service • WeoGeo • Esri (integration with Cognos) Friday, April 27, 12
  37. Programming • GIS Analysts need to be able to script

    Photo by Brad Wilson - http://flic.kr/p/31N2FD Friday, April 27, 12
  38. Friday, April 27, 12

  39. Where to Focus • Python (key to all GIS) •

    Basic understanding of Object-Oriented Programming Syntax • RDBMS Management and SQL • CSS Friday, April 27, 12
  40. 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 Friday, April 27, 12
  41. 5IBOLT 2VFTUJPOT$PNNFOUT KGFF!XFPHFPDPN !DBHFZKBNFT TQBUJBMMZBEKVTUFEDPN XFPHFPDPN Friday, April 27, 12