插图
使用方法
此地理处理工具适用于 ArcGIS Enterprise 10.6.1 或更高版本。
查找点聚类的输入为点图层。此工具从输入点图层中提取聚类,并标识所有周围噪点。
存在两个聚类方法参数选项。定义的距离 (DBSCAN) 使用 DBSCAN 算法,并基于指定搜索距离查找紧密邻近的点聚类。自调整 (HDBSCAN) 使用 HDBSCAN 算法(适用于 ArcGIS Enterprise 10.7 及更高版本),并基于聚类概率(或稳定性)查找点聚类,方法与 DBSCAN 类似,不同之处在于使用适用于具有可变密度的聚类的可变距离。如果选择了 DBSCAN,则只能在二维空间中找到聚类,或在空间和时间中都可以找到聚类。如果选中了使用时间查找聚类,同时输入图层启用了时间且类型为时刻,则 DBSCAN 将基于指定的搜索距离和搜索持续时间来查找紧密邻近的点的时空聚类(支持 ArcGIS Enterprise 10.8 及更高版本)。
根据以下聚类方法,每个聚类的最小要素数参数的使用方式也不同:
- 定义距离 (DBSCAN) - 可以指定在某点开始形成聚类的搜索距离内必须找到的要素数。结果可能包括要素数量少于此值的聚类。搜索距离可使用搜索距离参数进行设置。在使用时间查找聚类时,必须提供搜索持续时间。在搜索聚类成员时,必须在搜索距离和搜索持续时间中找到每个聚类的最小要素数,方可形成聚类。请注意,此距离和持续时间与所找到的点聚类的直径或时间范围无关。
- 自调整 (HDBSCAN) - 可指定与估算密度时考虑的每个点相邻的要素数(包括该点)。此数字也是提取聚类时所允许的最小聚类大小。
此工具可生成包含新整型字段 CLUSTER_ID 的输出要素类,该字段可标识各个要素所位于的聚类。默认渲染基于 COLOR_ID 字段。将为每个颜色分配多个聚类。将分配颜色并重复使用,以使每个聚类的外观不同于其邻近聚类。
如果定义距离 (DBSCAN) 聚类方法与时间一同用于查找时空聚类,则结果中还将包含以下字段:
- FEAT_TIME - 每个要素的原始时刻时间。
- START_DATETIME - 要素所属聚类的时间范围的开始时间。
- END_DATETIME - 要素所属聚类的时间范围的结束时间。
结果图层的时间属性将被设置为 START_DATETIME 和 END_DATETIME 字段上的间隔,以确保在使用时间滑块可视化时空聚类时将所有聚类成员绘制在一起。这些字段仅用于可视化。对于噪点要素,START_DATETIME 和 END_DATETIME 将等于 FEAT_TIME。
如果聚类方法为自调整 (HDBSCAN),输出要素类还将包含以下字段:
- PROB - 某个要素属于其所分配聚类的概率。
- OUTLIER - 某个要素在其自己的聚类中为异常值的可能性。值越大表示该要素越有可能是异常值。
- EXEMPLAR - 各个聚类中最具代表性的要素。这些要素以值 1 表示。
- STABILITY - 每个聚类在一定比例范围内的持久性。值越大表示聚类在越大范围的距离比例内持续存在。
如果将 HDBSCAN 算法与包含 300 万以上要素的输入图层搭配使用,则除非管理员通过 GeoAnalyticsTools GP 服务提高了 javaHeapSize 参数的值,否则该工具可能运行失败。每 300 万要素需要大约 2 GB 的堆空间。除了 GeoAnalytics Server 通常所需的 16 GB 之外,每台 GeoAnalytics Server 计算机上都应留有 javaHeapSize 指定的可用 RAM 数量。例如,要使用 HDBSCAN 来聚合 900 万要素,请将 javaHeapSize 设置为不少于 6144 MB 或 6 GB。在这种情况下,每台 GeoAnalytics Server 计算机应具有总共至少 22 GB 的可用 RAM。
您可以使用以下一个或多个提示来提升查找点聚类工具的性能:
- 设置范围环境,以便仅分析感兴趣的数据。
- 仔细选择搜索距离和持续时间。面对相同的数据,较窄的搜索距离或半径可能会获得更好的运行表现。
- 将本地数据用于分析运行的位置。
此地理处理工具由 ArcGIS GeoAnalytics Server 作为支持。分析将在 GeoAnalytics Server 上完成,且结果将存储在 ArcGIS Enterprise 的内容中。
当 GeoAnalytics Server 工具运行时,GeoAnalytics Server 上的分析已完成。要获得最佳性能,通过 ArcGIS Enterprise 门户上托管的要素图层或通过大数据文件共享,可以将数据用于 GeoAnalytics Server。在分析开始之前,非 GeoAnalytics Server 本地数据将被转移到您的 GeoAnalytics Server。这意味着运行工具需要更长时间,并且在某些情况下,从 ArcGIS Pro 到 GeoAnalytics Server 移动数据可能会失败。失败的阈值取决于网络速度,以及数据的大小和复杂性。因此,建议您始终共享数据或创建大数据文件共享。
语法
arcpy.geoanalytics.FindPointClusters(input_points, output_name, minimum_points, search_distance, {data_store}, {clustering_method}, {use_time}, {search_duration})
参数 | 说明 | 数据类型 |
input_points | 包含点聚类的点要素类。 | Feature Set |
output_name | 输出要素服务的名称。 | String |
minimum_points | 根据选择的聚类方法,此参数的使用方式也不同,如下所示:
| Long |
search_distance | 要考虑的最大距离。 必须在聚类隶属度的此距离内找到指定的每个聚类的最小要素数。将至少按此距离来分隔单个聚类。如果要素与聚类中下一最近要素的距离大于此距离,则不会将该要素包括在聚类中。 | Linear Unit |
data_store (可选) | 指定将用于保存输出的 ArcGIS Data Store。默认为 SPATIOTEMPORAL_DATA_STORE。在时空大数据存储中存储的所有结果都将存储在 WGS84 中。在关系数据存储中存储的结果都将保持各自的坐标系。
| String |
clustering_method (可选) | 指定将用于定义聚类的方法。
| String |
use_time (可选) | 用于指定是否将使用时间通过 DBSCAN 查找聚类。
| Boolean |
search_duration (可选) | 在搜索聚类成员时,必须在此持续时间内找到指定的最小点数方可形成聚类。 | Time Unit |
派生输出
名称 | 说明 | 数据类型 |
output | 输出点聚类。 | 要素集 |
代码示例
以下 Python 窗口脚本演示了如何使用 FindPointClusters 工具。
#-------------------------------------------------------------------------------
# Name: FindPointClusters.py
# Description: Finds Point Clusters of rodent infestations
#
# Requirements: ArcGIS GeoAnalytics Server
# Import system modules
import arcpy
# Set local variables
inputPoints = "https://myGeoAnalyticsMachine.domain.com/geoanalytics/rest/services/DataStoreCatalogs/bigDataFileShares_countyData/BigDataCatalogServer/rat_sightings"
minimumPoints = 10
outputName = "RodentClusters"
searchDistance = "1 Kilometers"
dataStore = "SPATIOTEMPORAL_DATA_STORE"
clusterMethod = "DBSCAN"
# Execute Find Point Clusters
arcpy.geoanalytics.FindPointClusters(inputPoints, outputName, mimimumPoints,
searchDistance, dataStore, clusterMethod)
环境
- 输出坐标系
将用于分析的坐标系。除非由该参数进行指定,否则将基于输入坐标系完成分析。对于 GeoAnalytics 工具,最终结果将存储于 WGS84 中的时空数据存储之内。
许可信息
- Basic: 需要 ArcGIS GeoAnalytics Server
- Standard: 需要 ArcGIS GeoAnalytics Server
- Advanced: 需要 ArcGIS GeoAnalytics Server