ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • 帮助
  • Sign Out
ArcGIS Desktop

ArcGIS Online

专为贵组织打造的制图平台

ArcGIS Desktop

全面的专业性 GIS

ArcGIS Enterprise

面向企业的 GIS

ArcGIS Developers

用于构建位置感知应用程序的工具

ArcGIS Solutions

适用于行业的免费模板地图和应用程序

ArcGIS Marketplace

获取适用于组织的应用程序和数据

  • 文档
  • 支持
Esri
  • 登录
user
  • 我的个人资料
  • 登出

ArcMap

  • 主页
  • 入门
  • 地图
  • 分析
  • 管理数据
  • 工具
  • 扩展模块

计算变换误差

  • 描述
  • 使用方法
  • 语法
  • 代码示例
  • 环境
  • 许可信息

描述

根据要用于空间数据变换的已知控制点之间的输入链接坐标来计算残差和均方根误差 (RMSE)。

使用方法

  • 与转换要素工具相比,优先使用此工具来确定控制点是否适合预期变换,尤其是在转换大量要素之前。

  • 输入链接要素是代表相应控制点之间的变换链接的线。

  • 变换操作可在直角或平面坐标系中执行。最好选择投影坐标系 (PCS)。如果使用带有纬度和经度值的地理坐标系 (GCS),则可能会导致意外变形或计算错误。

  • 误差将通过以下三种变换方法之一进行计算:仿射、相似度和投影。每种方法都至少需要某一数量的变换链接。有关包括变换公式在内的详细信息,请参阅关于空间校正变换。

    • 仿射 - 仿射变换至少需要三个变换链接。
    • 投影 - 投影变换至少需要四个变换链接。
    • 相似 - 相似变换至少需要两个变换链接。
  • 变换结果取决于输入链接的质量。链接应起始于已知的源位置,结束于相应的目标位置,也就是所谓的控制点。控制点建立得越好,变换的结果越准确。链接的开始和结束位置的坐标用于派生用于变换方程的参数,这些参数是源控制点和目标控制点之间的最佳拟合,正如关于空间校正变换中所述。 即使使用变换参数来变换实际的源控制点,变换后的位置也不会与目标控制点位置完全匹配。这就是所谓的残差,每个变换链接都会生成残差。输入链接残差将写入包含以下字段的指定输出表格:

    • Orig_FID:输入链接要素 ID
    • X_Source:链接的源或起始端位置的 x 坐标
    • Y_Source:链接的源或起始端位置的 y 坐标
    • X_Destination:链接的目标或结束端位置的 x 坐标
    • Y_Destination:链接的目标或结束端位置的 y 坐标
    • Residual_Error:变换后位置的残差

    均方根误差 (RMSE) 也称为均方根偏差 (RMSD),在残差的基础上计算得出,可表示变换完成的质量。在处理消息中写出 RMSE 值。这也是可用于脚本或模型工作流中的派生输出参数。

    关于空间校正变换中的“了解残差和均方根”部分提供了有关计算残差和 RMSE 的更多详细信息。 可接受的 RMSE 值由您根据所掌握的输入要素及控制点的定位精度相关知识确定。如果 RMSE 值过高,您需要查看残差并放弃或替换具有高残差的链接。

语法

arcpy.edit.CalculateTransformationErrors(in_link_features, {out_link_table}, {method})
参数说明数据类型
in_link_features

空间变换的已知控制点的输入链接要素。

Feature Layer
out_link_table
(可选)

包含输入链接要素 ID 及其残差的输出表。输入链接残差将写入包含以下字段的指定输出表格:

  • Orig_FID:输入链接要素 ID
  • X_Source:链接的源或起始端位置的 x 坐标
  • Y_Source:链接的源或起始端位置的 y 坐标
  • X_Destination:链接的目标或结束端位置的 x 坐标
  • Y_Destination:链接的目标或结束端位置的 y 坐标
  • Residual_Error:变换后位置的残差
Table
method
(可选)

用于转换输入要素坐标的变换方法。

  • AFFINE —仿射变换至少需要三个变换链接。这是默认设置。
  • PROJECTIVE —投影变换至少需要四个变换链接。
  • SIMILARITY —相似变换至少需要两个变换链接。
String

派生输出

名称说明数据类型
out_rmse

报告均方根误差 (RMSE) 值。

双精度型

代码示例

CalculateTransformationErrors 示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何在即时模式下使用 CalculateTransformationErrors 函数。

import arcpy
arcpy.env.workspace = "C:/data/Countries.gdb"
arcpy.CalculateTransformationErrors_edit("control_Links", "output_Table", "AFFINE")
CalculateTransformationErrors 示例 2(独立脚本)

下面的独立脚本演示了如何在脚本环境中应用 CalculateTransformationErrors 函数。

import arcpy
import os

# all input data are in country.gdb and output will also go to this gdb
arcpy.env.workspace = os.path.join(os.getcwd(), "country.gdb")

try:
    in_links_feats = "link_features"
    out_link_table = "output_table"
    
    # transformation method
    method = "SIMILARITY"
    
    result = arcpy.CalculateTransformationErrors_edit(in_links_feats, out_link_table, method)

    # get the transformation error
    error = float(result.getOutput(1))

    # if error is less than 12.234 then run Transform Features
    if error < 20.0:
        # make a copy of the input features 
        arcpy.CopyFeatures_management(in_links_feats, "in_links_copy")
        arcpy.TransformFeatures_edit("in_links_copy", in_links_feats, method, "out_link_table")
    else:
        print("Transformation error {} is too high".format(error))
        
except arcpy.ExecuteError as aex:
    print(arcpy.GetMessages(2))
    
except Exception as ex:
    print(ex.args[0])

环境

  • 当前工作空间
  • 范围

许可信息

  • Basic: 否
  • Standard: 否
  • Advanced: 是

相关主题

  • “编辑”工具箱概述

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

关于 Esri

  • 关于我们
  • 招贤纳士
  • Esri 博客
  • 用户大会
  • 开发者峰会
Esri
分享您的想法。
Copyright © 2021 Esri. | 隐私政策 | 法律声明