Compute Camera Model (Data Management)

Summary

Estimates the exterior camera model and interior camera model from the EXIF header of the raw image and refines the camera models. The model is then applied to the mosaic dataset with an option to use a tool-generated, high-resolution digital surface model (DSM) to achieve better orthorectification.

This is especially helpful for UAV and UAS images in which the exterior and interior camera models are coarse or undefined.

Usage

  • A typical workflow might include running the Compute Camera Model tool twice: once with the Estimate Camera Model parameter checked and specifying an Output Control Point Table parameter value, and a second time with the Refine Camera Model parameter checked and using the output from the first run as the Input Tie Point Table parameter value. The goal of this workflow is to first make a quick estimate of the camera model and then create a more accurate camera model.

  • When the GPS Location Accuracy parameter is set to Very high GPS accuracy, the orientation parameters of the imagery will be adjusted and the GPS measurements will remain fixed. Additionally, ground control points (GCPs) are not required when this option is selected. GCPs will be marked as check points in the adjustment.

Parameters

LabelExplanationData Type
Input Mosaic Dataset

The mosaic dataset on which the camera model will be built and calculated.

It is recommended that you run the Apply Block Adjustment tool on the input mosaic dataset first.

Mosaic Dataset; Mosaic Layer
Output DSM
(Optional)

A DSM raster dataset generated from the adjusted images in the mosaic dataset. If Apply Adjustment is checked, this DSM will replace the DEM in the geometric function to achieve better orthorectification.

Raster Dataset
GPS Location Accuracy
(Optional)

Specifies the accuracy level of the input images. The tool will search for images in the neighborhood to compute matching points and automatically apply an adjustment strategy based on the accuracy level.

  • High GPS accuracy The GPS accuracy is 0 to 10 meters, and the tool uses a maximum of 4 by 3 images.
  • Medium GPS accuracyThe GPS accuracy is 10 to 20 meters, and the tool uses a maximum of 4 by 6 images.
  • Low GPS accuracyThe GPS accuracy is 20 to 50 meters, and the tool uses a maximum of 4 by 12 images.
  • Very low GPS accuracyThe GPS accuracy is more than 50 meters, and the tool uses a maximum of 4 by 20 images.
  • Very high GPS accuracyImagery was collected with high-accuracy, differential GPS, such as RTK or PPK. This option will hold image locations fixed during block adjustment.
String
Estimate Camera Model
(Optional)

Specifies whether the camera model will be estimated by computing the adjustment based on eight times the mosaic dataset's source resolution. Computing the adjustment at this level will be faster but less accurate.

  • Checked—The camera model will be estimated. This is the default.
  • Unchecked—The camera model will not be estimated.
Boolean
Refine Camera Model
(Optional)

Specifies whether the camera model will be refined by computing the adjustment at the mosaic dataset resolution. Computing the adjustment at this level will provide the most accurate result.

  • Checked—The camera model will be refined by computing the adjustment at the source resolution. This is the default.
  • Unchecked—The camera model will not be refined. This option will be faster, so it is a good option when the computation does not need to be performed at the source resolution.
Boolean
Apply Adjustment
(Optional)

Specifies whether the calculated adjustment will be applied to the input mosaic dataset.

  • Checked—The calculated adjustment will be applied to the input mosaic dataset. This is the default.
  • Unchecked—The calculated adjustment will not be applied to the input mosaic dataset.
Boolean
Maximum Residual
(Optional)

The maximum residual value allowed to keep a computed control point as a valid control point. The default is 5.

Double
Initial Tie Point Resolution
(Optional)

The resolution factor at which tie points will be generated when estimating the camera model. The default value is 8, which means eight times the source pixel resolution.

For images with only minor differentiation of features, such as agriculture fields, a lower value such as 2 can be used.

Double
Output Control Point Table
(Optional)

The optional control points feature class.

Feature Class
Output Solution Table
(Optional)

The optional adjustment solution table. The solution table contains the root mean square (RMS) of the adjustment error and solution matrix.

