融合 (数据管理)

摘要

根据指定属性聚合要素。

备用工具可用于融合操作。 有关详细信息,请参阅成对融合工具文档。

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

插图

“融合”工具图示
“融合”工具图示

使用情况

  • 可使用各种统计对通过此工具聚合的要素属性进行汇总或描述。 以“统计类型 + 下划线 + 输入字段名”为命名标准,将用来汇总属性的统计以单个字段的形式添加到输出要素类中。 例如,如果对名为 POP 的字段使用 SUM 统计类型,则输出中将包含名为 SUM_POP 的字段。

  • 融合可在输出要素类中创建超大型要素,当融合字段参数中存在少量唯一值时或将所有要素融合为单个要素时尤其如此。 超大型要素可能会引起处理或显示故障或降低在地图上进行绘制或编辑时的性能。 如果融合输出在一台计算机上以最大尺寸创建要素,然后将此输出移动到一个可用内存较少的计算机上,也会出现问题。 要避免这些潜在问题,可使用创建多部分要素参数创建单部件要素,以便将可能较大的多部分要素分割为多个较小要素。 对于融合工具创建的超大型要素,必须使用切分工具来切割较大的要素,以解决处理、显示或性能上的问题。

  • 空值将被排除在所有统计计算之外。 例如,10、5 和空值的平均值为 7.5 ((10+5)/2)。 计数可返回统计计算中所包括值的数目,如本例中为 2。

  • 此工具通过切片的方式处理庞大的数据集以便提高性能和可扩展性。有关详细信息,请参阅对大型数据集进行地理处理

  • 可用物理内存量会对可处理并融合为单个输出要素的输入要素的数量(和复杂性)造成限制。 此限制可能导致错误,因为融合过程需要的内存量可能会超过可用的内存量。 为防止出现此问题,融合可以使用适当的切片算法对输入要素进行分割和处理。 要确定要素是否已被切片,可对此工具的结果运行频数工具,将频数字段参数指定为融合过程中所使用的字段。 已对频数值为 2 的所有记录进行切片。 会在输出要素中保留切片边界,以防止创建的要素过大而无法被 ArcGIS 使用。

    警告:

    当原始的处理使用适当的切片对输入进行分割和处理后,对上一次融合过程的输出再次运行融合几乎不会减少输出中要素的数量。 任何输出要素的最大大小都取决于运行时的可用内存量;包含切片的输出是一个指示器,指示使用可用资源再进行融合会导致内存不足,或生成无法使用的要素。 此外,再次以相同的方式对创建的输出结果运行融合工具,可能会导致系统性能下降而一无所获,而且还可能会导致异常失败。

  • 取消线分割参数仅适用于线输入。 如果指定了默认值,则会将线融合为单个要素;否则,只将具有公共端点(称为伪节点)的两条线合并为一条连续线。

  • 如果输入要素参数值的几何类型为点或多点,且创建多部件要素参数处于选中状态,则输出将为多点要素类。 否则,如果未选中创建多部件要素参数,则输出将为点要素类。

参数

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

要聚合的要素。

Feature Layer
输出要素类

要创建的将包含聚合要素的要素类。

Feature Class
融合字段
(可选)

将进行聚合的要素的一个或多个字段。

Field
统计数据字段
(可选)

指定包含用于计算指定统计数据的属性值的一个或多个数值字段。 可以指定多项统计和字段组合。 空值将被排除在所有计算之外。

可使用第一种和最后一种统计来对文本属性字段进行汇总。 可使用任何一种统计来对数值属性字段进行汇总。

可用统计类型如下:

  • 总和 - 将指定字段的值相加在一起。
  • 平均值 - 将计算指定字段的平均值。
  • 最小值 - 将查找指定字段所有记录的最小值。
  • 最大值 - 将查找指定字段所有记录的最大值。
  • 范围 - 将计算指定字段的值范围(最大值 - 最小值)。
  • 标准差 - 将计算指定字段中值的标准差。
  • 计数 - 将查找计算中包括的值的数目。 计数包括除空值外的所有值。 要确定字段中的空值数,请在相应字段上创建计数,然后在另一个不包含空值的字段上创建计数(例如 OID,如果存在的话),然后将这两个值相减。
  • 第一个 - 将使用输入中第一条记录的指定字段值。
  • 最后一个 - 将使用输入中最后一条记录的指定字段值。
  • 中值 - 将计算指定字段所有记录的中值。
  • 方差 - 将计算指定字段所有记录的方差。
  • 唯一值 - 将计算指定字段的唯一值数量。
  • 串连 - 指定字段的值将被串连。 可以使用串连分隔符参数分隔这些值。
Value Table
创建多部件要素
(可选)

