对齐要素 (编辑)

摘要

用于标识地理处理工具用于标识搜索距离中输入要素与目标要素的不一致部分并使其与目标要素对齐。

插图

“对齐要素”工具图示

使用情况

    警告:

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

    注:

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

  • 输入要素和目标要素可以是线或面要素。 例如,您可能有作为线或面的郡县边界,但其中的一部分不同于河流中心线,河流中心线是郡县边界和相邻郡县的边界。 此工具可用于将部分郡县边界与河流中心线对齐,以保持其重叠。

  • 当输入要素位于为目标要素特定的搜索距离值内时,输入要素或其中一部分将成为对齐候选项。 候选项形状必须与目标形状类似。 例如,平行的输入道路要素和目标道路要素相比以 90 度角相互交叉的两个要素更为相似。

  • 如果经过指定,则匹配字段参数将用于确定对齐候选项是否可能是其目标的正确匹配要素。 例如,如果在目标要素的搜索距离内发现两个输入要素,且这两个要素在形状上都与目标相似,则具有匹配字段值的要素将是更合适的候选项。

  • 对齐将保留输入要素间的现有拓扑关系。 例如,如果一条端点与其它线相连的线因对齐而移动,则所有连接线的端点都会移动,以保持线的连接。

  • 随即将 AF_CONF 字段添加至已修改输入。 该字段存储着一个 0-100 间的值,表示每个要素对齐的置信度。 值为 100 表示对齐的候选项没有不明确现象。 指定匹配字段参数后,值会随着发现多个潜在候选项、形状差别更大或属性不匹配而降低。 值 -1 赋予未修改的要素。 由于输入和目标要素可能存在的复杂性,可能会发生非预期对齐。 因此,有必要进行后续检查,尤其是具有相对较低 AF_CONF 值的要素。

参数

标注说明数据类型
输入要素

将进行调整的输入线或面要素。

Feature Layer
目标要素

输入要素将与之对齐的输入线或面。

Feature Layer
搜索距离

将用于搜索匹配候选项的距离。 必须指定一个距离,且此距离必须大于零。 可以选择首选单位。 默认为要素单位。

Linear Unit
匹配字段
(可选)

来自输入要素与目标要素的字段。 如果已提供,则将检查每对字段中的匹配候选项,以帮助确定正确的匹配。

Value Table

派生输出

标注说明数据类型
输出要素

更新后的输入要素。

Feature Layer

arcpy.management.AlignFeatures(in_features, target_features, search_distance, {match_fields})
名称说明数据类型
in_features

将进行调整的输入线或面要素。

Feature Layer
target_features

输入要素将与之对齐的输入线或面。

Feature Layer
search_distance

将用于搜索匹配候选项的距离。 必须指定一个距离,且此距离必须大于零。 可以选择首选单位。 默认为要素单位。

Linear Unit
match_fields
[[source_field, target_field],...]
(可选)

来自输入要素与目标要素的字段。 如果已提供,则将检查每对字段中的匹配候选项,以帮助确定正确的匹配。

Value Table

派生输出

名称说明数据类型
out_feature_class

更新后的输入要素。

Feature Layer

代码示例

AlignFeatures 示例 1(Python 窗口)

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

import arcpy
arcpy.env.workspace = "C:/data/Countries.gdb"
arcpy.edit.AlignFeatures("countryA_border", "target_border", "25 Feet")
AlignFeatures 示例 2(独立脚本)

以下独立脚本演示了如何在脚本环境中应用 AlignFeatures 函数。

import arcpy
import os

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

in_features_orig = "common_border"
in_features_copy = "common_border1"

# Make a copy of the original data 
arcpy.management.CopyFeatures(in_features_orig, in_features_copy)

# Features to which input will be aligned
target_features = "country1_border"
search_dist = "100 Meters"
match_fields = [["A_field", "B_field"]]

arcpy.edit.AlignFeatures(in_features_copy, target_features, search_dist, match_fields)