Upload
others
View
7
Download
0
Embed Size (px)
Citation preview
Koop: The Good PartsDaniel Fenton
March 8–11, 2016 | Palm Springs, CA
Esri Developer Summit
What the heck is Koop?
More like…
Universal translator
• Layer of between APIs that don’t speak ArcGIS an applications that do
• Once Koop has GeoJSON and a route it
knows what to do
• It only needs to be taught how to speak
to the remote API and how to compile
that response into GeoJSON
GeoJSON is the Lingua Franca
• FeatureServer
• Raster/Vector Tiles
• Geohash Aggregation
• Export to Shapefile, KML, CSV
How is Open Data using Koop in Production?
• One Provider: Koop-AGOL
• Shapefile, CSV, KML, GeoJSON services
• Geohash for big datasets
• Turns CSVs into Feature Services
Import/Export Workers
Queue
Cache
Web Server
Providers
• Miniature Express App
• Define routes, controller, model
• Talks to remote API
• Translates response to GeoJSON
• Calls Koop’s API
• Examples: Koop-Agol, Koop-Socrata, Koop-CKAN, Koop-Github, Koop-Zillow etc
The Cache
• Totally Optional
• Brings additional capabilities not available in the remote API
• Spatial search
• statistics
• etc
• Choose your own adventure:
• In memory: Effective but limited
• PostGIS: Feature Complete
• ElasticSearch: Experimental
• Redis: Totally hacked together
The Cache
• Totally Optional
• Brings additional capabilities not available in the remote API
• Spatial search
• statistics
• etc
• Choose your own adventure:
• In memory: Effective but limited
• PostGIS: Feature Complete
• ElasticSearch: Experimental
• Redis: Totally hacked together
Plugins
• Keep the core as small as possible
• In use today:
• Koop-Queue: For offloading jobs to workers
• Koop-Worker: Execute the jobs on the queue
• Koop-Exporter: Generate downloadable files from cached geojson
• Experimental:
• Koop-Soda: SODA API endpoint
• Koop-Polygon-Geocoder: Find the name that best matches a given area
• Koop-Tile: Cook vector and raster tiles
• Much more to come in this area before 3.0 final is released
The Roadmap
• Modular Modular Modular
• GeoXForm: Transform GeoJSON Streams into KML, Shapefile, CSV etc
• Winnow: SQL on GeoJSON
• Feature-Parser: Parse individual features from a feature collection, fast!
• ToGeoJSON: Translate Esri JSON and CSVs into GeoJSON
• Simplifiy Simplify Simplify
• Less magic, fewer parameters, more simple calls
• PRs more red than Green
• Watch the Koop 3.0 Branch
• Alpha status: Still very active development
• In production now for Open Data
Questions?
Demo
• Koop-Yelp
• Koop-Zillow
• ArcGIS Online
• Docker
• Kubernetes
• Google Container Engine
• https://github.com/dmfenton/koop-docker
• https://github.com/koopjs/koop-yelp
Questions?
@dmfenton
Further Research
• https://koopjs.github.io
• https://github.com/koopjs/koop
• https://github.com/koopjs/koop-sample-app
• https://github.com/koopjs/koop-sample-provider
• http://video.esri.com/watch/4457/koop-using-third-party-services-within-the-arcgis-platform