high performance batch geocoding with arcgis€¦ · geocoding tools. geoprocessing service....

38
Victor Bhattacharyya High Performance Batch Geocoding with ArcGIS

Upload: others

Post on 28-Sep-2020

22 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: High Performance Batch Geocoding with ArcGIS€¦ · Geocoding Tools. Geoprocessing Service. Hosting . Server. Asynchronous Batch Geocoding. Input Table. 1. Chunks requests 2. Makes

Victor Bhattacharyya

High Performance Batch Geocoding with ArcGIS

Page 2: High Performance Batch Geocoding with ArcGIS€¦ · Geocoding Tools. Geoprocessing Service. Hosting . Server. Asynchronous Batch Geocoding. Input Table. 1. Chunks requests 2. Makes

Goal: Get the best possible batch geocoding performance from your system, be it Desktop or Enterprise

Page 3: High Performance Batch Geocoding with ArcGIS€¦ · Geocoding Tools. Geoprocessing Service. Hosting . Server. Asynchronous Batch Geocoding. Input Table. 1. Chunks requests 2. Makes

• Batch geocoding overview

• Desktop geocoding recommendations

• ArcGIS Enterprise geocoding recommendations

• Working with Clients for Enterprise

Outline

Page 4: High Performance Batch Geocoding with ArcGIS€¦ · Geocoding Tools. Geoprocessing Service. Hosting . Server. Asynchronous Batch Geocoding. Input Table. 1. Chunks requests 2. Makes

• Batch geocoding overview

• Desktop geocoding recommendations

• ArcGIS Enterprise geocoding recommendations

• Working with Clients for Enterprise

Outline

Page 5: High Performance Batch Geocoding with ArcGIS€¦ · Geocoding Tools. Geoprocessing Service. Hosting . Server. Asynchronous Batch Geocoding. Input Table. 1. Chunks requests 2. Makes

Batch GeocodingBatch Geocoding Overview

• Turns addresses into points on the map

Page 6: High Performance Batch Geocoding with ArcGIS€¦ · Geocoding Tools. Geoprocessing Service. Hosting . Server. Asynchronous Batch Geocoding. Input Table. 1. Chunks requests 2. Makes

Addresses: your dataBatch Geocoding Overview

• Addresses hard to control as a data type

• Addresses change

• Reference data changes

• Approaches must fit any need for scale

Page 7: High Performance Batch Geocoding with ArcGIS€¦ · Geocoding Tools. Geoprocessing Service. Hosting . Server. Asynchronous Batch Geocoding. Input Table. 1. Chunks requests 2. Makes

Geocoding in ArcGIS ProBatch Geocoding Overview

• Pro ships with default locators- World Geocoding Service (requires internet &

credits)- XY provider for coordinate and grid handling

• Locate pane defines available locators- Add more to your project

Page 8: High Performance Batch Geocoding with ArcGIS€¦ · Geocoding Tools. Geoprocessing Service. Hosting . Server. Asynchronous Batch Geocoding. Input Table. 1. Chunks requests 2. Makes

Locator options in ArcGIS ProBatch Geocoding Overview

• Build your own locators using the CreateLocator tool

• Use Esri-provided locators- World Geocoding Service- World Geocoder for ArcGIS- Street Map Premium locators

Page 9: High Performance Batch Geocoding with ArcGIS€¦ · Geocoding Tools. Geoprocessing Service. Hosting . Server. Asynchronous Batch Geocoding. Input Table. 1. Chunks requests 2. Makes

• Batch geocoding overview

• Desktop geocoding recommendations

• ArcGIS Enterprise geocoding recommendations

• Working with Clients for Enterprise

Outline

Page 10: High Performance Batch Geocoding with ArcGIS€¦ · Geocoding Tools. Geoprocessing Service. Hosting . Server. Asynchronous Batch Geocoding. Input Table. 1. Chunks requests 2. Makes

Desktop Geocoding RecommendationsBest practices for local geocoding

• Use the latest version of ArcGIS Pro (2.3)

• Use new locators

- Most recent release of SMP locators

