整合 (数据管理)
摘要
如果要素位于指定的 x,y 容差范围内,“整合”工具可通过使要素重叠来保持公共要素边界的完整性。位于指定 x,y 容差范围内的要素将视为相同或重叠。
例如,假设 x,y 容差指定为五个单位(如英尺或米),并且数据中某宗地边界应该与相邻宗地边界重合,但彼此却相距四个单位。运行此工具后,由于这两块宗地的边界距离在五个单位的 x,y 容差范围内,因此它们会叠加在一起。
整合可执行以下处理任务:
- 查找位于指定 x,y 容差范围内的要素。
- 为位于指定 x,y 容差范围内的要素插入公共坐标折点,并在要素线段相交的地方添加折点。
插图
用法
-
如果选中了任何输入要素,则仅会针对那些所选要素执行该工具。
该工具执行的任务与拓扑相同,因为该工具将在 x,y 容差范围内移动要素并在要素相交的位置插入折点。考虑使用拓扑来执行此类操作的原因是:对于拓扑,您可以指定建立要素间关联的规则和条件。有关使用拓扑的详细信息,请参阅拓扑基础知识。
在下列情况下,您可以选择使用整合而不使用拓扑:
- 不需要指定要素的移动规则,只需在指定的容差范围内合并所有要素。
- 要在各条线相交的任何地方都添加折点。
- 处理的是非地理数据库要素(如 shapefile)或者不同地理数据库中的要素(拓扑中的要素必须全属于同一要素数据集)。
-
XY 容差的值非常关键:容差过大会导致要素折叠或导致面或线被删除,还可能导致不应该移动的折点被移动。要使误差降至最小,选择的 x,y 容差值应尽量小。
-
整合仅支持将简单要素类作为输入(点、多点、线或面)。输入要素不允许包含注记要素、尺寸要素和网络要素等。
-
要撤销对输入要素做出的更改,请在编辑会话中使用整合。
-
处理各要素的折点数较多的数据集时(例如,单个要素中包含成千上万甚至上百万个折点),一些几何处理操作可能会遭遇内存不足。有关详细信息,请参阅对大型数据集进行地理处理。
-
该工具的输出数据元素属于一种派生的多值输出。要将该工具的输出用于其他工具,请直接使用该工具的输入并将该工具的输出设置为其他工具的前提条件,如下图所示。了解有关设置前提条件的详细信息。
此工具用于修改输入数据。有关详细信息以及避免数据被意外更改的策略,请参阅无输出的工具。
语法
参数 | 说明 | 数据类型 |
in_features [[Feature Layer, Long],...] |
要整合的要素类。如果要素间的距离小于容差,则折点或点将被聚类(移动至重合状态)。等级较低的要素类或图层将捕捉到等级较高的要素类或图层中的要素(其中 1 级高于 2 级)。请注意,如果使用的 x,y 容差较大,则等级为 1 的要素类中的要素甚至也可能发生移动。 | Value Table |
cluster_tolerance (可选) |
该距离可确定一个范围,要素折点将在此范围内实现重合。要最大限度的减少不必要的折点移动,x,y 容差应该非常小。如果未指定任何值,则将使用输出列表中第一个数据集的 xy 容差。 | Linear unit |
代码示例
以下 Python 窗口脚本演示了如何在立即模式下使用“整合”函数。
import arcpy from arcpy import env env.workspace = "C:/data" arcpy.CopyFeatures_management("Habitat_Analysis.gdb/vegtype", "C:/output/output.gdb/vegtype") arcpy.Integrate_management("C:/output/output.gdb/vegtype", 0.01)
以下独立脚本是如何在脚本环境中应用“整合”函数的简单示例。
# Name: Integrate_Example2.py # Description: Run Integrate on a feature class # Author: ESRI # Import system modules import arcpy from arcpy import env # Set environment settings env.workspace = "C:/data/Habitat_Analysis.gdb" # Set local variables inFeatures = "vegtype" integrateFeatures = "C:/output/output.gdb/vegtype" xyTolerance = "0.1 feet" # Execute CopyFeature (since Integrate modifies the original data # this ensures the original is preserved) arcpy.CopyFeatures_management(inFeatures, integrateFeatures) # Execute Integrate arcpy.Integrate_management(integrateFeatures, xyTolerance)