implementing analysis in arcgis runtime -...
TRANSCRIPT
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?