Python中地理点的聚类

2024-10-01 15:35:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一组400k的地理点(包括经纬度),我正试图将其聚类并绘制在地图上。目前我使用的是Folium包的MarkerCluster来可视化点的聚类。但这看起来非常慢,代码会无限期地运行。在

只是想知道是否有其他Python包可以有效地用于此目的?在

当前代码:

import folium
from folium import plugins
from IPython.display import Image, clear_output, display, HTML

data = df[['StartLat','StartLong']].as_matrix()
avgLat = df['StartLat'].mean()
avgLong = df['StartLong'].mean()

mapa = folium.Map([avgLat, avgLong], zoom_start=6)
marker_cluster = folium.MarkerCluster().add_to(mapa)
latArr = np.array(df.StartLat)
lonArr = np.array(df.StartLong)

for i in range(len(latArr)):
        folium.Marker([latArr[i], lonArr[i]], icon = folium.Icon(color='green',icon='ok-sign')).add_to(marker_cluster)
mapa.save('Clustering.html')

Tags: 代码fromimportdfdisplay聚类meanfolium
1条回答
网友
1楼 · 发布于 2024-10-01 15:35:54

让我试着用两个步骤回答你的问题:

  1. 你看到question here了吗?他们也有同样的问题,即聚集大量的地理坐标。建议的解决方案使用scipy.cluster

    中的聚类算法
  2. 然而,就地理位置而言。常规的聚类分析技术可能不太适合。这主要是因为从地球表面采集的点样本往往相互关联(spatial autocorrelation)。因此,这些点违反了经典统计学中许多技术所固有的独立性条款。因此,如果您坚持使用Python,我建议您查看包clusterPylink here)。它们有几种常用于空间数据的聚类算法实现。对空间自相关的一些阅读也可能有助于理解一些算法通常需要作为参数的考虑因素(如距离带)。

相关问题 更多 >

    热门问题