Esri Koop: Using Third Party Data Sources in ArcGIS€¦ · Esri Koop: Using Third Party Data...

Preview:

Citation preview

Patrick Hammons

Haoliang Yu

Esri Koop: Using Third Party Data

Sources in ArcGIS

Agenda

• What is Koop?

• Request lifecycle and plugins

• Koop CLI

• Demo: building Koop app and provider

What is Koop?

A web server for on-the-fly transformation of geospatial

data

• Apache licensed: all components freely reusable

• Node.js/Express.js

• Components published with NPM package manager

• Plugin architecture

• Supports GeoServices spec: the ArcGIS Feature

Server API

Why the name ‘Koop’?

FBI Special Agent Dale Cooper

Koop-Server

Koop-ProviderPlugins

Conceptual Overview

Koop-OutputPlugins

AWS S3

Pro

SceneViewer

EarthOnline

JavaScriptAPI

Clients

When to use Koop

• You want to use data in ArcGIS clients

• Data format is tied to existing business application

• Data is controlled by a third party

• No existing SDE support

• Data delivery in multiple formats

Koop-Server

Koop-Providers

Demo

Online

ArcGIS

Koop-Outputs

AWS S3

Koop Demo

Anatomy of a Koop request

/craigslist/seattle/apartments/FeatureServer/0/query

/craigslist/:host/:id/FeatureServer/:layer/:method

Provider fragment Output fragment

Koop request lifecycle

ProviderOutput

Koop Server

Client Remote

API

GeoJSONAPI

dataEsri

JSON

Cache plugin

ProviderOutput

CacheKoop Server

Client Remote

API

Cache plugin

ProviderOutput

CacheKoop Server

Client Remote

API

Authorization Plugin

ProviderOutput Auth

Plugi

n

Koop Server

Client Remote

API

Koop CLI

A command line dev tool for Koop (Haoliang Yu)

• Generate boilerplate for Koop projects

• App and all plugin types

• Install plugins and automate plugin registration

• Create dev server (app/plugin)

• Watch mode

• Debug mode

https://github.com/koopjs/koop-cli

Commands

Try it out

• Build a Koop app

• Build a Koop provider

Build an app

Build a provider

1. Construct remote URL and make request to API

2. Translate result to GeoJSON and decorate with metadata

3. Fire callback with the GeoJSON

4. Handle any errors

Build a provider - research

Example: connecting to the Socrata API

host id filters

response formatThink about Koop’s URL: /provider/:host/:id/FeatureServer/:layer/:method

Build a provider - boilerplate

Use koop-cli to generate provider boilerplate

Build a provider – the getData method

Build a provider – construct remote URL

Build a provider – make remote request

Build a provider – translate to GeoJSON

Build a provider – translate to GeoJSON

Build a provider – translate to GeoJSON

Build a provider – add metadata

Build a provider – add metadata

https://koopjs.github.io/docs/usage/provider#setting-provider-metadata-in-

getdata

Build a provider – fire callback

Koop Road Map

• Provider

• AWS Athena, AGOL, AWS S3 Select++, Elasticsearch++

• Custome data transformation

• Data catalog

• Output

• Vector Tiles++, WMS++, WFS++

• More, better docsContribute!

Koop Resources

• Github: https://github.com/koopjs

• Documentation - https://koopjs.github.io

• Koop CLI

• Demo code

• @koopjs/provider-socrata

• koop-app-example

Questions?

Patrick Hammons

phammons@esri.com

Haoliang Yu

hyu@esri.com

Print Your Certificate of Attendance

Print Stations Located in 150 Concourse Lobby

Tuesday12:30 pm – 6:30 pm

Expo

Hall B

5:15 pm – 6:30 pm

Expo Social

Hall B

Wednesday10:45 am – 5:15 pm

Expo

Hall B

6:30 pm – 9:30 pm

Networking Reception

Smithsonian National Museum

of Natural History

Download the Esri

Events app and find your event

Select the session

you attended

Scroll down to

“Survey”

Log in to access the

survey

Complete the survey

and select “Submit”

Please Share Your Feedback in the App

Recommended