插图
使用方法
此工具从输入点要素中提取聚类,并标识所有周围噪点。
存在三个聚类方法选项。定义距离 (DBSCAN) 算法可基于指定搜索距离查找紧密邻近的点聚类。自调整 (HDBSCAN) 算法可基于聚类概率(或稳定性)查找点聚类,方法与 DBSCAN 类似,不同之处在于使用适用于具有可变密度的聚类的可变距离。多比例 (OPTICS) 算法可基于至下一个要素的最小距离排列输入点。然后,将构造可达图,并基于要视为聚类的最小要素数、搜索距离以及可达图的特征(例如山峰的坡度和高度)获取聚类。
此工具可生成包含新整型字段 CLUSTER_ID 的输出要素类,该字段可显示各个要素所属的聚类。默认渲染基于 COLOR_ID 字段。将为每个颜色分配多个聚类。将分配颜色并重复使用,以使每个聚类的外观不同于其邻近聚类。
-
该工具还会创建消息和图表,以帮助您了解所标识聚类的特征。可将鼠标悬停在进度条上、单击弹出按钮或展开地理处理窗格中的消息部分来访问消息。还可通过地理处理历史访问之前运行基于密度的聚类工具的消息。所创建的图表可从内容窗格进行访问。
有关输出消息和图表的详细信息,以及有关此工具背后算法的详细信息,请参阅“基于密度的聚类”工作原理。
如果为聚类方法参数选择自调整 (HDBSCAN),则输出要素类还将包含以下字段:PROB,表示要素属于其所分配组的概率;OUTLIER,指定要素可能是其自己聚类中的异常值(值越高,则该要素是异常值的可能性越大);EXEMPLAR,表示各个聚类中最为典型或最具代表性的要素。
如果为聚类方法参数选择多比例 (OPTICS),则输出要素类还将包含字段 REACHORDER(表示针对分析排列输入点要素的方法)和 REACHDIST(表示每个要素与其未访问的最邻近要素之间的距离)。
对于定义的距离 (DBSCAN) 和多比例 (OPTICS),则默认搜索距离为数据集中找到的最高核心距离,不包括前 1% 的核心距离(即排除最极端的核心距离)。
-
如果未投影输入要素(即,坐标单位为度、分和秒),或者将输出坐标系设置为地理坐标系,则采用弦测量方法计算距离。使用弦距离测量法是因为此方法不仅计算速度快,而且提供真实测地线距离的良好估测,至少对于彼此 30 度以内的点是这样。弦距离是基于扁椭球体计算的。给定地球表面上的任意两点,两点之间的弦距离是从三维地球穿过然后连接该两点的一条线的长度。弦距离以米为单位输出。
警告:
如果您的研究区域超过 30 度,则最佳做法为投影数据。测地线距离超过 30 度时,弦距离不是理想的估测方法。
如果存在 z 值,则此工具在其计算中将包括 z 值,并且结果将为 3D 模式。
此工具支持并行处理,默认情况下使用 50% 的可用处理器。处理器数目可以通过使用并行处理因子环境增加或减少。
语法
arcpy.stats.DensityBasedClustering(in_features, output_features, cluster_method, min_features_cluster, {search_distance}, cluster_sensitivity)
参数 | 说明 | 数据类型 |
in_features | 将执行基于密度的聚类的点要素类。 | Feature Layer |
output_features | 用于接收聚类结果的输出要素类。 | Feature Class |
cluster_method | 指定用于定义聚类的方法。
| String |
min_features_cluster | 要视为聚类的最小要素数。要素数少于给定数量的聚类将被视为噪点。 | Long |
search_distance (可选) | 要考虑的最大距离。 对于定义的距离 (DBSCAN),必须在聚类成员资格的此距离内找到指定的每个聚类的最小要素数。将至少按此距离来分隔单个聚类。如果要素与聚类中下一最近要素的距离大于此距离,则不会将该要素包括在聚类中。 对于多比例 (OPTICS),此参数是可选的,并且可用作创建可达图时的最大搜索距离。对于 OPTICS,结合聚类敏感度参数的可达图可以确定聚类成员资格。如果未指定距离,则工具将搜索所有距离,这会增加处理时间。 如果留空,则使用的默认距离将为数据集中找到的最高核心距离,排除前 1% 的核心距离(即排除最极端的核心距离)。 | Linear Unit |
cluster_sensitivity | 0 到 100 之间的整数,用于确定聚类的紧密度。值越接近 100,则产生的密集聚类越多。值越接近 0,则产生的较松散聚类越多。如果留空,工具将使用 Kullback-Leibler Divergence 找到一个添加更多聚类并不会增加额外信息的敏感度值。 | Long |
代码示例
以下 Python 窗口脚本演示了如何使用 DensityBasedClustering 工具。
import arcpy
arcpy.env.workspace = r"C:\Analysis"
arcpy.DensityBasedClustering_stats("Chicago_Arson", "Arson_HDB", "HDBSCAN", 15)
以下独立 Python 脚本演示了如何使用 DensityBasedClustering 工具。
# Clustering crime incidents in a downtown area using the Density-based Clustering tool
# Import system modules
import arcpy
import os
# Overwrite existing output, by default
arcpy.env.overwriteOutput = True
# Local variables...
workspace = r"E:\working\data.gdb"
arcpy.env.workspace = workspace
# Run Density-based Clustering with the HDBSCAN Cluster Method using a minimum
# of 15 features per cluster
arcpy.stats.DensityBasedClustering("Chicago_Arson", "Arson_HDB", "HDBSCAN", 15)
# Run Density-based Clustering again using OPTICS with a Search Distance and
# Cluster Sensitivity to create tighter clusters
arcpy.stats.DensityBasedClustering("Chicago_Arson", "Arson_Optics", "OPTICS",
15, "1200 Meters", 70)
许可信息
- Basic: 是
- Standard: 是
- Advanced: 是