- Build your own locators with the CreateLocator tool in ArcGIS Pro 2.3

• Set the number of threads on your locator to “Auto”

- This uses 1 less than the number of cores on your machine

• Put the locator and input table on a solid state drive

• Use the Geocode Table pane in ArcGIS Pro

• Automate the process with the GeocodeAddresses GP Tool

Page 11: High Performance Batch Geocoding with ArcGIS€¦ · Geocoding Tools. Geoprocessing Service. Hosting . Server. Asynchronous Batch Geocoding. Input Table. 1. Chunks requests 2. Makes

Automating Desktop Geocoding: Geocode Addresses Best practices for local geocoding

Page 12: High Performance Batch Geocoding with ArcGIS€¦ · Geocoding Tools. Geoprocessing Service. Hosting . Server. Asynchronous Batch Geocoding. Input Table. 1. Chunks requests 2. Makes

• Batch geocoding overview

• Desktop geocoding recommendations

• ArcGIS Enterprise geocoding recommendations

• Working with Clients for Enterprise

Outline

Page 13: High Performance Batch Geocoding with ArcGIS€¦ · Geocoding Tools. Geoprocessing Service. Hosting . Server. Asynchronous Batch Geocoding. Input Table. 1. Chunks requests 2. Makes

ArcGIS Enterprise Recommended Batch Geocoding SystemArchitecture

• Get the most performance out of your enterprise geocoding services

• Manage backend resources

• Perform batch geocoding behind your organizational firewall

• Has chunking and retry logic built-in

ArcGIS Portal

GIS Servers

Geocode Server

World Locator ServiceSMP Locator Service(s)

GeocodingToolsGeoprocessing Service

Hosting Server

Page 14: High Performance Batch Geocoding with ArcGIS€¦ · Geocoding Tools. Geoprocessing Service. Hosting . Server. Asynchronous Batch Geocoding. Input Table. 1. Chunks requests 2. Makes

System RecommendationsBest practices for Enterprise geocoding

• Use the latest version of Asynchronous Batch Geocoding enabled clients- Geocode Locations from Table Mapviewer tool -> Web- Geocode Table and Geocode Locations from Table in ArcGIS Pro 2.3 -> Desktop- arcpy.geocoding.GeoocdeLocationsFromTable() and GeocodeFile API -> Scripting

• ArcGIS Server- Multiple cores (the more the better)- Enough memory for those cores (locator size + 500MB per core)- SSD Drive- Fast processors

Page 15: High Performance Batch Geocoding with ArcGIS€¦ · Geocoding Tools. Geoprocessing Service. Hosting . Server. Asynchronous Batch Geocoding. Input Table. 1. Chunks requests 2. Makes

How the system works

GIS Servers

Geocode Server

World Locator ServiceSMP Locator Service(s)Custom Locator Service

Main Process

Hosting Server

Asynchronous Batch Geocoding

Input Table

1. Chunks requests2. Makes geocodeAddresses API calls to the geocoding service3. Uses retry logic to retry failed requests4. Receives geocoding results5. Stitches together results

Page 16: High Performance Batch Geocoding with ArcGIS€¦ · Geocoding Tools. Geoprocessing Service. Hosting . Server. Asynchronous Batch Geocoding. Input Table. 1. Chunks requests 2. Makes

How the system works

GIS Servers

Geocode Server

World Locator ServiceSMP Locator Service(s)Custom Locator Service

Geocoding ToolsGeoprocessing Service

Hosting Server

Asynchronous Batch Geocoding

Input Table

1. Chunks requests2. Makes geocodeAddresses API calls to the geocoding service3. Uses retry logic to retry failed requests4. Receives geocoding results5. Stitches together results

Page 17: High Performance Batch Geocoding with ArcGIS€¦ · Geocoding Tools. Geoprocessing Service. Hosting . Server. Asynchronous Batch Geocoding. Input Table. 1. Chunks requests 2. Makes

How the system works

GIS Servers

Geocode Server

World Locator ServiceSMP Locator Service(s)Custom Locator Service

Geocoding ToolsGeoprocessing Service

Hosting Server

