查找点聚类 (GeoAnalytics Desktop)

摘要

基于点要素的空间或时空分布查找周围噪点内的点要素聚类。

了解有关“基于密度的聚类”工作原理的详细信息

插图

查找点聚类工具图示

使用情况

  • 查找点聚类的输入为点图层。此工具从输入点图层中提取聚类,并标识所有周围噪点。

  • 查找点聚类要求输入点图层已投影或输出坐标系设置为投影坐标系

  • 存在两个聚类方法参数选项。定义的距离 (DBSCAN) 使用 DBSCAN 算法,并基于指定搜索距离查找紧密邻近的点聚类。自调整 (HDBSCAN) 使用 HDBSCAN 算法,并基于聚类概率(或稳定性)查找点聚类,方法与 DBSCAN 类似,不同之处在于使用适用于具有可变密度的聚类的可变距离。如果选择了 DBSCAN,则只能在二维空间中找到聚类,或在空间和时间中都可以找到聚类。如果选择了使用时间查找聚类,同时输入图层启用了时间且类型为时刻,则 DBSCAN 将基于指定的搜索距离和搜索持续时间来查找紧密邻近的点的时空聚类。

  • 根据以下聚类方法,每个聚类的最小要素数参数的使用方式也不同:

    • 定义距离 (DBSCAN) - 可以指定在某点开始形成聚类的搜索距离内必须找到的要素数。结果可能包括要素数量少于此值的聚类。搜索距离可使用搜索距离参数进行设置。在使用时间查找聚类时,必须提供搜索持续时间。在搜索聚类成员时,必须在搜索距离搜索持续时间中找到每个聚类的最小要素数,方可形成聚类。请注意,此距离和持续时间与所找到的点聚类的直径或时间范围无关。
    • 自调整 (HDBSCAN) - 可指定与估算密度时考虑的每个点相邻的要素数(包括该点)。此数字也是提取聚类时所允许的最小聚类大小。

  • 此工具可生成包含新整型字段 CLUSTER_ID 的输出要素类,该字段可标识各个要素所位于的聚类。默认渲染基于 COLOR_ID 字段。将为每个颜色分配多个聚类。将分配颜色并重复使用,以使每个聚类的外观不同于其邻近聚类。

  • 如果定义距离 (DBSCAN) 聚类方法与时间一同用于查找时空聚类,则结果中还将包含以下字段:

    • FEAT_TIME - 每个要素的原始时刻时间。
    • START_DATETIME - 要素所属聚类的时间范围的开始时间。
    • END_DATETIME - 要素所属聚类的时间范围的结束时间。

    结果图层的时间属性将被设置为 START_DATETIMEEND_DATETIME 字段上的间隔,以确保在使用时间滑块可视化时空聚类时将所有聚类成员绘制在一起。这些字段仅用于可视化。对于噪点要素,START_DATETIMEEND_DATETIME 将等于 FEAT_TIME

  • 如果聚类方法自调整 (HDBSCAN),输出要素类还将包含以下字段:

    • PROB - 某个要素属于其所分配聚类的概率。
    • OUTLIER - 某个要素在其自己的聚类中为异常值的可能性。值越大表示该要素越有可能是异常值。
    • EXEMPLAR - 各个聚类中最具代表性的要素。这些要素以值 1 表示。
    • STABILITY - 每个聚类在一定比例范围内的持久性。值越大表示聚类在越大范围的距离比例内持续存在。

  • 您可以使用以下一个或多个提示来提升查找点聚类工具的性能:

    • 设置范围环境,以便仅分析感兴趣的数据。
    • 仔细选择搜索距离和持续时间。面对相同的数据,较窄的搜索距离或半径可能会获得更好的运行表现。
    • 本地数据用于分析运行的位置。

  • 此地理处理工具由 Spark 作为支持。 可在台式计算机上并行使用多个核来完成分析。 要了解有关运行分析的详细信息,请参阅 GeoAnalytics Desktop 工具的注意事项

  • 运行 GeoAnalytics Desktop 工具时,将在台式计算机上完成分析。 为获得最佳性能,应在桌面上提供数据。 如果使用的是托管要素图层,则建议您使用 ArcGIS GeoAnalytics Server。 如果您的数据不是本地数据,则运行工具需要更长时间。 要使用 ArcGIS GeoAnalytics Server 执行分析,请参阅 GeoAnalytics Tools

参数

标注说明数据类型
输入点图层

包含点聚类的点要素类。

Feature Layer
输出要素类

