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

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

变换

在 Advanced 许可等级下可用。

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

描述

基于一组起始和终止控制点移动 coverage 中的所有要素。

了解有关“变换”工作原理的详细信息

插图

Transform illustration

使用方法

  • 输出 Coverage 必须已经存在,且具有包含至少两个控制点(位于所需位置并且以所需单位指定)的 x,y 坐标的控制点文件。除控制点以外,输出 Coverage 中的所有现有要素都将被输入 Coverage 中的要素取代。

  • 此工具可以对 coverage 中的所有坐标进行缩放、倾斜、旋转和平移,但不可以执行“橡皮页变换”。

  • 输入 coverage 控制点文件和输出 coverage 控制点文件中必须至少包含两个在输入和输出 coverage 中具有相同 Tic-ID 并表示对应位置的控制点。两个 coverage 不必具有相同的控制点;在变换中,只会使用在两个 coverage 中 ID 相同的控制点。

  • 将对输入 coverage 的容差进行变换并将其保留在输出 coverage 中。

  • 要利用坐标变换生成 RMS 误差,所需的控制点数应大于要求的最小值。

  • 由于默认的 $ANGLE 值为 0,因此未旋转的标注点在输出中仍然不会被旋转。但是,如果对某些标注的 $ANGLE 值进行了设置,则标注角度将会与变换角度相加。

  • 输入 coverage 中出现的所有注记子类都将被变换到输出 coverage 中。输入 coverage 注记的位置和大小会在输出 coverage 中进行变换。

  • 现有段表将被复制到输出 coverage 中。变换过程中,弧段与弧之间的关系将保持不变。

  • 区域信息将保持不变。

  • 输出 coverage 的坐标精度可能与输入 coverage 的坐标精度不一致。精度由创建 coverage 时的适用精度环境值决定。这可通过创建 Coverage 工具实现。

  • 对输入 coverage 中的要素属性(即 LENGTH、AREA 和 PERIMETER)进行变换之后会对其进行更新。

  • AFFINE 变换使用相同的方程对 coverage 中的所有坐标进行缩放、倾斜、旋转和平移。此变换可基于至少三个控制点,对 x 坐标和 y 坐标进行不同比例的缩放。此外,AFFINE 变换还可以执行平面反射操作。

  • SIMILARITY 变换可使用由坐标生成参数的方程对 coverage 坐标进行缩放、旋转和平移。如果选择了 SIMILARITY 选项,则可以使用两个或更多控制点来计算方程参数。此变换无法对 x 坐标和 y 坐标进行不同的缩放和倾斜,但是将较大地图切割为若干部分(以适应扫描仪)进行扫描之后,可使用此变换对扫描输出进行边匹配处理。

  • 仅当输入 Coverage 为对航空像片直接进行数字化处理的产物时,才可使用 PROJECTIVE 变换选项。变换的精度将取决于所拍摄的地形表面、照相机与地面之间的夹角以及照片拍摄位置的高程。从较高高程且在相对平坦的地表部分正上方进行拍摄时,可以获得最佳拍摄效果。PROJECTIVE 需要至少 4 个控制点来计算变换。

  • 使用最小二乘法来确定变换。要想检测到可能生成错误变换的控制点位置或 Tic-ID 的错误,建议您提供的控制点数应大于要求的最小值。

语法

arcpy.arc.Transform(in_cover, out_cover, {transform_type})
参数说明数据类型
in_cover

要进行坐标变换的 coverage。

Coverage
out_cover

包含目标控制点的现有 coverage 的名称。输入 coverage 中的要素将被变换到此 coverage 中。

Coverage
transform_type
(可选)

要执行的坐标变换的类型:

  • AFFINE —执行仿射变换。要定义此变换,至少需要 3 个控制点。如果只有两个控制点匹配,则将应用相似变换。AFFINE 方程使用 6 个参数。
  • PROJECTIVE —执行射影变换。要定义此变换,至少需要 4 个控制点。射影变换仅用于变换对相对平坦的地形的航空摄影或航空像片(假定照片中不存在系统失真现象)直接进行数字化处理所得到的坐标。PROJECTIVE 使用 8 个参数。
  • SIMILARITY —执行相似变换。此变换至少需要 2 个控制点。此变换又称为赫尔莫特变换、正交变换、二维线性保角变换或四参数变换。
String

代码示例

以下独立脚本演示了如何对数字化 coverage 使用“变换”工具。首先根据模板 coverage 创建空的输出 coverage。该模板具有控制点和已定义的投影。将空的输出 coverage 命名为道路。然后,“变换”工具将数字化道路要素变换到空的道路 coverage 中。

# Name: Transform_Example.py
# Description: Transforms digitized road features into a new output coverage
# Requirements: ArcInfo Workstation

# Import system modules
import arcpy
from arcpy import env

# Set environment settings
env.workspace = "C:/data"

# Set local variables
inCover = "roads_dig"
outCover = "C:/output/roads"
transformType = "AFFINE"

# Create the empty output coverage
arcpy.Create_arc(outCover, "citylim")

# Execute Transform
arcpy.Transform_arc(inCover, outCover, transformType)

# Print the RMS error
print arcpy.GetMessage(4)

环境

  • 当前工作空间
  • 投影文件之间的比较级别
  • 派生 Coverage 的精度
  • 新建 Coverage 的精度
  • 临时工作空间

许可信息

  • Basic: 否
  • Standard: 否
  • Advanced: 需要 已安装 ArcInfo Workstation

相关主题

  • 投影工具集概述
  • 定义投影
  • 投影
  • 什么是 Coverage?
  • 存储坐标

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS

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

关于 Esri

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