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

James Fee

March 20, 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
  2. • On AWS (you manage) • On “Cloud” (Esri Manages)

    • Vblock (Cisco, EMC, VMWare, Intel) Photo by gwaar - http://flic.kr/p/6aGKZc
  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
  4. Python • Python IS the standard • Esri, Open Source,

    Autodesk use it • Lots of packages
  5. 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)  
  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)   arcpy.Clip_analysis(soils.shp, studbndy.shp, stdysoil)
  7. 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
  8. 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)
  9. 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/
  10. 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')
  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')
  12. Mapnik • *nix users get from GitHub (https:// github.com/mapnik/mapnik) •

    Windows users get from OSGeo4W (http://trac.osgeo.org/osgeo4w/)
  13. Two Directions • Native Clients • iOS, Android, Windows Phone,

    Blackberry • Objective-C, Java, .NET • Adobe Air • HTML5
  14. HTML5 Use the right library Works cross platform (iOS, Android,

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

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

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

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

    Basic understanding of Object-Oriented Programming Syntax • RDBMS Management and SQL • CSS
  19. 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]