融合 (数据管理)
插图
用法
-
可使用各种统计对已通过融合而聚合的要素的属性进行汇总或描述。以“统计类型 + 下划线 + 输入字段名”为命名标准,将用来汇总属性的统计以单个字段的形式添加到输出要素类中。例如,如果对名为 'POP' 的字段使用 SUM 统计,则输出中将存在名为 'SUM_POP' 的字段。
-
融合可在输出要素类中创建超大型要素。当融合字段中存在少量唯一值时或将所有要素融合为单个要素时尤其适用。超大型要素可能会引起显示故障和/或降低在地图上进行绘制或编辑时的性能。要避免这些潜在问题,可使用创建多部分(multipart)要素参数的 SINGLE_PART 选项将可能较大的多部分要素分割为多个较小要素。
-
空值将被排除在所有统计计算之外。例如,10、5 和空值的 AVERAGE 为 7.5 ((10+5)/2)。COUNT 工具可返回统计计算中所包括的值的数目,如本例中为 2。
-
可用物理内存量会对可处理并融合为单个输出要素的输入要素的数量(和复杂性)造成限制。此限制会导致错误,因为融合过程需要的内存量可能会超过可用的内存量。要避免此类情况的发生,可能需要使用适当的切片算法对输入要素进行修剪和处理。要确定要素是否已被切片,可对此工具的结果运行 FREQUENCY 工具,将频数字段参数指定为融合过程中所使用的字段。已对频数值为 2 的所有记录进行切片。会在输出要素中保留切片边界,以防止创建的要素过大而无法被 ArcGIS 使用。可以通过二次融合操作或 ArcMap 中的合并编辑任务(1. 开始编辑;2. 选择两个要素;3. 单击编辑器/合并...)来评估和删除这些切片边界。
-
融合字段参数的添加字段按钮仅可以在“模型构建器”中使用。在模型构建器中,如果先前的工具尚未运行或其派生数据不存在,则可能不会使用字段名称来填充融合字段参数。添加字段按钮可用于添加所需字段,以完成该工具的对话框并继续构建模型。
-
取消线分割参数(具有 DISSOLVE_LINES 和 UNSPLIT_LINES 两个选项)仅适用于线输入。如果指定了默认 DISSOLVE_LINES 选项,则线会被融合为单个要素。如果指定了 UNSPLIT_LINES,则只将具有公共端点(称为伪结点)的两条线合并为一条连续线。
-
此工具通过切片的方式处理庞大的数据集以便提高性能和可扩展性。有关详细信息,请参阅对大型数据集进行地理处理。
语法
参数 | 说明 | 数据类型 |
in_features |
要聚合的要素。 | Feature Layer |
out_feature_class |
要创建的将包含聚合要素的要素类。 | Feature Class |
dissolve_field [dissolve_field,...] (可选) | 要聚合要素的字段。 “添加字段”按钮(只能在模型构建器中使用)可用于添加所需字段,以完成对话框并继续构建模型。 | Field |
statistics_fields [[field, {statistic_type}],...] (可选) |
用于对属性进行汇总的字段和统计。可使用统计 FIRST 或 LAST 对文本属性字段进行汇总。可使用任何一种统计来对数字属性字段进行汇总。空值将被排除在所有统计计算之外。
| Value Table |
multi_part (可选) |
指定在输出要素类中是否允许多部分要素。
| Boolean |
unsplit_lines (可选) |
控制线要素的融合方式。
| Boolean |
代码示例
以下 Python 窗口脚本演示了如何在立即模式下使用“融合”工具。
import arcpy from arcpy import env env.workspace = "C:/data/Portland.gdb/Taxlots" arcpy.Dissolve_management("taxlots", "C:/output/output.gdb/taxlots_dissolved", ["LANDUSE", "TAXCODE"], "", "SINGLE_PART", "DISSOLVE_LINES")
以下独立脚本演示了如何使用“融合”工具。
# Name: Dissolve_Example2.py # Description: Dissolve features based on common attributes # Author: ESRI # Import system modules import arcpy from arcpy import env # Set environment settings 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")