Implementing Analysis in ArcGIS Runtime -...

Preview:

Citation preview

Implementing Analysis

in ArcGIS Runtime

Mike Branscomb

Eric Bader

David Lednik

March 8–11, 2016 | Palm Springs, CA

Esri Developer Summit

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/

Implementing Analysis

• Visualization

• Geometric operations

• Query data

• Geoprocessing

• Network analysis

• Analysis services

ArcGIS Online

ArcGIS for

Server

Where analysis happens

App Process

ArcGIS Runtime

LocalServer

Java, .NET, Qt

Device

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

Implementing Analysis

• Visualization

• Geometric operations

• Query data

• Geoprocessing

• Network analysis

• Analysis services

…ServiceLayer

FeatureLayer

GraphicsOverlay, CsvLayer

Visualization

Display

defined by

your

app code

KmlLayer

Display

defined by

author

and service

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

Eric Bader

Visual Analysis

Implementing Analysis

• Visualization

• Geometric operations

• Query data

• Geoprocessing

• Network analysis

• Analysis services

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

David Lednik

Geometric

Operations

Implementing Analysis

• Visualization

• Geometric operations

• Query data

• Geoprocessing

• Network analysis

• Analysis services

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

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

David Lednik

Query

Implementing Analysis

• Visualization

• Geometric operations

• Querying data

• Geoprocessing

• Network analysis

• Analysis services

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

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

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

David Lednik

Geoprocessing

Implementing Analysis

• Visualization

• Geometric operations

• Querying data

• Geoprocessing

• Network analysis

• Analysis services

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

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

Eric Bader

Network Analysis

Implementing Analysis

• Visualization

• Geometric operations

• Querying data

• Network analysis

• Geoprocessing

• Analysis services

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

Mike Branscomb

Hydrology Analysis

Implementing Analysis

• Visualization

• Geometric operations

• Querying data

• Network analysis

• Geoprocessing

• Analysis services

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

Questions?

Recommended