Asynchronous Batch Geocoding

Input Table

“numBatchThreads”: 4

1. Chunks requests2. Makes geocodeAddresses API calls to the geocoding service3. Uses retry logic to retry failed requests4. Receives geocoding results5. Stitches together results

Page 18: High Performance Batch Geocoding with ArcGIS€¦ · Geocoding Tools. Geoprocessing Service. Hosting . Server. Asynchronous Batch Geocoding. Input Table. 1. Chunks requests 2. Makes

How the system works

GIS Servers

Geocode Server Geocoding ToolsGeoprocessing Service

Hosting Server

Asynchronous Batch Geocoding

Input Table

Output Feature Layer

“numBatchThreads”: 4

World Locator ServiceSMP Locator Service(s)Custom Locator Service

1. Chunks requests2. Makes geocodeAddresses API calls to the geocoding service3. Uses retry logic to retry failed requests4. Receives geocoding results5. Stitches together results6. Makes output available for download

Page 19: High Performance Batch Geocoding with ArcGIS€¦ · Geocoding Tools. Geoprocessing Service. Hosting . Server. Asynchronous Batch Geocoding. Input Table. 1. Chunks requests 2. Makes

NumBatchThreads: A Closer LookArchitecture

“numBatchThreads”: 4

Geocoding Services

GeocodingTools Geoprocessing Service

Page 20: High Performance Batch Geocoding with ArcGIS€¦ · Geocoding Tools. Geoprocessing Service. Hosting . Server. Asynchronous Batch Geocoding. Input Table. 1. Chunks requests 2. Makes

NumBatchThreads with Multiple UsersArchitecture

“numBatchThreads”: 2

Geocoding Services

GeocodingTools Geoprocessing Service

Page 22: High Performance Batch Geocoding with ArcGIS€¦ · Geocoding Tools. Geoprocessing Service. Hosting . Server. Asynchronous Batch Geocoding. Input Table. 1. Chunks requests 2. Makes

Configuration Demo

Page 23: High Performance Batch Geocoding with ArcGIS€¦ · Geocoding Tools. Geoprocessing Service. Hosting . Server. Asynchronous Batch Geocoding. Input Table. 1. Chunks requests 2. Makes

• Batch geocoding overview

• Desktop geocoding recommendations

• ArcGIS Enterprise geocoding recommendations

• Working with Clients for Enterprise

Outline

Page 24: High Performance Batch Geocoding with ArcGIS€¦ · Geocoding Tools. Geoprocessing Service. Hosting . Server. Asynchronous Batch Geocoding. Input Table. 1. Chunks requests 2. Makes

Clients for geocoding data on the Portal

Page 25: High Performance Batch Geocoding with ArcGIS€¦ · Geocoding Tools. Geoprocessing Service. Hosting . Server. Asynchronous Batch Geocoding. Input Table. 1. Chunks requests 2. Makes

Demo in Pro

Page 26: High Performance Batch Geocoding with ArcGIS€¦ · Geocoding Tools. Geoprocessing Service. Hosting . Server. Asynchronous Batch Geocoding. Input Table. 1. Chunks requests 2. Makes

Demo in MapViewer

Page 27: High Performance Batch Geocoding with ArcGIS€¦ · Geocoding Tools. Geoprocessing Service. Hosting . Server. Asynchronous Batch Geocoding. Input Table. 1. Chunks requests 2. Makes

Automating Enterprise Geocoding: Geocode Locations from Table Python

Page 28: High Performance Batch Geocoding with ArcGIS€¦ · Geocoding Tools. Geoprocessing Service. Hosting . Server. Asynchronous Batch Geocoding. Input Table. 1. Chunks requests 2. Makes

API for geocoding data on a local machine

Page 29: High Performance Batch Geocoding with ArcGIS€¦ · Geocoding Tools. Geoprocessing Service. Hosting . Server. Asynchronous Batch Geocoding. Input Table. 1. Chunks requests 2. Makes

New Approach: GeocodeFile

GIS Servers

Geocode Server

World Locator ServiceSMP Locator Service(s)Custom Locator Service

