ArcGIS REST API

Match Control Points

Description

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 on of the ground control points has matching tie points. The service will compute the remaining matching tie points.

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

Request parameters

ParameterDetails
imageCollection

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

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

Example:

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

inputControlPoints

(Required)

The ground control points (GCP) sets written as a JSON object. The similarity tolerance for finding control points will be low.

Syntax: The schema of the control points' JSON follows the schema of the mosaic dataset's control point table. The control points must contain one geometry and attribute set. There are two types of control points determined by the type attribute: tie points and ground control points.

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

similarity

(Optional)

Sets the similarity tolerance level for your matching control point. Low tolerance will produce the most control points, but some may have a higher level of error. Medium tolerance will produce a medium amount of control points. High tolerance will produce the least number of control points, but each matching pair will have a lower level of error. High tolerance is the default value.

context

Identifies additional settings such as the input control points spatial reference, which can be specified here. The context parameter is used to define both groundControlPointsSpatialReference and imagePointsSpatialReference. If these two parameters are not defined, the tool will use the spatial reference defined in the input point set. If no spatial reference is defined in the input point set, the default ground control point coordinates are in longitude-latitude, and the image points coordinates are in the image coordinate system.

{"groundControlPointsSpatialRefrence": {"wkid": 3459},
"imagePointSpatialReference": {"wkid": 3459}}

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, 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>/MatchControlPoints/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 tools url>/MatchControlPoints/jobs/<jobId>/results/result?token=<your token>&f=json

The result will be a JSON file.

Example usage

Below is a sample URL for MatchControlPoints.

https://services.myserver.com/arcgis/rest/services/System/OrthomappingTools/GPServer/MatchControlPoints/submitJob

JSON Request example

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}
}