插图
使用方法
可使用各种统计对已通过融合而聚合的要素的属性进行汇总或描述。以“统计类型 + 下划线 + 输入字段名”为命名标准,将用来汇总属性的统计以单个字段的形式添加到输出要素类中。例如,如果对名为 POP 的字段使用总和统计,则输出中将存在名为 SUM_POP 的字段。
融合可在输出要素类中创建超大型要素。当融合字段参数中存在少量唯一值时或将所有要素融合为单个要素时尤其适用。超大型要素可能会引起处理或显示故障或降低在地图上进行绘制或编辑时的性能。如果融合输出在一台计算机上以最大尺寸创建要素,然后将此输出移动到一个可用内存较少的计算机上,也会出现问题。要避免这些潜在问题,可使用创建多部分要素参数创建单部件要素,以便将可能较大的多部分要素分割为多个较小要素。对于融合工具创建的超大型要素,必须使用切分工具来切割较大的要素,以解决处理、显示或性能上的问题。
空值将被排除在所有统计计算之外。例如,10、5 和空值的平均值为 7.5 ((10+5)/2)。计数可返回统计计算中所包括值的数目,如本例中为 2。
此工具通过切片的方式处理庞大的数据集以便提高性能和可扩展性。有关详细信息,请参阅对大型数据集进行地理处理。
可用物理内存量会对可处理并融合为单个输出要素的输入要素的数量(和复杂性)造成限制。此限制会导致错误,因为融合过程需要的内存量可能会超过可用的内存量。为防止出现此问题,融合可以使用适当的切片算法对输入要素进行分割和处理。要确定要素是否已被切片,可对此工具的结果运行频数工具,将频数字段参数指定为融合过程中所使用的字段。已对频数值为 2 的所有记录进行切片。会在输出要素中保留切片边界,以防止创建的要素过大而无法被 ArcGIS 使用。
警告:
当原始的处理使用适当的切片对输入进行分割和处理后,对上一次融合处理的输出再次运行融合几乎不会减少输出中要素的数量。任何输出要素的最大大小都取决于运行时的可用内存量;因此,包含切片的输出是一个指示器,指示使用可用资源再进行融合会导致内存不足,或生成无法使用的要素。此外,再次以相同的方式对创建的输出结果运行融合工具,可能会导致系统性能下降而一无所获,而且还可能会导致异常失败。
取消线分割参数仅适用于线输入。如果指定了默认值,则会将线融合为单个要素;否则,只将具有公共端点(称为伪节点)的两条线合并为一条连续线。
如果输入要素几何类型为点或多点,且创建多部分要素处于选中状态(Python 中的 MULTI_PART),则输出将为多点要素类。否则,如果未选中创建多部分要素(Python 中的 SINGLE_PART),则输出将为点要素类。
语法
Dissolve(in_features, out_feature_class, {dissolve_field}, {statistics_fields}, {multi_part}, {unsplit_lines})
参数 | 说明 | 数据类型 |
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 |
代码示例
以下 Python 窗口脚本演示了如何在即时模式下使用 Dissolve 工具。
import arcpy
arcpy.env.workspace = "C:/data/Portland.gdb/Taxlots"
arcpy.Dissolve_management("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"]
# Execute MakeFeatureLayer and SelectLayerByAttribute. This is only to exclude
# features that are not desired in the output.
arcpy.MakeFeatureLayer_management(inFeatures, tempLayer)
arcpy.SelectLayerByAttribute_management(tempLayer, "NEW_SELECTION", expression)
# Execute Dissolve using LANDUSE and TAXCODE as Dissolve Fields
arcpy.Dissolve_management(tempLayer, outFeatureClass, dissolveFields, "",
"SINGLE_PART", "DISSOLVE_LINES")
环境
许可信息
- Basic: 是
- Standard: 是
- Advanced: 是