Compute Control Points


Compute Control Points diagram

The ComputeControlPoints operation is a service tool that's used to compute matching control points between images in an image collection, and for matching control points between the image collection's images and the reference image.


As of ArcGIS 10.5, you must license your ArcGIS Server as an ArcGIS Image Server to use this resource.

Request parameters


The image collection (mosaic dataset) name or URL. The image service must exist before calling ComputeControlPoints.

Syntax: A JSON object that supports three case-sensitive keys: itemId, url, and uri.


{"itemId": <portal item id>}
{"url": <image service url}
  "serviceUrl":"https://<server name>/server/rest/services/Hosted/testrasteranalysis/ImageServer"},
  "itemProperties":{"itemId":"8cfbd3ec25584d0d8f4ed23b8ff7c43b", "folderId", "sdfwerfbd3ec25584d0d8f4",: }}



The reference image service that can be used to generate control points for rectifying the image service. This setting is optional. If not given, the service tool will compute matching control points among the overlapped images in the image collection.

{"itemId": "<portal item id>"}
{"url": "<image service url>"}
{"uri": "<cloud raster uri or shared data path>"}



Allows you to specify the location accuracy of your image. This option allows you to specify the GPS location accuracy level of the source image. It determines how far the tool will search for neighboring matching images for calculating tie points and block adjustments. The following are the available options:

  • High: GPS accuracy of 0 to 10 meters, and the tool uses a maximum of 4 by 3 images.
  • Medium: GPS accuracy of 10 to 20 meters, and the tool uses a maximum of 4 by 6 images.
  • Low: GPS accuracy of 20 to 50 meters, and the tool uses a maximum of 4 by 12 images.
  • VeryLow: GPS accuracy of more than 50 meters, and the tool uses a maximum of 4 by 20 images.


Contains additional environment settings (pointSimilarity, pointDensity, pointDistribution) that affect the generation of output control points.

  • pointSimilarity: Sets LOW, MEDIUM, or HIGH tolerance for computing control points with varying levels of potential error. LOW tolerance will produce the most control point, but may have a higher level of error. HIGH tolerance will produce the least number of control point, but each matching pair will have a lower level of error. MEDIUM tolerance will set the similarity tolerance to medium.
  • pointDensity: Sets the number of tie points (LOW, MEDIUM, or HIGH), to be created. LOW point density will create the fewest number of tie points. MEDIUM point density will create a moderate number of tie points. HIGH point density will create the highest number of tie points.
  • pointDistribution: Randomly generates points that are better for overlapping areas with irregular shapes. RANDOM will generate points that are better for overlapping areas with irregular shapes. REGULAR will generate points based on a fixed pattern and uses the point density to determine how frequently to create points.

"pointSimilarity": "MEDIUM",
"pointDensity": "MEDIUM",
"pointDistribution": "RANDOM"


The response format. The default response format is html.

Values: html | json


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://<orthomapping tools url>/ComputeControlPoints/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://<orthomapping tolls url>/ComputeControlPoints/jobs/<jobId>/results/result?token=<your token>&f=json

The result will be the control points' JSON file.

Example usage

The following is a sample URL for ComputeControlPoints:

JSON Request example

imageCollection={"itemId": "1780d648db3545bba8661ad98df824a4"}&