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

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

变换要素

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

摘要

根据已知相应控制点之间的变换链接通过缩放、平移和旋转将输入要素的坐标从一个位置转换到另一个位置。

用法

    警告:

    此工具用于修改输入数据。有关详细信息以及避免数据被意外更改的策略,请参阅无输出的工具。

    注:

    所有输入必须处于同一坐标系。

  • 输入要素可以是点、线或面。

  • 输入链接要素是代表已知相应控制点之间的变换链接的线。链接的起点在源控制点位置,链接的终点在相应的目标控制点位置。

  • 变换可在直角坐标系或平面坐标系中使用。强烈建议使用投影坐标系 (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 值将写出到处理消息中。它还是可在脚本或模型工作流中使用的派生输出参数。

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

语法

TransformFeatures_edit (in_features, in_link_features, {method}, {out_link_table})
参数说明数据类型
in_features

将要进行坐标转换的输入要素。

Feature Layer
in_link_features

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

Feature Layer
method
(可选)

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

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

包含输入链接及其残差的输出表。

Table

代码示例

TransformFeatures 示例 1(Python 窗口)

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

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.TransformFeatures_edit("source_Roads.shp","control_Links.shp",
                               "AFFINE")
TransformFeatures 示例 2(独立 Python 脚本)

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

import arcpy
import os

# Set geoprocessing environments
arcpy.env.overwriteOutput = True

# function to convert link info in a text file to a line feature class
def CreateLinkFeatures(in_text_file, in_data):

    sr = arcpy.Describe(in_data).spatialReference
    features = []  # a list to hold polyline geometry objects

    f = open(in_text_file, "r")
    
    for line in f.readlines():

        # take start/end blank spaces off
        # separate the start and end point coordinates
        points = line.strip().split()   
        
        point1 = arcpy.Point(float(points[1]), float(points[2]))
        point2 = arcpy.Point(float(points[3]), float(points[4]))
        
        features.append(arcpy.Polyline(arcpy.Array([point1, point2]), sr))
        
    f.close()   # close the text file

    # copy the geometry objects into a feature class named Links
    result = arcpy.CopyFeatures_management(features, in_data + "_links")

    return result.getOutput(0)
    
if __name__ == "__main__":

    # Make a copy of the data because
    # TransformFeatures tool modifies the input data
    arcpy.CopyFeatures_management(r"C:\data\Tutorial.gdb\Parcels", r"C:\data\Tutorial.gdb\Parcels_copy")

    links_file = r"C:\data\TF_links.txt"
    tf_link_features = CreateLinkFeatures(links_file, r"C:\data\Tutorial.gdb\Parcels")
    
    try:
        arcpy.TransformFeatures_edit(r"C:\data\Tutorial.gdb\Parcels_copy", tf_link_features)
        print(arcpy.GetMessages())
        
    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. | 隐私政策 | 法律声明