标注 | 说明 | 数据类型 |
输入要素 | 要聚合的要素。 | Feature Layer |
输出要素类 | 要创建的将包含聚合要素的要素类。 | Feature Class |
融合字段 (可选) | 将进行聚合的要素的一个或多个字段。 如果未指定字段,该工具会将所有要素融合在一起。 | Field |
统计数据字段 (可选) | 指定包含将用于计算指定统计数据的属性值的一个或多个字段。 可以指定多项统计和字段组合。 空值将被排除在所有计算之外。 默认情况下,该工具不会计算任何统计数据。 可使用第一种和最后一种统计来对文本属性字段进行汇总。 可使用任何一种统计来对数值属性字段进行汇总。 可用统计类型如下:
| Value Table |
创建多部件要素 (可选) | 指定在输出要素类中是否将允许多部分要素。
| Boolean |
取消线分割 (可选) | 指定线要素的融合方式。
| Boolean |
串连分隔符 (可选) | 当串连选项用于统计数据字段参数时,将用于串连值的一个或多个字符。 默认情况下,该工具将连接不带分隔符的值。 | String |
插图
使用情况
可使用各种统计对通过此工具聚合的要素属性进行汇总或描述。 以“统计类型 + 下划线 + 输入字段名”为命名标准,将用来汇总属性的统计以单个字段的形式添加到输出要素类中。 例如,如果对名为 POP 的字段使用 SUM 统计类型,则输出中将包含名为 SUM_POP 的字段。
融合可在输出要素类中创建超大型要素,当融合字段参数中存在少量唯一值时或将所有要素融合为单个要素时尤其如此。 超大型要素可能会引起处理或显示故障或降低在地图上进行绘制或编辑时的性能。 如果融合输出在一台计算机上以最大尺寸创建要素,然后将此输出移动到一个可用内存较少的计算机上,也会出现问题。 要避免这些潜在问题,可使用创建多部分要素参数创建单部件要素,以便将可能较大的多部分要素分割为多个较小要素。 对于融合工具创建的超大型要素,必须使用切分工具来切割较大的要素,以解决处理、显示或性能上的问题。
空值将被排除在所有统计计算之外。 例如,10、5 和空值的平均值为 7.5 ((10+5)/2)。 计数可返回统计计算中所包括值的数目,如本例中为 2。
为了获得更好的性能和可扩展性,此工具将使用切片过程来处理非常大的数据集。 有关详细信息,请参阅大型数据集的切片处理。
可用物理内存量会对可处理并融合为单个输出要素的输入要素的数量(和复杂性)造成限制。 此限制可能导致错误,因为融合过程需要的内存量可能会超过可用的内存量。 为防止出现此问题,融合可以使用适当的切片算法对输入要素进行分割和处理。 要确定要素是否已被切片,可对此工具的结果运行频数工具,将频数字段参数指定为融合过程中所使用的字段。 已对频数值为 2 的所有记录进行切片。 会在输出要素中保留切片边界,以防止创建的要素过大而无法被 ArcGIS 使用。
警告:
当原始的处理使用适当的切片对输入进行分割和处理后,对上一次融合过程的输出再次运行融合几乎不会减少输出中要素的数量。 任何输出要素的最大大小都取决于运行时的可用内存量;包含切片的输出是一个指示器,指示使用可用资源再进行融合会导致内存不足,或生成无法使用的要素。 此外,再次以相同的方式对创建的输出结果运行融合工具,可能会导致系统性能下降而一无所获,而且还可能会导致异常失败。
取消线分割参数仅适用于线输入。 如果指定了默认值,则会将线融合为单个要素;否则,只将具有公共端点(称为伪节点)的两条线合并为一条连续线。
如果输入要素参数值的几何类型为点或多点,且创建多部件要素参数处于选中状态,则输出将为多点要素类。 否则,如果未选中创建多部件要素参数,则输出将为点要素类。
参数
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}],...] (可选) | 指定包含将用于计算指定统计数据的属性值的一个或多个字段。 可以指定多项统计和字段组合。 空值将被排除在所有计算之外。 默认情况下,该工具不会计算任何统计数据。 可使用第一种和最后一种统计来对文本属性字段进行汇总。 可使用任何一种统计来对数值属性字段进行汇总。 可用统计类型如下:
| Value Table |
multi_part (可选) | 指定在输出要素类中是否将允许多部分要素。
| Boolean |
unsplit_lines (可选) | 指定线要素的融合方式。
| Boolean |
concatenation_separator (可选) | 当 CONCATENATION 选项用于 statistics_fields 参数时,将用于串连值的一个或多个字符。 默认情况下,该工具将连接不带分隔符的值。 | String |
代码示例
以下 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 函数。
# 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")