implementing analysis in arcgis runtime -...

31
Implementing Analysis in ArcGIS Runtime Mike Branscomb Eric Bader David Lednik March 811, 2016 | Palm Springs, CA Esri Developer Summit

Upload: lamhanh

Post on 08-Sep-2018

241 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Implementing Analysis in ArcGIS Runtime - Esriproceedings.esri.com/library/userconf/devsummit16/papers/dev_int... · Implementing Analysis in ArcGIS Runtime Mike Branscomb Eric Bader

Implementing Analysis

in ArcGIS Runtime

Mike Branscomb

Eric Bader

David Lednik

March 8–11, 2016 | Palm Springs, CA

Esri Developer Summit

Page 2: Implementing Analysis in ArcGIS Runtime - Esriproceedings.esri.com/library/userconf/devsummit16/papers/dev_int... · Implementing Analysis in ArcGIS Runtime Mike Branscomb Eric Bader

Analysis

• Understand Places

• Determine relationships

• Find locations

• Detect patterns

• Observe change

• Make predictions

• analysis noun 1 a detailed examination of the structure and content of

something. 2 a statement of the results of such an examination.

• insight noun 1 the ability to gain a relatively rapid, clear and deep understanding of

the real, often hidden and usually complex nature of a situation, problem, etc.

http://www.chambers.co.uk/

Page 3: Implementing Analysis in ArcGIS Runtime - Esriproceedings.esri.com/library/userconf/devsummit16/papers/dev_int... · Implementing Analysis in ArcGIS Runtime Mike Branscomb Eric Bader

Implementing Analysis

• Visualization

• Geometric operations

• Query data

• Geoprocessing

• Network analysis

• Analysis services

Page 4: Implementing Analysis in ArcGIS Runtime - Esriproceedings.esri.com/library/userconf/devsummit16/papers/dev_int... · Implementing Analysis in ArcGIS Runtime Mike Branscomb Eric Bader

ArcGIS Online

ArcGIS for

Server

Where analysis happens

App Process

ArcGIS Runtime

LocalServer

Java, .NET, Qt

Device

Page 5: Implementing Analysis in ArcGIS Runtime - Esriproceedings.esri.com/library/userconf/devsummit16/papers/dev_int... · Implementing Analysis in ArcGIS Runtime Mike Branscomb Eric Bader

Where analysis happens

ArcGIS Runtime

In process

LocalServer

On Device

ArcGIS

Server & Online

In the cloud

Visualization Y Y Y

Geometric operations Y

Querying data Y Y Y

Network analysis Y Y Y

Geoprocessing Y Y

Analysis services Y

Page 6: Implementing Analysis in ArcGIS Runtime - Esriproceedings.esri.com/library/userconf/devsummit16/papers/dev_int... · Implementing Analysis in ArcGIS Runtime Mike Branscomb Eric Bader

Implementing Analysis

• Visualization

• Geometric operations

• Query data

• Geoprocessing

• Network analysis

• Analysis services

Page 7: Implementing Analysis in ArcGIS Runtime - Esriproceedings.esri.com/library/userconf/devsummit16/papers/dev_int... · Implementing Analysis in ArcGIS Runtime Mike Branscomb Eric Bader

…ServiceLayer

FeatureLayer

GraphicsOverlay, CsvLayer

Visualization

Display

defined by

your

app code

KmlLayer

Display

defined by

author

and service

Page 8: Implementing Analysis in ArcGIS Runtime - Esriproceedings.esri.com/library/userconf/devsummit16/papers/dev_int... · Implementing Analysis in ArcGIS Runtime Mike Branscomb Eric Bader

Visualization

• Renderers: Unique Value, Class Breaks, Temporal

• Symbols: Marker, Text, Line, Fill

• Generate Renderer operation

- http://<mapservice-layer-url>/generateRenderer

• Returns a renderer object for the input classification method and color ramp

• Use for UniqueValues or ClassBreaks

• Samples the data within the service to determine correct breaks

• Exposed as GenerateRendererTask

