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.

James Fee

April 27, 2012
Tweet

More Decks by James Fee

Other Decks in Technology

Transcript

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

    Web Services) • 64-bit (Servers) • Improving the Core Friday, April 27, 12
  2. • 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
  3. 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
  4. GIS Administrators need to understand how to configure and manage

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

    Autodesk use it • Lots of packages Friday, April 27, 12
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. Tools for Tiling • Mapnik • TileMill • ArcGIS Server

    • Polymaps (vector tiles) Friday, April 27, 12
  14. 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
  15. Two Directions • Native Clients • iOS, Android, Windows Phone,

    Blackberry • Objective-C, Java, .NET • Adobe Air • HTML5 Friday, April 27, 12
  16. HTML5 Use the right library Works cross platform (iOS, Android,

    Windows Mobile, Blackberry) Small (21kb) https://github.com/CloudMade/Leaflet Friday, April 27, 12
  17. GIS is an Engine • 80-90% of all data has

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

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

    Photo by Brad Wilson - http://flic.kr/p/31N2FD Friday, April 27, 12
  20. Where to Focus • Python (key to all GIS) •

    Basic understanding of Object-Oriented Programming Syntax • RDBMS Management and SQL • CSS Friday, April 27, 12
  21. 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: [email protected] Friday, April 27, 12