ArcGIS REST API

Interpolate Points

Description

Interpolate Points diagram

The Interpolate Points task allows you to predict values at new locations based on measurements from a collection of points. The tool takes point data with values at each point and returns a raster of predicted values.

Some examples of interpolating rasters from point data include:

  • An air quality management district has sensors that measure pollution levels. InterpolatePoints can be used to predict pollution levels at locations that don't have sensors, such as locations with at-risk populations or hospitals.
  • Predict heavy metal concentrations in crops based on samples taken from individual plants.
  • Predict soil nutrient levels (nitrogen, phosphorus, potassium, and so on) and other indicators (such as electrical conductivity) in order to study their relationships to crop yield and prescribed precise amounts of fertilizer for each location in the field.
  • Meteorological applications include prediction of temperatures, rainfall, and associated variables (such as acid rain).

Request parameters

ParameterDetails
inputPointFeatures

(Required)

The point layer that contains the points where the values have been measured.

Syntax: This parameter can be specified as one of the following: a URL to a feature service layer with an optional filter to select specific features, or a feature collection.

Examples:

//Feature layer url
"inputPointFeatures":{"url": <feature service layer url>, "filter": <where clause>}

//Feature collection
"inputPointFeatures":{"layerDefinition": {}, "featureSet": {}, "filter": <where clause>}

interpolateField

(Required)

Provide the field whose values you wish to interpolate. The field must be numeric.

Syntax: A string that represents a field name. The field can contain integer or float values.

Example:

"interpolateField": "myField"

outputName

(Required)

The output image service name that will be created.

You can specify the name, or you can create an empty service using Portal Admin Sharing API and use the return JSON object as input to this parameter.

Syntax: A JSON object describes the name of the output or the output raster.

Output name example:

"outputName":{"serviceProperties":{"name":"testrasteranalysis"}}

Output raster examples:

//Output portal item:
"outputName":{"itemId": <portal item id>}

//Output url:
"outputName":{"url": <image service url}

//Output raster layer service:
"outputName":{"serviceProperties":
  {"name":"testrasteranalysis",
    "serviceUrl":"https://<server name>/server/rest/services/Hosted/testrasteranalysis/ImageServer"},
  "itemProperties":{"itemId":"8cfbd3ec25584d0d8f4ed23b8ff7c43b","folderId":"sdfwerfbd3ec25584d0d8f4"}
}

optimizeFor

Choose your preference for speed versus accuracy. More accurate predictions take longer to calculate.

This parameter alters the default values of several other parameters of InterpolatePoints in order to optimize speed of calculation, accuracy of results, or a balance of the two.

Syntax: This parameter offers three optimization methods: SPEED, BALANCE, and ACCURACY.

  • SPEED is optimized for performance.
  • BALANCE is performed with a balance between performance and accuracy. This is the default.
  • ACCURACY is optimized towards achieving the most accurate result, at the expense of some performance..

Example:

"optimizeFor": "ACCURACY"

transformData

Choose whether to transform your data to the normal distribution. Interpolation is most accurate for data that follow a normal (bell-shaped) distribution. If your data does not appear to be normally distributed, you should perform a transformation.

Syntax: A Boolean value as either false or true.

  • False means no transformation will be applied. This is suitable for data that is naturally normally distributed. This is the default.
  • True applies a suitable transformation for data that is not normally distributed.

Example:

"transformData": "True"

sizeOfLocalModels

InterpolatePoints works by building local interpolation models that are mixed together to create the final prediction map. This parameter controls how many points will be contained in each local model. Smaller values will make results more local and can reveal small-scale effects, but it may introduce some instability in the calculations. Larger values will be more stable, but some local effects can be missed.

Syntax: The value can range from 30-500.

Example:

"sizeOfLocalModels": "70"

numberOfNeighbors

Predictions are calculated based on neighboring points. This parameter controls how many points will be used in the calculation. Using a larger number of neighbors will generally produce more accurate results, but the results take longer to calculate.

Syntax: This value can range from 1 to 64, but typical values are from 5 to 15.

Example:

"numberOfNeighbors": "10"

outputCellSize

Specify the cell size to use for the output raster.

Supported units: Meters | Kilometers | Feet | Miles

The default value for this parameter is the same as the analysis environment.

Example:

"outputCellSize": {"distance":"60","units":"Meters"}

outputPredictionError

Choose whether you want to create a raster of standard errors for the predicted values.

Syntax: A Boolean value as either false or true.

  • True specifies that standard error raster will be generated.
  • False specifies that it will not be generated. This is the default.

Example:

"outputPredictionError": "True"}

context

Contains additional settings that affect task execution. This task has the following settings:

  • Extent (extent): A bounding box that defines the analysis area.
  • Output Spatial Reference (outSR): The output raster will be projected into the output spatial reference.
  • Snap Raster (snapRaster): The output raster will have its cells aligned with the specified snap raster.
  • Cell Size (cellSize): The output raster will have the resolution specified by cell size.
  • Mask (mask): Only cells that fall within the analysis mask will be considered in the operation.
f

The response format. The default response format is html.

Values: html | json

Response

When you submit a request, the task assigns a unique job ID for the transaction.

{
  "jobId": "<unique job identifier>",
  "jobStatus": "<job status>"
}

After the initial request is submitted, you can use the jobId to periodically check the status of the job and messages as described in Checking job status. Once the job has successfully completed, you use the jobId to retrieve the results. To track the status, you can make a request of the following form:

https://<raster analysis tools url>/InterpolatePoints/jobs/<jobId>

When the status of the job request is esriJobSucceeded, you can access the results of the analysis by making a request of the following form:

https://<raster analysis tools url>/InterpolatePoints/jobs/<jobId>/results/<output parameter>

Example usage

Below is a sample request URL for InterpolatePoints.

https://services.myserver.com/arcgis/rest/services/System/RasterAnalysisTools/GPServer/InterpolatePoints/submitJob

JSON response example syntax

The response returns the outputRaster and outputErrorRaster output parameters, which have properties for parameter name, data type, and value. The content of value is always the output raster dataset itemId and the image service URL.

{
  "paramName": <parameter name>,
  "dataType": "GPString",
  "value": {
    "itemId": <item Id>,
    "url": <URL>
  }
}

JSON response example

{
  "paramName": "outRaster",
  "dataType": "GPString",
  "value": {
    "itemId": "f121390b85ef419790479fc75b493efd", 
    "url": "https://<server name>/arcgis/rest/services/Hosted/<service name>/ImageServer"
  }
}