摘要
计算输入要素的几何并集。将所有要素及其属性都写入输出要素类。
插图
用法
所有输入要素类和要素图层都必须有面几何。
允许间隙参数可与连接属性参数中的所有属性或仅要素 ID 设置一起使用。这样可以识别出被生成面完全包围的生成区域。这些 GAP 要素的 FID 属性将为 -1。
输出要素类将包含各个输入要素类的 FID_<name> 属性。例如,如果某个输入要素类的名称为 Soils,则输出要素类中将存在一个 FID_Soils 属性。与其他输入要素不相交的所有输入要素(或输入要素的任何部分)的 FID_<name> 值均为 -1。在这种情况下,未检测到任何交集的并集中的其他要素类的属性值将不会传递到输出要素。
输入要素类的属性值将被复制到输出要素类。但是,如果输入是一个或多个通过创建要素图层工具创建的图层并且选中了字段的使用比率策略设置项,那么计算输出属性值时将按输入属性值的一定比例进行计算。如果启用了使用比率策略选项,执行叠加操作时,对于任一要素的分割都将按照输入要素属性值的一定比率来生成输出要素的属性值。输出值将根据输入要素几何被分割的比率得出。例如,如果输入几何被分割成相等的两部分,则每个新要素的属性值都等于输入要素属性值的一半。使用比率策略仅适用于数值字段类型。
此工具通过切片的方式处理庞大的数据集以便提高性能和可扩展性。有关详细信息,请参阅对大型数据集进行地理处理。
即使所有输入要素均属于单部件要素,此工具仍能在输出中生成多部件要素。如果不希望生成多部件要素,请对输出要素类使用多部件至单部件工具。
语法
Union_analysis (in_features, out_feature_class, {join_attributes}, {cluster_tolerance}, {gaps})
参数 | 说明 | 数据类型 |
in_features [[in_features, {Rank}],...] | 输入要素类或图层列表。要素间距小于拓扑容差时,等级较低的要素将捕捉到等级较高的要素。最高等级为一。所有输入要素都必须是面。 | Value Table |
out_feature_class | 将包含结果的要素类。 | Feature Class |
join_attributes (可选) | 确定将输入要素的哪些属性传递到输出要素类。
| String |
cluster_tolerance (可选) | 所有要素坐标(节点和折点)之间的最小距离以及坐标可以沿 X 和/或 Y 方向移动的距离。 | Linear unit |
gaps (可选) | 间隙是输出要素类中被其他面完全包围的区域。它并非无效,但最好对其进行识别以供分析之用。要在输出中找出间隙,请将此选项设置为 NO_GAPS,这样便会在此类区域中创建要素。要选择此类要素,可通过判定输入要素的所有 FID 值是否均等于 -1 来查询输出要素类。
| Boolean |
代码示例
Union 示例(Python 窗口)
以下 Python 窗口脚本演示了如何在即时模式下使用 Union 函数。
import arcpy
from arcpy import env
env.workspace = "C:/data/data/gdb"
arcpy.Union_analysis (["well_buff50", "stream_buff200", "waterbody_buff500"], "water_buffers", "NO_FID", 0.0003)
arcpy.Union_analysis ([["counties", 2],["parcels", 1],["state", 2]], "state_landinfo")
Union 示例 2(独立脚本)
以下独立脚本演示了在脚本中应用 Union 函数的两种方式。
# unions.py
# Purpose: union 3 feature classes
# Import the system modules
import arcpy
from arcpy import env
# Set the current workspace
# (to avoid having to specify the full path to the feature classes each time)
env.workspace = "c:/data/data.gdb"
# Union 3 feature classes but only carry the FID attributes to the output
inFeatures = ["well_buff50", "stream_buff200", "waterbody_buff500"]
outFeatures = "water_buffers"
clusterTol = 0.0003
arcpy.Union_analysis (inFeatures, outFeatures, "ONLY_FID", clusterTol)
# Union 3 other feature classes, but specify some ranks for each
# since parcels has better spatial accuracy
inFeatures = [["counties", 2],["parcels", 1],["state", 2]]
outFeatures = "state_landinfo"
arcpy.Union_analysis (inFeatures, outFeatures)
环境
许可信息
- ArcGIS Desktop Basic: 受限
- ArcGIS Desktop Standard: 受限
- ArcGIS Desktop Advanced: 是