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

Go Big or Go Home: How Much GIS Infrastructure ...

Go Big or Go Home: How Much GIS Infrastructure Do We Really Need?

Presented by:
David Nicosia - Remme Corporation

More Decks by Texas Natural Resources Information System

Other Decks in Technology

Transcript

  1. Go Big or Go Home: How Much GIS Infrastructure Do

    We Really Need? Dave Nicosia Remme Corporation
  2. “I can handle the user interface, I’m just not as

    familiar with storage options for the web.”
  3. High Level Requirements •  Collect Project Text Attributes •  Collect

    Project Geographic Features •  Store Project •  Recall Project •  Render Project as KML •  Email notice of new Project request Browser Browser Browser / Server Browser / Server, ??? / Server Server Server
  4. Project Text Attributes – Jobsite address – Contact name, email address Geographic

    Features (0 – m) Point features for comments (1 – m) Line features representing horizontal bore holes – (1) Point feature for origin – (1) Point feature for destination Start End
  5. Tool Bag Approach Browser – OpenLayers (2.x, 3) – Leaflet – Google Maps

    API – esri Javascript API – MapQuest Javascript API – Bing Maps API Server – TinyOWS + PostGIS + Postgresql – Featureserver – Flask + spatialite – PHP – CGI or FCGI + Python, Perl, BASH, C, Fortran, …
  6. Integrated Solution Approach Browser + Server – ArcGIS for Server – Google

    Maps Engine – GeoServer – OpenGeo Suite – GeoDjango
  7. Other Considerations •  Existing infrastructure •  Technologies we already know

    •  Number of expected end-users and anticipated load •  Ongoing cost (licensing, service fees, etc.) •  Security •  Reliability
  8. High Level Requirements •  Collect Project Text Attributes •  Collect

    Project Geographic Features •  Store Project •  Recall Project •  Render Project as KML •  Email notice of new Project request Browser Browser Browser / Server Browser / Server, ??? / Server Server Server
  9. High Level Requirements •  Collect Project Text Attributes •  Collect

    Project Geographic Features •  Store Project •  Recall Project •  Render Project as KML •  Email notice of new Project request Browser Browser Browser / Server Browser / Server, ??? / Server Server Server
  10. Store Project Recall Project To KML Email Notice TinyOWS +

    PostgreSQL + PostGIS Yes Yes Yes No Featureserver Yes Yes No / (maybe via OGR) No ArcGIS for Server Yes Yes Yes Maybe ArcGIS Online Yes Yes Yes Maybe Google Maps Engine Yes Yes Yes Maybe GeoServer Yes Yes Yes No OpenGeo Suite Yes Yes Yes No CartoDB Yes Yes Not really No PHP Yes Yes Yes Yes CGI (Python) Yes Yes Yes Yes
  11. Further Considerations PostGIS –  system PostgreSQL –  how to add

    PostGIS spatial extensions (permissions, version) –  system PostgreSQL updates PHP –  new to me –  additional libraries (spatial, JSON, KML, email) System Python environment –  add libraries like Psycopg2 or MySQLdb1 –  system Python updates
  12. High Level Requirements •  Store Project •  Recall Project • 

    Render Project as KML •  Email notice of new Project request
  13. “Project” JSON Representation { “id”: “xxxxxxxxxxxxxxxxxxx”, “name”:”Bob Smith”, ”email_address”: “[email protected]”,

    “job_address”: “200 Congress, Austin”, “comments”: <GeoJSON FeatureCollection>, “conduits”: <GeoJSON FeatureCollection> }
  14. High Level Requirements •  Store Project •  Recall Project • 

    Render Project as KML •  Email notice of new Project request cdsdb.py cdstokml.py cdsemail.py
  15. HTTP Resources •  Store a new Project POST projects/ • 

    Overwrite a Project POST projects/<id> •  Recall a Project GET projects/<id> •  Delete a Project DELETE projects/<id> •  Recall a Project as KML GET askml/<id> •  Email a new Project notice GET notice/<id>
  16. cdsdb.py operations 1 client – 4.5 txn/sec 2 clients –

    9.1 txn/sec 8 clients – 36.5 txn/sec
  17. Map image courtesy Bing Maps www.bing.com/maps Contact Information Job Location

    “Project” Submit Job Request Notice (via Email) Project as KML Save/Recall Project
  18. Reminded to… •  Appreciate and use existing infrastructure •  Think

    critically about requirements •  Seek simplicity