Table
Output Solution Point Table
(Optional)

The optional solution point feature class. The solution points are the final controls points used to generate the adjustment solution.

Feature Class
Output Flight Path
(Optional)

The optional flight path line feature class.

Feature Class
Maximum Area Overlap
(Optional)

The percentage of overlap between two images to consider them duplicates.

For example, if the value is 0.9, it means if an image is 90 percent covered by another image, it will be considered a duplicate and removed.

Double
Minimum Control Point Coverage
(Optional)

The percentage indicating the control point's coverage on an image. If the coverage is less than the minimum percentage, the image will be unresolved and removed. The default is 0.

Double
Remove Off-Strip Images
(Optional)

Specifies whether images will be automatically removed if they are too far from the flight strip.

  • Unchecked—Images will not be removed. This is the default.
  • Checked—Images that are too far away from the flight strip will be removed.
Boolean
Input Tie Point Table
(Optional)

The tie point table used to compute the camera model. If a tie point table is not specified, the tool will compute its own tie points and estimate the camera model.

Feature Class
Additional Options
(Optional)

Additional options for the adjustment engine. The specifications of many of the options are supplied by the data provider.

The options include the following:

  • CalibrateF—The sensor's focal length will be calibrated for use in the block adjustment. Assign a value of 1 for focal length calibration, or 0 to not calibrate. The default is 1.
  • CalibratePP—The principle point in the block adjustment will be calibrated. Assign a value of 1 for calibration, or 0 to not calibrate. The default is 1.
  • CalibrateP—Radial distortion parameters in the block adjustment will be calibrated. Assign a value of 1 for calibration, or 0 to not calibrate. The default is 1.
  • CalibrateK—Tangential distortion parameters in the block adjustment will be calibrated. Assign a value of 1 for calibration, or 0 to not calibrate. The default is 1.
  • EstimateOPK—The Omega, Phi, and Kappa angles will be calibrated to define the rotation between the image coordinate system and the projected coordinate system. Assign a value of 0 to use orientation angles (roll, pitch, and yaw) from UAV metadata as attitude initials in the block adjustment. Use a value of 1 to estimate orientation angles, and use estimated orientation angles as attitude initials in the block adjustment. The default is 1.
    Note:

    For most DJI and Skydio cameras, a value of 0 is recommended.

  • APrioriAccuracyX—The accuracy of the x-coordinate provided by the metadata. The units must match PerspectiveX. This option is not recommended for most UAV data.
  • APrioriAccuracyY—The accuracy of the y-coordinate provided by the metadata. The units must match PerspectiveY. This option is not recommended for most UAV data.
  • APrioriAccuracyZ—The accuracy of the z-coordinate provided by the metadata. The units must match PerspectiveZ. This option is not recommended for most UAV data.
  • APrioriAccuracyXY—The accuracy of the planar coordinate provided by the metadata. The units must match PerspectiveX. This option is not recommended for most UAV data.
  • APrioriAccuracyXYZ—The accuracy of image location provided by the metadata. The units must match PerspectiveX. This option is not recommended for most UAV data.
  • APrioriAccuracyOmega—The accuracy of the Omega angle provided by the airborne Position Orientation System (POS). The units are in decimal degrees.
  • APrioriAccuracyPhi—The accuracy of the Phi angle provided by the airborne Position Orientation System (POS). The units are in decimal degrees.
  • APrioriAccuracyOmegaPhi—The accuracy of the Omega or Phi angle provided by the airborne Position Orientation System (POS). The units are in decimal degrees.
  • APrioriAccuracyKappa—The accuracy of the Kappa angle provided by the airborne Position Orientation System (POS). The units are in decimal degrees.
  • ComputeImagePosteriorStd—The posterior standard deviation of image location and orientation after adjustment will be computed. Assign a value of 1 to compute, or 0 to not compute. The default is 1.
  • ComputeSolutionPointPosteriorStd—The posterior standard deviation of solution points after adjustment will be computed. Assign a value of 1 to compute, or 0 to not compute. The default is 0.

Value Table

