Find hot spots

A hot spot analysis resulting in a new layer with statistically high population values by USA county.

What is a hot spot analysis?

A hot spot analysis is the process of determining if there are statistically significant clusters in spatial data. To execute the analysis, use the spatial analysis service and the FindHotspot operation.

find hot spots

A hot spot analysis helps to find spatial trends and patterns in the data that may not be visible at first glance.

Real-world examples of this analysis include the following:

  • Finding high and low clusters of crime or traffic crash incidents.
  • Discovering the distribution of high and low property values in an area.
  • Determining where people are spending the most money in an area compared to another.

How to perform a hot spot analysis

  1. Review the parameters for the FindHotSpots operation.
  2. Send a request to get the spatial analysis service URL.
  3. Execute a job request with the following URL and parameters:
    • URL: https://<YOUR_ANALYSIS_SERVICE>/arcgis/rest/services/tasks/GPServer/FindHotSpots/submitJob
    • Parameters:
      • analysisLayer: Your dataset as a hosted feature layer or feature collection.
      • analysisField: A numeric field.
      • shapeType: Fishnet or Hexagon.
      • outputName: A string representing the name of the hosted feature layer to reutrn with the results.
  4. Check the status.
  5. Get the output layer results.

To see examples using ArcGIS API for Python, ArcGIS REST JS, and the ArcGIS REST API, go to Examples below.

URL request

Use dark colors for code blocksCopy
1
http://<YOUR_ANALYSIS_SERVICE>/arcgis/rest/services/tasks/GPServer/FindHotSpots/submitJob?<parameters>

Required parameters

NameDescriptionExamples
fThe format of the data returned.f=json f=pjson
tokenAn OAuth 2.0 access token. Learn how to get an access token in Security and authentication.token=<ACCESS_TOKEN>
analysisLayerThe point or polygon feature layer.{url:"https://services3.arcgis.com/GVgbJbqm8hXASVYi/arcgis/rest/services/Average_PDX_home_values/FeatureServer/0"}
analysisFieldUse if the analysis layer contains polygons.counts, rates, averages

Key parameters

NameDescriptionExamples
shapeTypeUse if the analysis layer contains points.hexagon, fishnet
boundingPolygonLayerWhen the analysis layer contains points and no analysisField is specified, you can provide a boundary for the analysis.{url:"https://services3.arcgis.com/GVgbJbqm8hXASVYi/arcgis/rest/services/Delaware_County_Municipal_Boundaries/FeatureServer/0"}
outputNameA string representing the name of the hosted feature layer to return with the results. NOTE: If you do not include this parameter, the results are returned as a feature collection (JSON).{"serviceProperties": {"name": "<SERVICE_NAME>"}}
contextA bounding box or output spatial reference for the analysis."extent":{"xmin:", "ymin:", "xmax:", "ymax:"}

Code examples

Find traffic crash hot spots

This example uses the FindHotSpots operation to determine where there are statistically significant clusters of Traffic crashes counted within a fishnet grid. The red clusters represent a statistically high number of crashes. The blue spots represent a statistically low number of crashes.

In the analysis, the analysisLayer value is the Traffic crashes hosted feature layer. The points in the layer are counted within a fishnet, which was set in the shapeType parameter.

Hot spot analysis showing statistically signifcant areas of traffic crashes.

APIs

ArcGIS API for PythonArcGIS API for PythonArcGIS REST JS
Expand
Use dark colors for code blocksCopy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
traffic_crashes = "https://services3.arcgis.com/GVgbJbqm8hXASVYi/arcgis/rest/services/Traffic_Crashes/FeatureServer/0"
fishnet = "fishnet"

results = find_hot_spots(
    analysis_layer=traffic_crashes,
    shape_type=fishnet,
    # Outputs results as a hosted feature layer.
    output_name="Hot spot analysis results",
)

result_features = results.layers[0].query()

print(f"The hot spot layer has {len(result_features.features)} new records")

Service requests

Request
HTTPHTTPcURL
Use dark colors for code blocksCopy
1
2
3
4
5
POST arcgis.com/sharing/rest/portals/self HTTP/1.1
Content-Type: application/x-www-form-urlencoded

&f=json
&token=<ACCESS_TOKEN>
Response (JSON)
Use dark colors for code blocksCopy
1
2
3
4
5
6
7
8
9
10
11
{
  "helperServices": {
    // Other parameters
    "analysis": {
      "url": "https://<YOUR_ANALYSIS_SERVICE>/arcgis/rest/services/tasks/GPServer"
    },
    "geoenrichment": {
      "url": "https://geoenrich.arcgis.com/arcgis/rest/services/World/GeoenrichmentServer"
    }
  }
}

Identify high and low home values

This example uses the FindHotSpots operation to determine where there are statistically significant hot and cold spots for home values in Portland. The hot and cold spots, shown as red and blue respectively, indicate whether a home's value is in a statistically high or low cluster.

In the analysis, the analysisLayer value is the Enriched Portland hexagon bins hosted feature layer. The feature layer was created using generated hexagon bins that were enriched using data from the GeoEnrichment service. To analyze home values, you set the analysisField with the AVG_CY attribute.

Hot spot analysis showing statistically significant areas of high home values.

APIs

ArcGIS API for PythonArcGIS API for PythonArcGIS REST JS
Expand
Use dark colors for code blocksCopy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
pdx_homes = {
    "url": "https://services3.arcgis.com/GVgbJbqm8hXASVYi/arcgis/rest/services/Enriched_PDX_hex_bin_tessellations/FeatureServer/0",
    "filter": "AVGVAL_CY <> 0",
}
value = "AVGVAL_CY"

results = find_hot_spots(
    analysis_layer=pdx_homes,
    analysis_field=value,
    # Outputs results as a hosted feature layer.
    output_name="Hot spot analysis results",
)

result_features = results.layers[0].query()

print(f"The hot spot layer has {len(result_features.features)} new records")

Service requests

Request
HTTPHTTPcURL
Use dark colors for code blocksCopy
1
2
3
4
5
POST arcgis.com/sharing/rest/portals/self HTTP/1.1
Content-Type: application/x-www-form-urlencoded

&f=json
&token=<ACCESS_TOKEN>
Response (JSON)
Use dark colors for code blocksCopy
1
2
3
4
5
6
7
8
9
10
11
{
  "helperServices": {
    // Other parameters
    "analysis": {
      "url": "https://<YOUR_ANALYSIS_SERVICE>/arcgis/rest/services/tasks/GPServer"
    },
    "geoenrichment": {
      "url": "https://geoenrich.arcgis.com/arcgis/rest/services/World/GeoenrichmentServer"
    }
  }
}

Tutorials

Learn how to perform related analyses interactively with Map Viewer and programmatically with ArcGIS API for Python, ArcGIS REST JS, and ArcGIS REST API.

Services

Spatial analysis service

Process spatial datasets to discover relationships and patterns.

API support

Find hot spotsFind outliersFind point clustersCalculate densityInterpolate points
ArcGIS Maps SDK for JavaScript11111
ArcGIS Maps SDK for .NET
ArcGIS Maps SDK for Kotlin
ArcGIS Maps SDK for Swift
ArcGIS Maps SDK for Java
ArcGIS Maps SDK for Qt
ArcGIS API for Python
ArcGIS REST JS11111
Esri Leaflet22222
MapBox GL JS22222
OpenLayers22222
Full supportPartial supportNo support
  • 1. Access with geoprocessing task
  • 2. Access via ArcGIS REST JS

Tools

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.