arcpy.rm.ComputeBlockAdjustment(in_mosaic_dataset, in_control_points, transformation_type, out_solution_table, {out_solution_point_table}, {maximum_residual_value}, {adjustment_options}, {location_accuracy}, {out_quality_table}, {DEM}, {elevation_accuracy})
|
Name
|
Explanation
|
Data type
|
|
in_mosaic_dataset
|
The input mosaic dataset that will be adjusted.
|
Mosaic Layer; Mosaic Dataset
|
|
in_control_points
|
The control point table that includes tie points and ground control points.
This feature class is usually the output from the Compute Tie Points tool.
|
Feature Layer
|
|
transformation_type
|
Specifies the type of transformation that will be used when adjusting the mosaic dataset.
POLYORDER0—A zero-order polynomial will be used in the block adjustment computation. This is commonly used when the data is in flat area.
POLYORDER1—A first-order polynomial (affine) will be used in the block adjustment computation. This is the default.
RPC—The rational polynomial coefficients (RPCs) will be used for the transformation. This is used for satellite imagery that contains RPC information in the metadata. This option requires the ArcGIS Desktop Advanced license.
Frame—The Frame camera model will be used for the transformation. This is used for aerial imagery that contains the frame camera information in the metadata. This option requires the ArcGIS Desktop Advanced license.
|
String
|
|
out_solution_table
|
The output solution table containing the adjustments.
|
Table
|
|
out_solution_point_table
(Optional)
|
The output solution points table. This will be saved as a polygon feature class. This output can be quite large.
|
Feature Class
|
|
maximum_residual_value
(Optional)
|
A threshold that is used in block adjustment computation; points with residuals exceeding the threshold will not be used. This parameter applies when the transformation type is POLYORDER0, POLYORDER1, or Frame. If the transformation type is RPC, the proper threshold for eliminating invalid points will be automatically determined.
When the transformation type is POLYORDER0 or POLYORDER1, the units for this parameter will be map units, and the default value will be 2.
When the transformation type is Frame, the units for this parameter will be pixels, and the default value will be 5.
|
Double
|
|
adjustment_options
[[name, value],...]
(Optional)
|
Additional options that will be used to fine-tune the adjustment computation.
Note:
To set an option in the Geoprocessing pane, type the keyword and the corresponding value in the list box.
MinResidual—The minimum residual value, which is the lower threshold value, will be used. When the transformation type is POLYORDER0 or POLYORDER1, the units will be map units and the default minimum residual value will be 0.
The minimum residual value and the maximum_residual_value parameter value are used in detecting and removing points that generate large errors from the block adjustment computation.
MaxResidualFactor—The maximum residual factor will be used to generate the maximum (upper threshold) residual value if the maximum_residual-value parameter is not defined. In this case, MaxResidualFactor * RMS will be used to calculate the upper threshold value.
The minimum residual value and the maximum_residual_factor parameter value are used in detecting and removing points that generate large errors from block adjustment computation.
Additional options for the adjustment engine are listed below when Frame is specified for the Transformation Type parameter. The specifications of many of the options are supplied by the data provider.
The options include the following:
CalibrateF—Calibrate the sensor's focal length for use in the block adjustment. Assign a value of 1 for focal length calibration or 0 for no calibration. The default is 0.
CalibratePP—Calibrate the principle point in the block adjustment. Assign a value of 1 for calibration or 0 for no calibration. The default is 0.
CalibrateP—Calibrate for radial distortion parameters in the block adjustment. Assign a value of 1 for calibration or 0 for no calibration. The default is 0.
CalibrateK—Calibrate for tangential distortion parameters in the block adjustment. Assign a value of 1 for calibration or 0 for no calibration. The default is 0.
Note:
Calibration parameters, such as perspective data, are usually provided for most professional digital aerial cameras, such as UltraCam or DMC. The calibration options can be 0 if camera calibration parameters are prepared in the camera table.
APrioriAccuracyX—Include the accuracy of the x-coordinate provided by the airborne Position Orientation System. The units must match PerspectiveX. If the value is set to 0, the x-coordinate of the image location is not adjusted in adjustment. This is not recommended for most UAV data.
APrioriAccuracyY—Include the accuracy of the y-coordinate provided by the airborne Position Orientation System. The units must match PerspectiveY. If the value is set to 0, the y-coordinate of the image location is not adjusted in adjustment. This is not recommended for most UAV data.
APrioriAccuracyZ—Include the accuracy of the z-coordinate provided by the airborne Position Orientation System. The units must match PerspectiveZ. If the value is set to 0, the z-coordinate of the image location is not adjusted in adjustment. This is not recommended for most UAV data.
APrioriAccuracyXY—Include the accuracy of the planar coordinate provided by the metadata. The units must match PerspectiveX. If the value is set to 0, planar coordinates (x and y) of the image location are not adjusted in adjustment. This is not recommended for most UAV data.
APrioriAccuracyXYZ—Include the accuracy of image location provided by the metadata. The units must match PerspectiveX. If the value is set to 0, the image location is not adjusted in adjustment. This is not recommended for most UAV data.
APrioriAccuracyOmega—Include the accuracy of the Omega angle provided by the airborne Position Orientation System. The units are in decimal degrees.
APrioriAccuracyPhi—Include the accuracy of the Phi angle provided by the airborne Position Orientation System. The units are in decimal degrees.
APrioriAccuracyOmegaPhi—Include the accuracy of the Omega or Phi angle provided by the airborne Position Orientation System. The units are in decimal degrees.
APrioriAccuracyKappa—Include the accuracy of the Kappa angle provided by the airborne Position Orientation System. The units are in decimal degrees.
ComputeAntennaOffset—Compute the offset between GNSS antenna center and camera projection center in adjustment. Assign a value of 1 to compute or 0 for no computation. The default is 0.
ComputeShift—Compute the GNSS signal shift in flights in bundle adjustment. Assign a value of 1 to compute or 0 for no computation. The default is 0.
ComputeImagePosteriorStd—Compute the posterior standard deviation of image location and orientation after adjustment. Assign a value of 1 to compute or 0 for no computation. The default is 1.
ComputeSolutionPointPosteriorStd—Compute the posterior standard deviation of solution points after adjustment. Assign a value of 1 to compute or 0 for no computation. The default is 0.
rigCamera—Allow processing of a multiple camera rig in the block adjustment. Assign a value of 1 to use the rigCamera module or a value of 0 to not use the rigCamera module. If a value of 1 is assigned, the relationship of multiple cameras in the adjustment will be computed. The default is 0.
Value table columns:
|
Value Table
|
|
location_accuracy
(Optional)
|
Specifies the geometric accuracy level of the images.
This parameter is only enabled if the transformation_type parameter is specified as RPC.
If LOW is specified, the control points will first be improved by an initial triangulation; then they will be used in the block adjustment calculation. The medium and high accuracy options do not require additional estimation processing.
HIGH—The accuracy will be 30 meters or less.
MEDIUM—The accuracy will be between 31 meters and 100 meters.
LOW—The accuracy will be more than 100 meters.
VERY_HIGH—The imagery was collected with a high-accuracy, differential GPS, such as RTK or PPK. This option will keep image locations fixed during block adjustment.
|
String
|
|
out_quality_table
(Optional)
|
An output table used to store adjustment quality information.
This parameter is only enabled if the transformation_type parameter is specified as RPC.
|
Table
|
|
DEM
(Optional)
|
An input DEM from which elevations will be sampled as ground control points for refining the geometric accuracy of the image network in the adjustment.
This parameter is only enabled when the transformation_type parameter is specified as Frame.
|
Raster Dataset; Raster Layer; Mosaic Dataset; Mosaic Layer
|
|
elevation_accuracy
(Optional)
|
The elevation accuracy of the input DEM. The accuracy value will be used as a weight for the sampled ground control points in the adjustment.
This parameter is only enabled when the transformation_type parameter is specified as Frame.
|
Double
|
Code sample
ComputeBlockAdjustment example 1 (Python window)
This is a Python sample for the ComputeBlockAdjustment function.
import arcpy
arcpy.rm.ComputeBlockAdjustment(
"c:/BD/BD.gdb/redQB", "c:/BD/BD.gdb/redQB_tiePoints",
"POLYORDER1", "c:/BD/BD.gdb/redQB_solution")
ComputeBlockAdjustment example 2 (stand-alone script)
This is a Python script sample for the ComputeBlockAdjustment function.
# Compute block adjustment, case 2
import arcpy
arcpy.env.workspace = "c:/workspace"
# Compute block adjustment
mdName = "BD.gdb/redlandsQB"
in_controlPoint = "BD.gdb/redlandsQB_tiePoints"
out_solutionTable = "BD.gdb/redlandsQB_solution"
arcpy.rm.ComputeBlockAdjustment(mdName, in_controlPoint,
"POLYORDER1", out_solutionTable)
ComputeBlockAdjustment example 3 (stand-alone script)
This is a Python script sample for the ComputeBlockAdjustment function.
# Compute block adjustment, case 3
import arcpy
arcpy.env.workspace = "c:/workspace"
# Compute block adjustment specifying an output point table and
# an setting an adjustment option
mdName = "BD.gdb/redlandsQB"
in_controlPoint = "BD.gdb/redlandsQB_tiePoints"
out_solutionTable = "BD.gdb/redlandsQB_solution"
out_solutionPoint = "BD.gdb/redlandsQB_solutionPoint"
engineOption = "_BAI c:/workspace/bai.txt; _BAO c:/workspace/bao.txt"
arcpy.rm.ComputeBlockAdjustment(mdName, in_controlPoint,
"POLYORDER1", out_solutionTable, out_solutionPoint,"0.5",
engineOption)