联合 (分析)

摘要

计算输入要素的几何并集。 将所有要素及其属性都写入输出要素类。

了解有关“联合”工具工作原理的详细信息

插图

联合工具图示

使用情况

  • 所有输入要素类和要素图层都必须有面几何。

  • 允许间隙参数可与要连接的属性参数的所有属性仅要素 ID 设置一起使用。 这样可以识别出被生成面完全包围的生成区域。 这些 GAP 要素的 FID 属性将为 -1。

  • 输出要素类将包含各个输入要素类的 FID_<name> 属性。 例如,如果某个输入要素类的名称为 Soils,则输出要素类中将存在一个 FID_Soils 属性。 对于与其他输入要素不相交的任何输入要素(或输入要素的任何部分)而言,FID_<name> 值均为 -1。 在这种情况下,未检测到任何交集的并集中的其他要素类的属性值将不会传递到输出要素。

  • 输入要素类的属性值将被复制到输出要素类。 但是,如果输入是一个或多个通过创建要素图层工具创建的图层并且选中了字段的使用比率策略设置项,那么计算输出属性值时将按输入属性值的一定比例进行计算。 如果启用了使用比率策略选项,执行叠加操作时,对于任一要素的分割都将按照输入要素属性值的一定比率来生成输出要素的属性值。 输出值将根据输入要素几何被分割的比率得出。 例如,如果输入几何被分割成相等的两部分,则每个新要素的属性值都等于输入要素属性值的一半。 使用比率策略仅适用于数值字段类型。

    警告:

    地理处理工具不支持地理数据库要素类或表字段分割策略

  • 即使所有输入要素均属于单部件要素,此工具仍可能在输出中生成多部件要素。 如果不希望生成多部件要素,请对输出要素类使用多部件至单部件工具。

  • 许可:

    对于 ArcGIS Desktop BasicDesktop Standard 许可,输入要素类或图层的数量被限定为 2 个。

参数

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

输入要素类或图层。 要素间距小于拓扑容差时,等级较低的要素将捕捉到等级较高的要素。 最高等级为一。 所有输入要素都必须是面。

Value Table
输出要素类

将包含结果的要素类。

Feature Class
要连接的属性
(可选)

指定将输入要素的哪些属性传递到输出要素类。

  • 所有属性输入要素的所有属性都将传递到输出要素类。 这是默认设置。
  • 除要素 ID 外的所有属性除 FID 外,将输入要素的其余所有属性都传递到输出要素类。
  • 仅要素 ID仅输入要素的 FID 字段将传递到输出要素类。
String
XY 容差
(可选)

所有要素坐标(节点和折点)之间的最小距离以及坐标可以沿 x 和/或 y 方向移动的距离。

警告:

更改此参数的值可能会导致出现故障或意外结果。 建议不要修改此参数。 已将其从工具对话框的视图中移除。 默认情况下,将使用输入要素类的空间参考 x,y 容差属性。

Linear Unit
允许间隙
(可选)

指定是否会为输出中被面完全包围的区域创建要素。

间隙是输出要素类中被其他面完全包围的区域(从输入面的要素交集或现有孔创建)。 这些区域不是无效的,但是您可以识别它们以进行分析。 要在输出中识别间隙,请取消选中此参数,这样便会在此类区域中创建要素。 要选择此类要素,可通过判定输入要素的所有 FID 值是否均等于 -1 来查询输出要素类。

  • 选中 - 不会为输出中被面完全包围的区域创建要素。 这是默认设置。
  • 未选中 - 将为输出中被面完全包围的区域创建要素。 此要素不会具有属性值,并且 FID 值为 -1。
Boolean

arcpy.analysis.Union(in_features, out_feature_class, {join_attributes}, {cluster_tolerance}, {gaps})
名称说明数据类型
in_features
[[in_features, {rank}],...]

输入要素类或图层。 要素间距小于拓扑容差时,等级较低的要素将捕捉到等级较高的要素。 最高等级为一。 所有输入要素都必须是面。

Value Table
out_feature_class

将包含结果的要素类。

Feature Class
join_attributes
(可选)

指定将输入要素的哪些属性传递到输出要素类。

  • ALL输入要素的所有属性都将传递到输出要素类。 这是默认设置。
  • NO_FID除 FID 外,将输入要素的其余所有属性都传递到输出要素类。
  • ONLY_FID仅输入要素的 FID 字段将传递到输出要素类。
String
cluster_tolerance
(可选)

所有要素坐标(节点和折点)之间的最小距离以及坐标可以沿 x 和/或 y 方向移动的距离。

警告:

更改此参数的值可能会导致出现故障或意外结果。 建议不要修改此参数。 已将其从工具对话框的视图中移除。 默认情况下,将使用输入要素类的空间参考 x,y 容差属性。

Linear Unit
gaps
(可选)

指定是否会为输出中被面完全包围的区域创建要素。

间隙是输出要素类中被其他面完全包围的区域(从输入面的要素交集或现有孔创建)。 这些区域不是无效的,但是您可以识别它们以进行分析。 要在输出中识别间隙,请将此参数设置为 NO_GAPS,这样便会在此类区域中创建要素。 要选择此类要素,可通过判定输入要素的所有 FID 值是否均等于 -1 来查询输出要素类。

  • GAPS不会为输出中被面完全包围的区域创建要素。 这是默认设置。
  • NO_GAPS将为输出中被面完全包围的区域创建要素。 此要素不会具有属性值,并且 FID 值为 -1。
Boolean

代码示例

Union 示例(Python 窗口)

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

import arcpy
arcpy.env.workspace = "C:/data/data/gdb"
arcpy.analysis.Union(["well_buff50", "stream_buff200", "waterbody_buff500"], 
                     "water_buffers", "NO_FID", 0.0003)
arcpy.analysis.Union([["counties", 2], ["parcels", 1], ["state", 2]], 
                     "state_landinfo")
Union 示例 2(独立脚本)

以下独立脚本演示了在脚本中应用 Union 函数的两种方式。

# unions.py
# Purpose: union 3 feature classes

# Import the system modules
import arcpy

# Set the current workspace (to avoid having to specify the full path to the 
# feature classes each time)
arcpy.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"
arcpy.analysis.Union(inFeatures, outFeatures, "ONLY_FID")

# 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.analysis.Union(inFeatures, outFeatures)

环境

特殊情况

并行处理因子

此工具支持并行处理因子环境。 如果未设置环境(默认)或设置为 0,则将禁用并行处理;不会使用并行处理,而是按顺序进行处理。 如将环境设置为 100,则将启用并行处理;将使用并行处理,并且将进行并行处理。 启用并行处理时,最多将使用 10 个内核。

目前,面-面、线-面以及点-面叠加操作支持并行处理。