包含所生成点聚类的新要素类。

Feature Class
聚类方法

指定将用于定义聚类的方法。

  • 定义的距离 (DBSCAN)将使用定义距离将密集聚类与稀疏噪点分离。 DBSCAN 是最快的聚类方法,但仅适用于距离明确的情况,并且非常适用于定义可能存在的所有聚类。 此方法将产生密度相似的聚类。 这是默认设置。
  • 自调整 (HDBSCAN)将使用可变距离将不同密度的聚类与稀疏噪点分离。 HDBSCAN 是最以数据为驱动的聚类方法,且需要的用户输入最少。
String
每个聚类的最小要素数

根据选择的聚类方法,此参数的使用方式也不同,如下所示:

  • 定义距离 (DBSCAN) - 可以指定在某点开始形成聚类的特定距离内必须找到的要素数。距离可使用搜索距离参数进行定义。
  • 自调整 (HDBSCAN) - 可指定与估算密度时考虑的每个点相邻的要素数(包括该点)。此数字也是提取聚类时所允许的最小聚类大小。

Long
搜索距离

要考虑的最大距离。

必须在聚类成员资格的此距离内找到指定的每个聚类的最小要素数值。 将至少按此距离来分隔单个聚类。 如果要素与聚类中下一最近要素的距离大于此距离,则不会将该要素包括在聚类中。

Linear Unit
使用时间查找聚类
(可选)

用于指定是否将使用时间通过 DBSCAN 查找聚类。

  • 选中 - 将使用搜索距离和搜索持续时间来查找时空聚类。
  • 未选中 - 将使用搜索距离来查找空间聚类,而时间将被忽略。这是默认设置。
Boolean
搜索持续时间
(可选)

在搜索聚类成员时,必须在此持续时间内找到指定的最小点数方可形成聚类。

Time Unit

arcpy.geoanalytics.FindPointClusters(input_points, out_feature_class, clustering_method, minimum_points, search_distance, {use_time}, {search_duration})
名称说明数据类型
input_points

包含点聚类的点要素类。

Feature Layer
out_feature_class

包含所生成点聚类的新要素类。

Feature Class
clustering_method

指定将用于定义聚类的方法。

  • DBSCAN将使用定义距离将密集聚类与稀疏噪点分离。 DBSCAN 是最快的聚类方法,但仅适用于距离明确的情况,并且非常适用于定义可能存在的所有聚类。 此方法将产生密度相似的聚类。 这是默认设置。
  • HDBSCAN将使用可变距离将不同密度的聚类与稀疏噪点分离。 HDBSCAN 是最以数据为驱动的聚类方法,且需要的用户输入最少。
String
minimum_points

根据选择的聚类方法,此参数的使用方式也不同,如下所示:

  • 定义距离 (DBSCAN) - 可以指定在某点开始形成聚类的特定距离内必须找到的要素数。距离可使用搜索距离参数进行定义。
  • 自调整 (HDBSCAN) - 可指定与估算密度时考虑的每个点相邻的要素数(包括该点)。此数字也是提取聚类时所允许的最小聚类大小。

Long
search_distance

要考虑的最大距离。

必须在聚类成员资格的此距离内找到指定的每个聚类的最小要素数值。 将至少按此距离来分隔单个聚类。 如果要素与聚类中下一最近要素的距离大于此距离,则不会将该要素包括在聚类中。

Linear Unit
use_time
(可选)

用于指定是否将使用时间通过 DBSCAN 查找聚类。

  • TIME将使用搜索距离和搜索持续时间来查找时空聚类。
  • NO_TIME将使用搜索距离来查找空间聚类,而时间将被忽略。这是默认设置。
Boolean
search_duration
(可选)

在搜索聚类成员时,必须在此持续时间内找到指定的最小点数方可形成聚类。

Time Unit

代码示例

FindPointClusters 示例(独立脚本)

以下 Python 窗口脚本演示了如何使用 FindPointClusters 函数。

#-------------------------------------------------------------------------------
# Name: FindPointClusters.py
# Description: Finds Point Clusters of rodent infestations

# Import system modules
import arcpy

arcpy.env.workspace = "C:/data/CountyData.gdb"

# Set local variables
inputPoints = "rat_sightings"
minimumPoints = 10
outputName = "RodentClusters"
searchDistance = "1 Kilometers"
clusterMethod = "DBSCAN"

# Run Find Point Clusters
arcpy.gapro.FindPointClusters(inputPoints, outputName, clusterMethod, 
                              minimumPoints, searchDistance)