边匹配要素 (Editing)
插图
用法
-
该工具旨在结合生成边匹配链接工具使用。该工具以生成边匹配链接工具创建的输入链接要素为指导,在空间上调整输入线的形状,这样输入线便可与沿着边缘区域的相邻线要素进行正确连接。输入链接要素必须具有 SRC_FID 和 ADJ_FID 字段。
该工具从边匹配链接获取新的连接位置,然后对相应要素进行修改,使其端点位于新的位置。根据所提供的输入(输入要素、相邻要素和边界要素),相应地确定新的连接位置,并调整相关要素。该调整可确保匹配要素按如下所述进行连接:
- 仅提供输入要素时,边匹配链接的端点会用作新的连接位置。对边匹配链接相关的输入线(即要素 ID 与链接的 SRC_FID 值相匹配)进行调整,从而使输入线的端点位于链接端点处。这样可确保输入线与参与了边匹配链接生成过程的所需相邻要素互相连接。
- 同时提供输入要素与相邻要素时,边匹配链接的中点会用作新的连接位置。相关输入线与相关相邻线(即要素 ID 与链接的 ADJ_FID 值相匹配)都会经过调整,从而使这些线的端点均位于链接中点,并通过该点相互连接。
- 添加边界要素时,必须同时指定相邻要素。该工具将距离链接中点最近的边界位置作为新的连接位置。与边匹配链接相关的输入线和相邻线均会进行调整,从而使这些线在边界位置互相连接。
Method参数具有三个边匹配选项用来调整要素。如上所述,每个选项仅适用于输入要素,或者同时适用于输入要素和相邻要素。
- MOVE_ENDPOINT - 将输入线的端点移动到新的连接位置。
- ADD_SEGMENT - 在输入线端点处添加直线段,从而使输入线端点位于新的连接位置。
- ADJUST_VERTICES - 将线端点调整至新的连接位置。同时也会对其余折点进行调整,从而使这些折点的位置变化朝着线的另一端逐渐减少。
警告:
此工具用于修改输入数据。有关详细信息以及避免数据被意外更改的策略,请参阅无输出的工具。
注:
所有输入必须处于同一坐标系。
语法
EdgematchFeatures_edit (in_features, in_link_features, {method}, {adjacent_features}, {border_features})
参数 | 说明 | 数据类型 |
in_features |
要进行调整的输入线要素。 | Feature Layer |
in_link_features |
表示边匹配链接的输入线要素。 | Feature Layer |
method (可选) |
仅将输入要素或同时将输入要素与相邻要素调整至新连接位置的边匹配方法。
| String |
adjacent_features (可选) |
与输入要素相邻的线要素。在经过指定的情况下,输入要素与相邻要素会调整为在新连接位置相连接,新连接位置将是边匹配链接的中点或与边界要素的链接中点距离最近的位置(如果指定)。如果提供了边界要素,则必须还提供相邻要素。 | Feature Layer |
border_features (可选) |
表示输入要素与相邻要素之间边界的线要素或面要素。指定边界要素时,必须同时指定相邻要素。输入要素与相邻要素都会调整至在距离边界要素的链接中点最近的新连接位置相连接。 | Feature Layer |
代码实例
EdgematchFeatures 示例 1(Python 窗口)
下列 Python 窗口脚本演示了如何在即时模式下使用 EdgematchFeatures 函数。
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.EdgematchFeatures_edit("cityA_Roads.shp", "em_Links.shp"
"MOVE_ENDPOINT")
EdgematchFeatures 示例 2(独立 Python 脚本)
以下独立 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
# might not be desired; they are finally used to adjust input features
# (a copy is made) to connect with the matched adjacent feautures.
# Author: Esri
# -----------------------------------------------------------------------
# Import system modules
import arcpy
from arcpy import env
# Set environment settings
env.overwriteOutput = True
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.GenerateEdgematchLinks_edit(inFeatures, adjFeatures, gelOutput, search_distance, match_fields)
# ====================================================================================
# Note 1: The result of GenerateEdgematchLinks may contain errors; see tool reference.
# Inspection and editing may be necessary to ensure correct links before using
# them for edgematching.
#
# One of the possible errors are undesired 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.Intersect_analysis(gelOutput, qaLocations, "", "", "POINT")
# Delete coincident points
arcpy.DeleteIdentical_management(qaLocations, "Shape")
# ====================================================================================
# Note 2: At this point you can manually inspect locations in qaLocations; delete or
# modify links as needed.
# ====================================================================================
# Make a copy of the inFeatures for edgematching
inFeature_Copy = inFeatures + "_Copy"
arcpy.CopyFeatures_management(inFeatures, inFeature_Copy)
# Use the links to adjust the copy of the input features
arcpy.EdgematchFeatures_edit(inFeature_Copy, gelOutput, "MOVE_ENDPOINT")
相关主题
许可信息
ArcGIS for Desktop Basic: 否
ArcGIS for Desktop Standard: 否
ArcGIS for Desktop Advanced: 是
5/10/2014