Derived Output

LabelExplanationData Type
Output Camera Model

The output camera model.

Mosaic Dataset; Mosaic Layer

arcpy.management.ComputeCameraModel(in_mosaic_dataset, {out_dsm}, {gps_accuracy}, {estimate}, {refine}, {apply_adjustment}, {maximum_residual}, {initial_tiepoint_resolution}, {out_control_points}, {out_solution_table}, {out_solution_point_table}, {out_flight_path}, {maximum_overlap}, {minimum_coverage}, {remove}, {in_control_points}, {options})
NameExplanationData Type
in_mosaic_dataset

The mosaic dataset on which the camera model will be built and calculated.

It is recommended that you run the Apply Block Adjustment tool on the input mosaic dataset first.

Mosaic Dataset; Mosaic Layer
out_dsm
(Optional)

A DSM raster dataset generated from the adjusted images in the mosaic dataset. If apply_adjustment is set to APPLY, this DSM will replace the DEM in the geometric function to achieve better orthorectification.

Raster Dataset
gps_accuracy
(Optional)

Specifies the accuracy level of the input images. The tool will search for images in the neighborhood to compute matching points and automatically apply an adjustment strategy based on the accuracy level.

  • HIGH The GPS accuracy is 0 to 10 meters, and the tool uses a maximum of 4 by 3 images.
  • MEDIUMThe GPS accuracy is 10 to 20 meters, and the tool uses a maximum of 4 by 6 images.
  • LOWThe GPS accuracy is 20 to 50 meters, and the tool uses a maximum of 4 by 12 images.
  • VERY_LOWThe GPS accuracy is more than 50 meters, and the tool uses a maximum of 4 by 20 images.
  • VERY_HIGHImagery was collected with high-accuracy, differential GPS, such as RTK or PPK. This option will hold image locations fixed during block adjustment.
String
estimate
(Optional)

Specifies whether the camera model will be estimated by computing the adjustment based on eight times the mosaic dataset's source resolution. Computing the adjustment at this level will be faster but less accurate.

  • ESTIMATEThe camera model will be estimated. This is the default.
  • NO_ESTIMATEThe camera model will not be estimated.
Boolean
refine
(Optional)

Specifies whether the camera model will be refined by computing the adjustment at the mosaic dataset resolution. Computing the adjustment at this level will provide the most accurate result.

  • REFINEThe camera model will be refined by computing the adjustment at the source resolution. This is the default.
  • NO_REFINEThe camera model will not be refined. This option will be faster, so it is a good option when the computation does not need to be performed at the source resolution.
Boolean
apply_adjustment
(Optional)

Specifies whether the calculated adjustment will be applied to the input mosaic dataset.

  • APPLYThe calculated adjustment will be applied to the input mosaic dataset. This is the default.
  • NO_APPLYThe calculated adjustment will not be applied to the input mosaic dataset.
Boolean
maximum_residual
(Optional)

The maximum residual value allowed to keep a computed control point as a valid control point. The default is 5.

Double
initial_tiepoint_resolution
(Optional)

The resolution factor at which tie points will be generated when estimating the camera model. The default value is 8, which means eight times the source pixel resolution.

For images with only minor differentiation of features, such as agriculture fields, a lower value such as 2 can be used.

Double
out_control_points
(Optional)

The optional control points feature class.

Feature Class
out_solution_table
(Optional)

The optional adjustment solution table. The solution table contains the root mean square (RMS) of the adjustment error and solution matrix.

Table
out_solution_point_table
(Optional)

The optional solution point feature class. The solution points are the final controls points used to generate the adjustment solution.

Feature Class
out_flight_path
(Optional)

The optional flight path line feature class.

Feature Class
maximum_overlap
(Optional)

The percentage of overlap between two images to consider them duplicates.

For example, if the value is 0.9, it means if an image is 90 percent covered by another image, it will be considered a duplicate and removed.

Double
minimum_coverage
(Optional)

The percentage indicating the control point's coverage on an image. If the coverage is less than the minimum percentage, the image will be unresolved and removed. The default is 0.

