查找点聚类工具基于点要素的空间和时空分布查找周围噪点内的点要素聚类。
工作流示意图
使用 GeoAnalytics 工具集 进行的分析
通过跨多个 ArcGIS GeoAnalytics Server 计算机和核心组件的分布式处理来运行使用 GeoAnalytics 工具集 进行的分析。GeoAnalytics 工具集 和 ArcGIS Enterprise 中标准要素分析工具的参数和功能不同。要了解有关这些差别的详细信息,请参阅要素分析工具差别。
示例
假设一个非政府组织正研究某种特殊的害虫传播疾病,且有代表研究区域内家庭的点数据集,其中有些家庭已经被感染,有些家庭尚未被感染。通过使用点聚类工具,分析人员便可确定已感染家庭的聚类,从而帮助确定要展开治疗及消灭害虫的区域。
用法说明
查找点聚类的输入为单点图层。
选择要使用的聚类方法参数决定是否使用定义距离或者自调整的聚类算法。定义距离 (DBSCAN) 基于指定搜索范围查找紧密邻近的点聚类。自调整 (HDBSCAN) 基于聚类概率(或稳定性)查找点聚类,方法与 DBSCAN 类似,不同之处在于使用适用于具有可变密度的聚类的可变搜索范围。
如果选择了 DBSCAN,则只能在二维空间中找到聚类,或在空间和时间中都可以找到聚类。如果选择了使用时间查找聚类,同时输入图层启用了时间且类型为时刻,则 DBSCAN 将基于指定的搜索距离和搜索持续时间来查找紧密邻近的点的时空聚类。
HDBSCAN 当前仅支持空间聚类,且不会使用时间来发现聚类。
所有结果都将包含一个名为 CLUSTER_ID 的字段,用于指示每个要素所属的聚类,和一个名为 COLOR_ID 的字段,作为用于绘制结果的标注,以使在大多数情况下每个聚类的外观不同于其邻近聚类。对于这两个字段,值为 -1 表明要素已标注为噪点。
如果定义距离 (DBSCAN) 聚类方法与时间一同用于查找时空聚类,则结果中还将包含以下字段:
- FEAT_TIME - 每个要素的原始时刻时间。
- START_DATETIME - 要素所属聚类的时间范围的开始时间。
- END_DATETIME - 要素所属聚类的时间范围的结束时间。
结果图层的时间属性将被设置为 START_DATETIME 和 END_DATETIME 字段上的间隔,以确保大多数情况下,在使用时间滑块可视化时空聚类时将所有聚类成员绘制在一起。对于噪点要素,START_DATETIME 和 END_DATETIME 将等于 FEAT_TIME。
如果使用自调整 (HDBSCAN) 聚类方法,则结果还将包括以下字段:
- PROB - 要素属于其所分配聚类的概率。
- OUTLIER - 要素在其自己的聚类中为异常值的可能性。值越大表示该要素越有可能是异常值。
- EXEMPLAR - 指示哪些要素最能代表每个聚类。这些要素以值 1 表示。
- STABILITY - 每个聚类在一定比例范围内的持久性。分数值越大表示聚类在越大范围的距离比例内持续存在。
将视为聚类的最小点数参数的使用方式不同,具体取决于选择的聚类方法:
- 定义距离 (DBSCAN) - 可以指定在某点开始形成聚类的搜索范围内必须找到的要素数。结果可能包括要素数量少于此值的聚类。搜索范围距离可使用将搜索范围限制为参数进行设置。使用时间查找聚类时,需要额外的搜索持续时间,需使用将搜索持续时间限制为参数进行设置。在搜索聚类成员时,必须在此指定的搜索范围和搜索持续时间内找到指定的最小要素数以形成聚类。请注意,此距离和持续时间与所找到的点聚类的直径或时间范围无关。
- 自调整 (HDBSCAN) - 可指定与估算密度时考虑的每个点相邻的要素数(包括点本身)。此数字也是提取聚类时所允许的最小聚类大小。
在使用具有包含超过 300 万个要素的输入图层的 HDBSCAN 算法时,除非管理员增加 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 Pro 文档。
ArcGIS API for Python 示例
可通过 ArcGIS API for Python 获取查找点聚类工具。
本示例可查找零售点位置的聚类。
# Import the required ArcGIS API for Python modules import arcgis from arcgis.gis import GIS from arcgis.geoanalytics import analyze_patterns
# Connect to your ArcGIS Enterprise portal and check that GeoAnalytics is supported portal = GIS("https://myportal.domain.com/portal", "gis_publisher", "my_password", verify_cert=False) if not portal.geoanalytics.is_supported():
print("Quitting, GeoAnalytics is not supported") exit(1)
# Find the big data file share dataset you're interested in using for analysis search_result = portal.content.search("", "Big Data File Share")
# Look through search results for a big data file share with the matching name bd_file = next(x for x in search_result if x.title == "bigDataFileShares_RetailLocation")
# Look through the big data file share for points of sale pos = next(x for x in bd_file.layers if x.properties.name == "POS")
# Set the tool environment settings arcgis.env.verbose = True
# Run the tool Find Point Clusters output = analyze_patterns.find_point_clusters(pos, 10, "Kilometers", "POS_Clusters")
# Visualize the tool results if you are running Python in a Jupyter Notebook processed_map = portal.map('USA') processed_map.add_layer(output) processed_map
类似工具
使用查找点聚类基于点要素的空间分布查找周围噪点内的点要素聚类。其他可能有用的工具包括:
Map Viewer 分析工具
要确定数据在空间模式方面是否存在任何统计显著性的聚类,请使用查找热点工具。
要创建点或线要素的密度地图,可以使用计算密度工具。
要确定数据的空间模式中是否存在统计显著性异常值,可以使用查找异常值工具。
ArcGIS Desktop 分析工具
基于密度的聚类地理处理工具的功能与查找点聚类的功能相同。
查找点聚类 GeoAnalytics 工具集 在 ArcGIS Pro 中可用。