Hosting Server

• Input needs to be uploaded to the server as a zipped gdb, or a zipped CSV or XLSX file

• Output CSV, XLSX or Feature Class is available for download from the server when the job is completed

• Geocode File API available in ArcGIS Enterprise 10.7

Geocoding Output

Client uploads table to server

Client downloadsgeocoding results

- Discover available geocoding services- Authenticate requests

GeocodingTools GP Service

ArcGIS Server

ArcGIS Portal

1

2

4

Chunking and geocoding3

Best practices for Enterprise geocoding

Page 30: High Performance Batch Geocoding with ArcGIS€¦ · Geocoding Tools. Geoprocessing Service. Hosting . Server. Asynchronous Batch Geocoding. Input Table. 1. Chunks requests 2. Makes

Automating Enterprise GeocodingGeocode File API

Page 31: High Performance Batch Geocoding with ArcGIS€¦ · Geocoding Tools. Geoprocessing Service. Hosting . Server. Asynchronous Batch Geocoding. Input Table. 1. Chunks requests 2. Makes

Automating Enterprise GeocodingGeocode File API (Part 2)

Page 32: High Performance Batch Geocoding with ArcGIS€¦ · Geocoding Tools. Geoprocessing Service. Hosting . Server. Asynchronous Batch Geocoding. Input Table. 1. Chunks requests 2. Makes

Clients for geocoding data on a Big Data File Share

(BDFS Input)

Page 33: High Performance Batch Geocoding with ArcGIS€¦ · Geocoding Tools. Geoprocessing Service. Hosting . Server. Asynchronous Batch Geocoding. Input Table. 1. Chunks requests 2. Makes

GeoAnalytics: Geocode Locations from Table Data in HDFS -> Geocode Locations from Table GeoAnalytics tool

• If you have the GeoAnalytics Extension enabled in ArcGIS Enterprise this tool appears in the map viewer

• Has chunking and retry logic built-in

• Takes input table from a BDFS in ArcGIS Enterprise

Page 34: High Performance Batch Geocoding with ArcGIS€¦ · Geocoding Tools. Geoprocessing Service. Hosting . Server. Asynchronous Batch Geocoding. Input Table. 1. Chunks requests 2. Makes

GeoAnalytics: Geocoding via the Python APIData in HDFS -> Geocode Locations from Table GeoAnalytics tool

• GeoAnalytics tool exposed via the “geoanalytics” module in the Python API

• Has chunking and retry logic built-in

• Takes input table from a BDFS in ArcGIS Enterprise

Page 35: High Performance Batch Geocoding with ArcGIS€¦ · Geocoding Tools. Geoprocessing Service. Hosting . Server. Asynchronous Batch Geocoding. Input Table. 1. Chunks requests 2. Makes

Configuring Geocode Locations GeoAnalytics ToolData in HDFS -> Geocode Locations from Table GeoAnalytics tool

• Add the geocoding service as a utility service in your organization

• Set the “percentageMaxAllowedComputeCores” and “percentageMaxAllowedComputeMemory” system properties

• Read more at: http://enterprise.arcgis.com/en/server/latest/get-started/windows/geoanalytics-settings.htm

https://<machine_name>/server/admin/system/properties/update

Page 36: High Performance Batch Geocoding with ArcGIS€¦ · Geocoding Tools. Geoprocessing Service. Hosting . Server. Asynchronous Batch Geocoding. Input Table. 1. Chunks requests 2. Makes

Complete answersand select “Submit”

Scroll down to find the feedback section

Select the session you attended

Download the Esri Events app and find your event

Please Take Our Survey on the App

Page 37: High Performance Batch Geocoding with ArcGIS€¦ · Geocoding Tools. Geoprocessing Service. Hosting . Server. Asynchronous Batch Geocoding. Input Table. 1. Chunks requests 2. Makes

Questions?

Page 38: High Performance Batch Geocoding with ArcGIS€¦ · Geocoding Tools. Geoprocessing Service. Hosting . Server. Asynchronous Batch Geocoding. Input Table. 1. Chunks requests 2. Makes