ArcGIS Desktop

  • 文档
  • 支持

  • My Profile
  • 帮助
  • Sign Out
ArcGIS Desktop

ArcGIS Online

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

ArcGIS Desktop

全面的专业性 GIS

ArcGIS Enterprise

面向企业的 GIS

ArcGIS for Developers

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

ArcGIS Solutions

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

ArcGIS Marketplace

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

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

ArcMap

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

计算转换错误

  • 摘要
  • 用法
  • 语法
  • 代码示例
  • 环境
  • 许可信息

摘要

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

用法

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

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

  • 变换可在直角坐标系或平面坐标系中使用。强烈建议使用投影坐标系 (PCS)。将地理坐标系 (GCS) 与经纬度值一同使用可导致意外变形或造成计算错误。

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

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

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

    均方根误差 (RMSE) 又被称为均方根差 (RMSD),可根据残差进行计算,通常表示变换完成的质量。RMSE 值将写出到处理消息中。它还是可在脚本或模型工作流中使用的派生输出参数。

语法

CalculateTransformationErrors_edit (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

代码示例

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])

环境

此工具不使用任何地理处理环境。

许可信息

  • ArcGIS Desktop Basic: 否
  • ArcGIS Desktop Standard: 否
  • ArcGIS Desktop Advanced: 是

相关主题

  • 合并工具集概述

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS 平台

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

关于 Esri

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