Match Control Points (Data Management)

Summary

Creates matching tie points for a given ground control point and initial tie point in one of the overlapping images.

The ortho mapping block adjustment workflow often involves adding ground control points for a more accurate adjustment. One ground control point is typically associated with a tie point in each overlapping image. When there are many overlapping images for one ground control point, manually creating tie points for each image is labor intensive.

Usage

  • If the input control point set doesn't have a ground control point, the tool will fail.

  • If the input control point set has ground control points but no initial tie point, the tool will fail.

  • If no associated tie points are found, the input control point set remains unchanged, and a warning message appears that states no new tie points were found.

  • An input control point set can be a JSON string object that is a list of points as shown below.

    Input control point sets

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

Parameters

LabelExplanationData Type
Input Mosaic Dataset

The mosaic dataset that contains the source imagery from which the tie points will be created.

Mosaic Dataset; Mosaic Layer
Input Control Points

The input control point set that contains a list of ground control point features and at least one initial tie point for each ground control point.

File; Feature Class; Feature Layer; String
Output Control Point Table

The output control point features that contain ground control points.

Feature Class
Similarity
(Optional)

Specifies the similarity level that will be used for matching tie points.

  • Low similarity —The similarity criteria for the two matching points will be low. This option will produce the most matching points, but some of the matches may have a higher level of error.
  • Medium similarity —The similarity criteria for the matching points will be medium.
  • High similarity —The similarity criteria for the matching points will be high. This option will produce the fewest matching points, but each match will have a lower level of error.
String

arcpy.management.MatchControlPoints(in_mosaic_dataset, in_control_points, out_control_points, {similarity})
NameExplanationData Type
in_mosaic_dataset

The mosaic dataset that contains the source imagery from which the tie points will be created.

Mosaic Dataset; Mosaic Layer
in_control_points

The input control point set that contains a list of ground control point features and at least one initial tie point for each ground control point.

File; Feature Class; Feature Layer; String
out_control_points

The output control point features that contain ground control points.

Feature Class
similarity
(Optional)

Specifies the similarity level that will be used for matching tie points.

  • LOWThe similarity criteria for the two matching points will be low. This option will produce the most matching points, but some of the matches may have a higher level of error.
  • MEDIUMThe similarity criteria for the matching points will be medium.
  • HIGHThe similarity criteria for the matching points will be high. This option will produce the fewest matching points, but each match will have a lower level of error.
String

Code sample

MatchControlPoints example 1 (Python window)

This is a Python sample for the MatchControlPoints tool.

import arcpy
mdpath = "c:/omproject/dronecollection.gdb/droneimgs"
initpointset = "c:/omproject/initialgcpset.json"
arcpy.MatchControlPoints_management(mdpath, initpointset, out_control_points="c:/omproject/matchedpointsets.shp", similarity="HIGH")
MatchControlPoints example 2 (stand-alone script)

This is a Python sample for the MatchControlPoints tool.

import arcpy
import json
mdpath = "c:/omproject/dronecollection.gdb/droneimgs"
initpointset = [
    {
        "x": -117.21684675264804,
        "y": 34.052400694386705,
        "z": 123,
        "pointId": 1,
        "imagePoints": [
            {
                "imageID": 7,
                "x": -5635883367.549803,
                "y": -26485513430.170017,
                "u": -5635883367.549803,
                "v": -26485513430.170017
            }
        ]
    }
]
arcpy.MatchControlPoints_management(
        mdpath, in_control_points=json.dumps(initpointset), out_control_points="c:/omproject/matchedpointsets.shp", similarity="HIGH")

Licensing information

  • Basic: No
  • Standard: Yes
  • Advanced: Yes

Related topics