边匹配要素 (编辑)

摘要

通过空间调整其形状来修改输入线要素,由指定的边缘匹配链接引导,使其与相邻数据集中的线连接。

了解有关边匹配的详细信息

插图

“边匹配要素”工具图示

使用情况

    警告:

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

  • 此工具将在生成边匹配链接工具之后使用。 该工具以生成边匹配链接工具创建的输入链接要素为指导,在空间上调整输入线的形状,这样输入线便可与沿着边缘区域的相邻线要素进行正确连接。 输入链接要素必须具有 SRC_FIDADJ_FID 字段。

  • 注:

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

  • 该工具从边匹配链接获取新的连接位置,然后对相应要素进行修改,使其端点连接到新的位置。 根据指定的输入参数(输入要素相邻要素边界要素),确定新的连接位置,并相应地调整相关要素。 此调整可确保连接匹配的要素,如下所述:

    • 如果仅指定输入要素参数,则边匹配链接的端点将用作新的连接位置。 对边匹配链接相关的输入线(即要素 ID 与链接的 SRC_FID 值相匹配)进行调整,从而使输入线的端点位于链接端点处。 这样可确保输入线与所需相邻要素互相连接,这些要素应该已参与边匹配链接的生成。
    • 如果同时指定输入要素相邻要素参数,则边匹配链接的中点将用作新的连接位置。 将同时对相关的输入线和相关的相邻线(即,其要素 ID 与链接的 ADJ_FID 值相匹配)进行调整,从而使其端点连接到链接的中点。
    • 如果指定边界要素参数,则该工具将距离边匹配链接中点最近的边界位置用作新的连接位置。 将对输入要素相邻要素参数值(如果指定)进行调整,从而使这些要素的端点连接到计算出的边界位置。

    方法参数具有以下边匹配选项用来调整要素。 如上所述,每个选项仅适用于输入要素,或者同时适用于输入要素和相邻要素。

    • 移动端点 - 将输入线的端点移动到新的连接位置。
    • 添加线段 - 将在输入线端点处添加直线段,从而使输入线端点位于新的连接位置。
    • 调整折点 - 将线端点调整至新的连接位置。 同时也会对其余折点进行调整,从而使这些折点的位置变化朝着线的另一端逐渐减少。

参数

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

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

Feature Layer
输入链接要素

输入线要素类,表示边匹配链接。

Feature Layer
方法
(可选)

指定将用于仅将输入要素,或将输入要素和相邻要素一起,调整到新的连接位置的边匹配方法。

  • 移动端点将线的端点移动到新的连接位置。 这是默认设置。
  • 添加线段将在线端点处添加直线段,从而使输入线端点位于新的连接位置。
  • 调整折点将线端点调整至新的连接位置。 同时也会对其余折点进行调整,从而使位置变化朝着线的另一端逐渐减少。
String
相邻要素
(可选)

与输入要素相邻的线要素。 如果提供,则输入要素和相邻要素将调整为在新连接位置相连接,新连接位置将是边匹配链接的中点或与边界要素的链接中点距离最近的位置(如果提供)。

Feature Layer
边界要素
(可选)

表示输入要素与相邻要素之间边界的线要素或面要素。 指定边界要素时,输入要素与相邻要素都将调整至在距离边界要素的链接中点最近的新连接位置相连接。

Feature Layer

派生输出

标注说明数据类型
更新后的输入要素

更新后的输入要素。

Feature Layer

arcpy.management.EdgematchFeatures(in_features, in_link_features, {method}, {adjacent_features}, {border_features})
名称说明数据类型
in_features

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

Feature Layer
in_link_features

输入线要素类,表示边匹配链接。

Feature Layer
method
(可选)

指定将用于仅将输入要素,或将输入要素和相邻要素一起,调整到新的连接位置的边匹配方法。

  • MOVE_ENDPOINT将线的端点移动到新的连接位置。 这是默认设置。
  • ADD_SEGMENT将在线端点处添加直线段,从而使输入线端点位于新的连接位置。
  • ADJUST_VERTICES将线端点调整至新的连接位置。 同时也会对其余折点进行调整,从而使位置变化朝着线的另一端逐渐减少。
String
adjacent_features
(可选)

与输入要素相邻的线要素。 如果提供,则输入要素和相邻要素将调整为在新连接位置相连接,新连接位置将是边匹配链接的中点或与边界要素的链接中点距离最近的位置(如果提供)。

Feature Layer
border_features
(可选)

表示输入要素与相邻要素之间边界的线要素或面要素。 指定边界要素时,输入要素与相邻要素都将调整至在距离边界要素的链接中点最近的新连接位置相连接。

Feature Layer

派生输出

名称说明数据类型
out_feature_class

更新后的输入要素。

Feature Layer

代码示例

EdgematchFeatures 示例 1(Python 窗口)

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

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.edit.EdgematchFeatures("cityA_Roads.shp", "em_Links.shp"
                             "MOVE_ENDPOINT")
EdgematchFeatures 示例 2(独立脚本)

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

"""
Name:        EdgematchFeatures_example_script2.py
Description: Performs edgematching spatial adjustment using links produced by
             GenerateEdgematchLinks. The links go from input features to adjacent 
             features. The links are then checked for intersecting conditions, which
             may not be desired. They are then used to adjust input features 
             (a copy is made) to connect to the matched adjacent features.
"""

# Import system modules.
import arcpy

# Set environment settings.
arcpy.env.overwriteOutput = True
arcpy.env.workspace = r"D:\conflationTools\ScriptExamples\data.gdb"

# Set local variables.
inFeatures = "roads1"
adjFeatures = "roads2"
gelOutput = "gelinks_out"

search_distance = "200 Feet"
match_fields = "NAME ROAD_NAME"

qaLocations = "qa_locations"

# Generate rubbersheet links.
arcpy.edit.GenerateEdgematchLinks(inFeatures, adjFeatures, gelOutput, search_distance, match_fields)

"""
Note 1:  The result of GenerateEdgematchLinks may contain errors; see the tool reference.
         Inspection and editing may be necessary to ensure correct links before using
         them for edgematching.

         One of the possible errors is intersecting or touching links.  
         Their locations can be found by the process below.
"""

# Find locations where links intersect or touch. The result contains coincident points.
arcpy.analysis.Intersect(gelOutput, qaLocations, "", "", "POINT")

# Delete coincident points.
arcpy.management.DeleteIdentical(qaLocations, "Shape")

"""
Note 2:  You can manually inspect locations in qaLocations and delete or
         modify links as needed.
"""

# Make a copy of the inFeatures for edgematching.
inFeature_Copy = inFeatures + "_Copy"
arcpy.management.CopyFeatures(inFeatures, inFeature_Copy)

# Use the links to adjust the copy of the input features.
arcpy.edit.EdgematchFeatures(inFeature_Copy, gelOutput, "MOVE_ENDPOINT")