• …new GenerateRendererTask(“http://myserver/arcgis/rest/services/USA/MapServer/2”)

• Can use the MapService to generate a renderer for

- FeatureLayer – if using feature service associated with map service

- GraphicsOverlay – containing the results of a query against map / feature service

Page 9: Implementing Analysis in ArcGIS Runtime - Esriproceedings.esri.com/library/userconf/devsummit16/papers/dev_int... · Implementing Analysis in ArcGIS Runtime Mike Branscomb Eric Bader

Eric Bader

Visual Analysis

Page 10: Implementing Analysis in ArcGIS Runtime - Esriproceedings.esri.com/library/userconf/devsummit16/papers/dev_int... · Implementing Analysis in ArcGIS Runtime Mike Branscomb Eric Bader

Implementing Analysis

• Visualization

• Geometric operations

• Query data

• Geoprocessing

• Network analysis

• Analysis services

Page 11: Implementing Analysis in ArcGIS Runtime - Esriproceedings.esri.com/library/userconf/devsummit16/papers/dev_int... · Implementing Analysis in ArcGIS Runtime Mike Branscomb Eric Bader

Geometric Operations

• Geometric calculations

- Determine spatial relationships

- Determine distances between geometries

- Derive new geometries as the Union, Intersection, Difference…

• GeometryEngine

• Operates on arrays of individual geometries

• Not bound to data or services

• Performs a stateless computation

• Very efficient synchronous operations

• Executes within your app process

• The foundation for many workflows

- e.g. click > buffer > query > project > display

Page 12: Implementing Analysis in ArcGIS Runtime - Esriproceedings.esri.com/library/userconf/devsummit16/papers/dev_int... · Implementing Analysis in ArcGIS Runtime Mike Branscomb Eric Bader

David Lednik

Geometric

Operations

Page 13: Implementing Analysis in ArcGIS Runtime - Esriproceedings.esri.com/library/userconf/devsummit16/papers/dev_int... · Implementing Analysis in ArcGIS Runtime Mike Branscomb Eric Bader

Implementing Analysis

• Visualization

• Geometric operations

• Query data

• Geoprocessing

• Network analysis

• Analysis services

Page 14: Implementing Analysis in ArcGIS Runtime - Esriproceedings.esri.com/library/userconf/devsummit16/papers/dev_int... · Implementing Analysis in ArcGIS Runtime Mike Branscomb Eric Bader

Query Data

• Subset data by any combination of criteria

- Attribute where clause e.g. “POP >= 1000000”

- Query geometry

- Time extent

• Primary table and related tables

Page 15: Implementing Analysis in ArcGIS Runtime - Esriproceedings.esri.com/library/userconf/devsummit16/papers/dev_int... · Implementing Analysis in ArcGIS Runtime Mike Branscomb Eric Bader

Query Data

• QueryTask.ExecuteAsync

- Execution of query on server

- Organize results using GroupBy, OrderBy

- Obtains statistics for data: Sum, Min, Max, Avg, Count, StandardDeviation,

Variance

• FeatureTable.QueryAsync

- Service-FeatureTable QueryAsync executes on server

- Can force local query against cached data

- Geodatabase-FeatureTable QueryAsync executes locally

Page 16: Implementing Analysis in ArcGIS Runtime - Esriproceedings.esri.com/library/userconf/devsummit16/papers/dev_int... · Implementing Analysis in ArcGIS Runtime Mike Branscomb Eric Bader

David Lednik

Query

Page 17: Implementing Analysis in ArcGIS Runtime - Esriproceedings.esri.com/library/userconf/devsummit16/papers/dev_int... · Implementing Analysis in ArcGIS Runtime Mike Branscomb Eric Bader

Implementing Analysis

• Visualization

• Geometric operations

• Querying data

• Geoprocessing

• Network analysis

• Analysis services

Page 18: Implementing Analysis in ArcGIS Runtime - Esriproceedings.esri.com/library/userconf/devsummit16/papers/dev_int... · Implementing Analysis in ArcGIS Runtime Mike Branscomb Eric Bader

Geoprocessing

• A framework and tools for powerful GIS analysis

• Tools can be chained together to model entire workflows then

automated

• Executes:

- On device using LocalServer:- only Java, .NET, and Qt SDKs

- ArcGIS Server:- publish your own services

- ArcGIS Online:- services hosted by esri

Page 19: Implementing Analysis in ArcGIS Runtime - Esriproceedings.esri.com/library/userconf/devsummit16/papers/dev_int... · Implementing Analysis in ArcGIS Runtime Mike Branscomb Eric Bader

Geoprocessing

• Framework supports two modes:

- Sync – lighter weight service type for fast operations which returns results

directly

- Async – longer running jobs with ability monitor progress then fetch results

• Published from results/packages which validate the inputs,

processing and outputs

• Access from the API via the Geoprocessor task

• When using LocalServer use the API to administer

LocalGeoprocesingServices

Page 20: Implementing Analysis in ArcGIS Runtime - Esriproceedings.esri.com/library/userconf/devsummit16/papers/dev_int... · Implementing Analysis in ArcGIS Runtime Mike Branscomb Eric Bader

Geoprocessing

• Important considerations for building geoprocessing models to run as

a service

• Use layers for project data

• Use local data to ArcGIS Server / LocalServer

• Write intermediate data to memory

• Preprocess data used by your tasks

• Add attribute and spatial indexes

• Use synchronous rather than asynchronous where possible

• Avoid unneeded coordinate transformations

• Reduce data size

http://server.arcgis.com/en/server/latest/publish-services/windows/performance-tips-for-geoprocessing-services.htm

Page 21: Implementing Analysis in ArcGIS Runtime - Esriproceedings.esri.com/library/userconf/devsummit16/papers/dev_int... · Implementing Analysis in ArcGIS Runtime Mike Branscomb Eric Bader

David Lednik

Geoprocessing

Page 22: Implementing Analysis in ArcGIS Runtime - Esriproceedings.esri.com/library/userconf/devsummit16/papers/dev_int... · Implementing Analysis in ArcGIS Runtime Mike Branscomb Eric Bader

Implementing Analysis

• Visualization

• Geometric operations

• Querying data

• Geoprocessing

• Network analysis

• Analysis services

Page 23: Implementing Analysis in ArcGIS Runtime - Esriproceedings.esri.com/library/userconf/devsummit16/papers/dev_int... · Implementing Analysis in ArcGIS Runtime Mike Branscomb Eric Bader

Network Analysis

• Network-based spatial analysis

• Configurable transportation network data model

• Fine grained control over the calculations performed including:

- Network costs e.g. time, distance, slope, traffic

- Barriers (point, line, polygons)

- Time windows

- Vehicle capacities / capabilities

• Different implementation patterns depending on the type of analysis

Page 24: Implementing Analysis in ArcGIS Runtime - Esriproceedings.esri.com/library/userconf/devsummit16/papers/dev_int... · Implementing Analysis in ArcGIS Runtime Mike Branscomb Eric Bader

Where Network Analysis happens

ArcGIS Runtime

In process

LocalServer

On Device

ArcGIS

Server & Online

In the cloud

Optimized Routes Y Y Y *

Closest Facilities Y Y *

Service Areas Y Y *

Multi-Vehicle Routing Problem Y Y

Location Allocation Y Y

Origin Destination Matrices Y Y

* Specific optimized Network Analysis service type and associated Task type in the API

Page 25: Implementing Analysis in ArcGIS Runtime - Esriproceedings.esri.com/library/userconf/devsummit16/papers/dev_int... · Implementing Analysis in ArcGIS Runtime Mike Branscomb Eric Bader

Eric Bader

Network Analysis

Page 26: Implementing Analysis in ArcGIS Runtime - Esriproceedings.esri.com/library/userconf/devsummit16/papers/dev_int... · Implementing Analysis in ArcGIS Runtime Mike Branscomb Eric Bader

Implementing Analysis

• Visualization

• Geometric operations

• Querying data

• Network analysis

• Geoprocessing

• Analysis services

Page 27: Implementing Analysis in ArcGIS Runtime - Esriproceedings.esri.com/library/userconf/devsummit16/papers/dev_int... · Implementing Analysis in ArcGIS Runtime Mike Branscomb Eric Bader

Analysis Services

• Services hosted by esri

- Directions and routing

- https://route.arcgis.com/arcgis/index.html

- Geocoding and place search

- https://developers.arcgis.com/rest/geocode

- Spatial Analysis:

- https://developers.arcgis.com/rest/analysis

- Elevation:

- https://developers.arcgis.com/rest/elevation

• Require an ArcGIS Online or Portal subscription

• Run on a credit based model

• Determine service URLs by instantiating an ArcGISPortal and

checking ArcGISPortalInfo.HelperServices

Page 28: Implementing Analysis in ArcGIS Runtime - Esriproceedings.esri.com/library/userconf/devsummit16/papers/dev_int... · Implementing Analysis in ArcGIS Runtime Mike Branscomb Eric Bader

Mike Branscomb

Hydrology Analysis

Page 29: Implementing Analysis in ArcGIS Runtime - Esriproceedings.esri.com/library/userconf/devsummit16/papers/dev_int... · Implementing Analysis in ArcGIS Runtime Mike Branscomb Eric Bader

Implementing Analysis

• Visualization

• Geometric operations

• Querying data

• Network analysis

• Geoprocessing

• Analysis services

Page 30: Implementing Analysis in ArcGIS Runtime - Esriproceedings.esri.com/library/userconf/devsummit16/papers/dev_int... · Implementing Analysis in ArcGIS Runtime Mike Branscomb Eric Bader

Roadmap

• GPU-based visual analysis

• New renderers

- Dot density, scale dependant renderer

• LocalServer

- ~20 New Tools

- Analysis, Geocoding, Conversion, 3D Analyst, Spatial Analyst, Data

Management

- Including Lyr / Mxd support and Create Runtime Content, Package Map

- Upgraded Python

Page 31: Implementing Analysis in ArcGIS Runtime - Esriproceedings.esri.com/library/userconf/devsummit16/papers/dev_int... · Implementing Analysis in ArcGIS Runtime Mike Branscomb Eric Bader

Questions?