Double
remove
(Optional)

Specifies whether images will be automatically removed if they are too far from the flight strip.

  • NO_REMOVEImages will not be removed. This is the default.
  • REMOVEImages that are too far away from the flight strip will be removed.
Boolean
in_control_points
(Optional)

The tie point table used to compute the camera model. If a tie point table is not specified, the tool will compute its own tie points and estimate the camera model.

Feature Class
options
[options,...]
(Optional)

Additional options for the adjustment engine. The specifications of many of the options are supplied by the data provider.

The options include the following:

  • CalibrateF—The sensor's focal length will be calibrated for use in the block adjustment. Assign a value of 1 for focal length calibration, or 0 to not calibrate. The default is 1.
  • CalibratePP—The principle point in the block adjustment will be calibrated. Assign a value of 1 for calibration, or 0 to not calibrate. The default is 1.
  • CalibrateP—Radial distortion parameters in the block adjustment will be calibrated. Assign a value of 1 for calibration, or 0 to not calibrate. The default is 1.
  • CalibrateK—Tangential distortion parameters in the block adjustment will be calibrated. Assign a value of 1 for calibration, or 0 to not calibrate. The default is 1.
  • EstimateOPK—The Omega, Phi, and Kappa angles will be calibrated to define the rotation between the image coordinate system and the projected coordinate system. Assign a value of 0 to use orientation angles (roll, pitch, and yaw) from UAV metadata as attitude initials in the block adjustment. Use a value of 1 to estimate orientation angles, and use estimated orientation angles as attitude initials in the block adjustment. The default is 1.
    Note:

    For most DJI and Skydio cameras, a value of 0 is recommended.

  • APrioriAccuracyX—The accuracy of the x-coordinate provided by the metadata. The units must match PerspectiveX. This option is not recommended for most UAV data.
  • APrioriAccuracyY—The accuracy of the y-coordinate provided by the metadata. The units must match PerspectiveY. This option is not recommended for most UAV data.
  • APrioriAccuracyZ—The accuracy of the z-coordinate provided by the metadata. The units must match PerspectiveZ. This option is not recommended for most UAV data.
  • APrioriAccuracyXY—The accuracy of the planar coordinate provided by the metadata. The units must match PerspectiveX. This option is not recommended for most UAV data.
  • APrioriAccuracyXYZ—The accuracy of image location provided by the metadata. The units must match PerspectiveX. This option is not recommended for most UAV data.
  • APrioriAccuracyOmega—The accuracy of the Omega angle provided by the airborne Position Orientation System (POS). The units are in decimal degrees.
  • APrioriAccuracyPhi—The accuracy of the Phi angle provided by the airborne Position Orientation System (POS). The units are in decimal degrees.
  • APrioriAccuracyOmegaPhi—The accuracy of the Omega or Phi angle provided by the airborne Position Orientation System (POS). The units are in decimal degrees.
  • APrioriAccuracyKappa—The accuracy of the Kappa angle provided by the airborne Position Orientation System (POS). The units are in decimal degrees.
  • ComputeImagePosteriorStd—The posterior standard deviation of image location and orientation after adjustment will be computed. Assign a value of 1 to compute, or 0 to not compute. The default is 1.
  • ComputeSolutionPointPosteriorStd—The posterior standard deviation of solution points after adjustment will be computed. Assign a value of 1 to compute, or 0 to not compute. The default is 0.

Value Table

Derived Output

NameExplanationData Type
out_mosaic_dataset

The output camera model.

Mosaic Dataset; Mosaic Layer

Code sample

ComputeCameraModel example 1 (Python window)

This is a Python example for the ComputeCameraModel tool.

import arcpy 

arcpy.ComputeCameraModel_management("c:\data\fgdb.gdb\md", "output_DSM.tif", 
                                    "HIGH", "ESTIMATE", "REFINE", "APPLY", "5")

Licensing information

  • Basic: No
  • Standard: Requires ArcGIS Reality
  • Advanced: Yes

Related topics