指定在输出要素类中是否将允许多部分要素。

  • 选中 - 输出要素类中将允许多部分要素。 这是默认设置。
  • 未选中 - 输出要素类中将不允许多部分要素。 系统将为各部件创建单独的要素。
Boolean
取消线分割
(可选)

指定线要素的融合方式。

  • 取消选中 - 将线融合为单个要素。 这是默认设置。
  • 选中 - 只有当两条线具有一个公共结束折点时才会对线进行融合。
Boolean
串连分隔符
(可选)

串连选项用于统计数据字段参数时,将用于串连值的一个或多个字符。

String

arcpy.management.Dissolve(in_features, out_feature_class, {dissolve_field}, {statistics_fields}, {multi_part}, {unsplit_lines}, {concatenation_separator})
名称说明数据类型
in_features

要聚合的要素。

Feature Layer
out_feature_class

要创建的将包含聚合要素的要素类。

Feature Class
dissolve_field
[dissolve_field,...]
(可选)

将进行聚合的要素的一个或多个字段。

Field
statistics_fields
[[field, {statistic_type}],...]
(可选)

指定包含用于计算指定统计数据的属性值的一个或多个数值字段。 可以指定多项统计和字段组合。 空值将被排除在所有计算之外。

可使用第一种和最后一种统计来对文本属性字段进行汇总。 可使用任何一种统计来对数值属性字段进行汇总。

可用统计类型如下:

  • SUM - 将指定字段的值相加在一起。
  • MEAN - 将计算指定字段的平均值。
  • MIN - 将查找指定字段所有记录的最小值。
  • MAX - 将查找指定字段所有记录的最大值。
  • RANGE - 将计算指定字段的值范围(最大值 - 最小值)。
  • STD - 将计算指定字段中值的标准差。
  • COUNT - 将查找计算中包括的值的数目。 计数包括除空值外的所有值。 要确定字段中的空值数,请在相应字段上创建计数,然后在另一个不包含空值的字段上创建计数(例如 OID,如果存在的话),然后将这两个值相减。
  • FIRST - 将使用输入中第一条记录的指定字段值。
  • LAST - 将使用输入中最后一条记录的指定字段值。
  • MEDIAN - 将计算指定字段所有记录的中值。
  • VARIANCE - 将计算指定字段所有记录的方差。
  • UNIQUE - 将计算指定字段的唯一值数量。
  • CONCATENATE - 指定字段的值将被串连。 可以使用 concatenation_separator 参数分隔这些值。
Value Table
multi_part
(可选)

指定在输出要素类中是否将允许多部分要素。

  • MULTI_PART输出要素类中将允许多部分要素。 这是默认设置。
  • SINGLE_PART输出要素类中将不允许多部分要素。 系统将为各部件创建单独的要素。
Boolean
unsplit_lines
(可选)

指定线要素的融合方式。

  • DISSOLVE_LINES将线融合为单个要素。 这是默认设置。
  • UNSPLIT_LINES只有当两条线具有一个公共结束折点时才会对线进行融合。
Boolean
concatenation_separator
(可选)

CONCATENATION 选项用于 statistics_fields 参数时,将用于串连值的一个或多个字符。

String

代码示例

Dissolve 示例 1(Python 窗口)

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

import arcpy
arcpy.env.workspace = "C:/data/Portland.gdb/Taxlots"
arcpy.management.Dissolve("taxlots", "C:/output/output.gdb/taxlots_dissolved",
                          ["LANDUSE", "TAXCODE"], "", "SINGLE_PART", 
                          "DISSOLVE_LINES")
Dissolve 示例 2(独立脚本)

以下独立脚本演示了如何使用 Dissolve 函数。

# Name: Dissolve_Example2.py
# Description: Dissolve features based on common attributes

# Import system modules
import arcpy

arcpy.env.workspace = "C:/data/Portland.gdb/Taxlots"

# Set local variables
inFeatures = "taxlots"
tempLayer = "taxlotsLyr"
expression = arcpy.AddFieldDelimiters(inFeatures, "LANDUSE") + " <> ''"
outFeatureClass = "C:/output/output.gdb/taxlots_dissolved"
dissolveFields = ["LANDUSE", "TAXCODE"]

# Run MakeFeatureLayer and SelectLayerByAttribute.  This is only to exclude 
# features that are not desired in the output.
arcpy.management.MakeFeatureLayer(inFeatures, tempLayer)
arcpy.management.SelectLayerByAttribute(tempLayer, "NEW_SELECTION", expression)

# Run Dissolve using LANDUSE and TAXCODE as Dissolve Fields
arcpy.management.Dissolve(tempLayer, outFeatureClass, dissolveFields, "", 
                          "SINGLE_PART", "DISSOLVE_LINES")