ArcGIS REST API

Match Control Points

Match Control Points diagram

The MatchControlPoints operation is a service tool that takes a collection of ground control points in JSON as input, and at least one of the ground control points has matching tie points. The service will compute the remaining matching tie points.

Licensing

License:

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

This operation is supported at 10.6.1 and later.

Request URL

http://<Orthomapping service tool url>/MatchControlPoints/submitJob?
imageCollection={"itemId": "1780d648db3545bba8661ad98df824a4"}&inputControlPoints={
{"geometry": {"x":-118.15,"y":33.80,"z":10.0,"spatialReference":{"wkid":4326}},  
"attributes": {"imageID":22, "pointID":2, "type":2, "status":1}}

Request parameters

The following table lists the parameters with syntax and details for each.

ParameterDescription

imageCollection

The image collection (mosaic dataset) name or url.

The image service must exist before calling the service to match control points.

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

Example:

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

inputControlPoints

(Required)

The ground control point (GCP) sets written as a JSON object.

Syntax: The schema of control points JSON follows the schema of the mosaic dataset control point table. The control points must contain one geometry and one attribute set. There could be two types of control points determined by the “type” attribute—1: tie points; 2: ground control points.

Example:

[
{
"pointId”: <id>,
“x”: 
”y”:
“z”:
“xyAccuracy”:
“zAccuracy”:
“spatialReference":{<spatialReference>}, // default WGS84
“imagePointSpatialReference”: {}, // default ICS
“imagePoints”: [
{“imageId”: 
 “x”:
     “y”: 
    },
   …
   ]
}
]
Note:

The similarity tolerance for finding control points will be low.

similarity

(Optional)

Choose the tolerance level for your matching control point.

Low—The similarity tolerance for finding control points will be low. This option will produce the most control points, but some may have a higher level of error.

Medium—The similarity tolerance for finding control points will be medium.

High—The similarity tolerance for finding control points will be high. This option will produce the least number of control points, but each matching pair will have a lower level of error. This is the default.

context

Additional settings such as the input control points spatial reference can be specified here.

Example:

{"groundControlPointsSpatialReference": {“wkid”: 3459},
 "imagePointSpatialReference": {“wkid”: 3459}}
Note:
  • The spatial reference of the output ground control points and the image points is set using this context parameter.
  • If these two parameters are not set here, the tool will use the spatial reference defined in the input point set.
  • If no spatial reference is defined in the point set, the default ground control point coordinates are in longitude-latitude, and image points coordinates are in the image coordinate system.

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.

Syntax:

{ "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, use the jobId to retrieve the results. To track the status, you can make a request of the following form:

http://<Orthomapping service tool url>/MatchControlPoints/jobs/<jobId>

Accessing results

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:

http://<Orthomapping service tool url>/MatchControlPoints/jobs/<jobId>/results/result?token=<your token>&f=json

The result will be a JSON file.