橡皮页变换要素 (编辑)

摘要

利用指定的橡皮页变换链接,通过橡皮页变换对输入要素进行空间调整修改,从而使输入要素更好地与所需目标要素对齐。

插图

“橡皮页变换要素”工具图示

使用情况

    警告:

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

  • 该工具将在生成橡皮页变换链接工具之后使用。 橡皮页变换根据指定的橡皮页变换连接线进行空间校正,从而使输入要素位置更加准确的与目标要素位置对齐。 输入链接要素表示常规链接;输入点要素表示在橡皮页变换过程中保持源位置不动的标识链接。 输入链接要素与标识链接要素均必须具有 SRC_FIDTGT_FID 字段。

  • 注:

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

  • 方法参数确定用于在橡皮页变换过程中创建临时 TIN 的插值方法。

    • 线性 - 该方法用于创建快速的 TIN 表面,但并不真正考虑邻域。 此方法速度稍快,并且当许多橡皮页变换链接均匀分布在要调整的数据上时,将生产优质结果。
    • 自然邻域 - 该方法稍慢,但当橡皮页变换连接线不是很多并且在数据集中较为分散时,得出的结果会更加精确。 在这种情况下使用线性方法不够精确。

参数

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

将进行校正的输入要素。 可以为点、线、面或注记。

Feature Layer
输入链接要素

表示橡皮页变换常规链接的输入线要素。

Feature Layer
输入点要素作为标识链接
(可选)

表示橡皮页变换识别链接的输入点要素。

Feature Layer
方法
(可选)

指定将用于校正要素的橡皮页变换法。

  • 线性此方法稍快,并且当很多连接线均匀分布在校正的数据上时可以生成不错的结果。 这是默认设置。
  • 自然邻域法当您的链接很少且相距很远时,应使用此方法。
String

派生输出

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

更新后的输入要素。

Feature Layer

arcpy.management.RubbersheetFeatures(in_features, in_link_features, {in_identity_links}, {method})
名称说明数据类型
in_features

将进行校正的输入要素。 可以为点、线、面或注记。

Feature Layer
in_link_features

表示橡皮页变换常规链接的输入线要素。

Feature Layer
in_identity_links
(可选)

表示橡皮页变换识别链接的输入点要素。

Feature Layer
method
(可选)

指定将用于校正要素的橡皮页变换法。

  • LINEAR此方法稍快,并且当很多连接线均匀分布在校正的数据上时可以生成不错的结果。 这是默认设置。
  • NATURAL_NEIGHBOR当您的链接很少且相距很远时,应使用此方法。
String

派生输出

名称说明数据类型
out_feature_class

更新后的输入要素。

Feature Layer

代码示例

RubbersheetFeatures 示例 1(Python 窗口)

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

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.edit.RubbersheetFeatures("source_Roads.shp","rubbersheet_Links.shp",
                               "rubbersheet_Links_pnt.shp", "LINEAR")
RubbersheetFeatures 示例 2(独立脚本)

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

"""Name:        RubbersheetFeatures_example_script2.py
Description: Performs rubbersheeting spatial adjustment using links produced by
             GenerateRubbersheetLinks, assuming newly updated roads are more
             accurate than existing base roads. The links go from base road data
             to corresponding newly updated road data. The links are then
             analyzed for potential errors. They are then used to adjust the
             base roads (a copy is made) to better align with the updated roads.
"""

# Import system modules
import arcpy

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

# Set local variables
sourceFeatures = "baseRoads"
targetFeatures = "updateRoads"
grlOutput = "grlinks_out"
grlOutputPts = "grlinks_out_pnt"

search_distance = "300 Feet"
match_fields = "FULLNAME RD_NAME"

qaLocations = "qa_locations"

# Generate rubbersheet links
arcpy.edit.GenerateRubbersheetLinks(sourceFeatures, targetFeatures, grlOutput, search_distance, match_fields)

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

         One of the common 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(grlOutput, 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 sourceFeatures for rubbersheeting
arcpy.management.CopyFeatures(sourceFeatures, "sourceFeatures_Copy")

# Use the links for rubbersheeting
arcpy.edit.RubbersheetFeatures("sourceFeatures_Copy", grlOutput, grlOutputPts, "LINEAR")