arcpy.management.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})
|
名称
|
说明
|
数据类型
|
|
in_mosaic_dataset
|
将进行校正的输入镶嵌数据集。
|
Mosaic Layer; Mosaic Dataset
|
|
in_control_points
|
包含连接点和地面控制点的控制点表。
此要素类通常是计算连接点工具的输出。
|
Feature Layer
|
|
transformation_type
|
指定在校正镶嵌数据集时要使用的变换类型。
POLYORDER0—零阶多项式将用于区域网平差计算。 当数据位于平坦区域时,通常使用此方法。
POLYORDER1—一阶多项式(仿射)将用于区域网平差计算。 这是默认设置。
RPC—有理多项式系数 (RPC) 将用于变换中。 用于在元数据中包含 RPC 信息的卫星影像。 此选项需要 ArcGIS Desktop Advanced 许可。
Frame—帧相机模型将用于变换中。 用于在元数据中包含帧相机信息的航空影像。 此选项需要 ArcGIS Desktop Advanced 许可。
|
String
|
|
out_solution_table
|
输出解决方案表包含校正。
|
Table
|
|
out_solution_point_table
(可选)
|
输出解决方案点表。 该表将保存为面要素类。 此输出可能非常大。
|
Feature Class
|
|
maximum_residual_value
(可选)
|
在区域网平差计算中使用的阈值;残差大于阈值的点不会被使用。 当变换类型为 POLYORDER0、POLYORDER1 或 Frame 时,将应用此参数。 如果变换类型为 RPC,则将自动确定消除无效点的适当阈值。
当变换类型为 POLYORDER0 或 POLYORDER1 时,该参数的单位将为地图单位,且默认值将为 2。
当变换类型为 Frame 时,该参数的单位将为像素,且默认值将为 5。
|
Double
|
|
adjustment_options
[[name, value],...]
(可选)
|
将用于对校正计算进行调整的附加选项。
注:
要设置地理处理窗格中的选项,请在列表框中输入关键字和相应的值。
MinResidual—将使用的最小残差值(阈值下限)。 当变换类型为 POLYORDER0 或 POLYORDER1 时,该单位将为地图单位,且默认最小残差值将为 0。
最小残差值和 maximum_residual_value 参数值用于检测产生严重错误的点,并将这些点从区域网平差计算中移除。
MaxResidualFactor—如果未定义 maximum_residual-value 参数,则最大残差因子将用于生成最大(阈值上限)残差值。 在这种情况下,MaxResidualFactor * RMS 将用于计算阈值上限。
最小残差值和 maximum_residual_factor 参数值用于检测产生严重错误的点,并将这些点从区域网平差计算中移除。
当将变换类型参数指定为帧时,以下列出了校正引擎的附加选项。 许多选项的规格由数据提供商提供。
其中包括以下选项:
CalibrateF—校准传感器焦距,以便在区域网平差中使用。 对于焦距校准,分配值 1;对于无校准,分配值 0。 默认值为 0。
CalibratePP—在区域网平差中校准主要点。 对于校准,分配值 1;对于无校准,分配值 0。 默认值为 0。
CalibrateP—在区域网平差中校准径向畸变参数。 对于校准,分配值 1;对于无校准,分配值 0。 默认值为 0。
CalibrateK—在区域网平差中校准切向畸变参数。 对于校准,分配值 1;对于无校准,分配值 0。 默认值为 0。
注:
通常会为大多数专业数字航空相机(例如 UltraCam 或 DMC)提供校准参数(如透视数据)。 如果在 相机表 中准备了相机校准参数,则校准选项可以为 0。
APrioriAccuracyX—包含机载位置定位系统提供的 x 坐标的精度。 单位必须与 PerspectiveX 匹配。 如果该值设置为 0,则在校正中不会对图像位置的 x 坐标进行校正。 对于大多数 UAV 数据,不建议这样做。
APrioriAccuracyY—包含机载位置定位系统提供的 y 坐标的精度。 单位必须与 PerspectiveY 匹配。 如果该值设置为 0,则在校正中不会对图像位置的 y 坐标进行校正。 对于大多数 UAV 数据,不建议这样做。
APrioriAccuracyZ—包含机载位置定位系统提供的 z 坐标的精度。 单位必须与 PerspectiveZ 匹配。 如果该值设置为 0,则在校正中不会对图像位置的 z 坐标进行校正。 对于大多数 UAV 数据,不建议这样做。
APrioriAccuracyXY—包含元数据提供的平面坐标的精度。 单位必须与 PerspectiveX 匹配。 如果该值设置为 0,则在校正中不会对图像位置的平面坐标(x 和 y)进行校正。 对于大多数 UAV 数据,不建议这样做。
APrioriAccuracyXYZ—包含元数据提供的图像位置的精度。 单位必须与 PerspectiveX 匹配。 如果该值设置为 0,则在校正中不会对图像位置进行校正。 对于大多数 UAV 数据,不建议这样做。
APrioriAccuracyOmega—包含机载位置定位系统提供的 Omega 角的精度。 其单位为十进制度。
APrioriAccuracyPhi—包含机载位置定位系统提供的 Phi 角的精度。 其单位为十进制度。
APrioriAccuracyOmegaPhi—包含机载位置定位系统提供的 Omega 或 Phi 角的精度。 其单位为十进制度。
APrioriAccuracyKappa—包含机载位置定位系统提供的 Kappa 角的精度。 其单位为十进制度。
ComputeAntennaOffset—在平差中计算 GNSS 天线中心和相机投影中心之间的偏移。 对于计算,分配值 1;对于无计算,分配值 0。 默认值为 0。
ComputeShift—在光束法平差中计算飞行中的 GNSS 信号偏移。 对于计算,分配值 1;对于无计算,分配值 0。 默认值为 0。
ComputeImagePosteriorStd—计算平差后图像位置和方向的后验标准差。 对于计算,分配值 1;对于无计算,分配值 0。 默认值为 1。
ComputeSolutionPointPosteriorStd—计算平差后解决方案点的后验标准差。 对于计算,分配值 1;对于无计算,分配值 0。 默认值为 0。
rigCamera—允许在区域网平差中处理多个相机装置。 分配值 1 以使用 rigCamera 模块,分配值 0 则不使用 rigCamera 模块。 如果分配了值 1,则将计算校正中多个照相机的关系。 默认值为 0。
值表列:
|
Value Table
|
|
location_accuracy
(可选)
|
指定图像的几何精度级别。
仅当 transformation_type 参数指定为 RPC 时,此参数才有效。
如果指定 LOW,则控制点首先将通过初始三角测量改善;然后它们将在区域网平差计算中使用。 中等精度和高精度选项不需要任何其他估算处理。
|
String
|
|
out_quality_table
(可选)
|
用来存储校正质量信息的输出表格。
仅当 transformation_type 参数指定为 RPC 时,此参数才有效。
|
Table
|
|
DEM
(可选)
|
一个输入 DEM,其中的高程将作为地面控制点进行采样,以在校正中优化图像网络的几何精度。
仅当 transformation_type 参数指定为 Frame 时,此参数才可用。
|
Raster Dataset; Raster Layer; Mosaic Dataset; Mosaic Layer
|
|
elevation_accuracy
(可选)
|
输入 DEM 的高程精度。 该精度值将用作校正中已采样地面控制点的权重。
仅当 transformation_type 参数指定为 Frame 时,此参数才可用。
|
Double
|
代码示例
ComputeBlockAdjustment 示例 1(Python 窗口)
这是 ComputeBlockAdjustment 函数的 Python 示例。
import arcpy
arcpy.management.ComputeBlockAdjustment(
"c:/BD/BD.gdb/redQB", "c:/BD/BD.gdb/redQB_tiePoints",
"POLYORDER1", "c:/BD/BD.gdb/redQB_solution")
ComputeBlockAdjustment 示例 2(独立脚本)
这是 ComputeBlockAdjustment 函数的 Python 脚本示例。
#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.management.ComputeBlockAdjustment(mdName, in_controlPoint,
"POLYORDER1", out_solutionTable)
ComputeBlockAdjustment 示例 3(独立脚本)
这是 ComputeBlockAdjustment 函数的 Python 脚本示例。
#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.management.ComputeBlockAdjustment(mdName, in_controlPoint,
"POLYORDER1", out_solutionTable, out_solutionPoint,"0.5",
engineOption)