我有一个气压数据阵列(M x N)(网格化模型数据)。对于纬度和经度,还有两个阵列(也是M×N)。为了构建等压线的GeoJSON(压力相等的表面),我需要找到给定步长(1 Pa,0.5 Pa)的压力值簇。总的来说,我正在考虑解决这个问题:
但是第3步还不清楚:如何以智能方式找到集群?我应该寻找哪种算法?我可以用scipy.cluster包吗?
答案 0 :(得分:1)
我根本不认为你正在寻找集群。
显然给出了等压线范围。因此,将数据集拆分为它们;您不需要对此进行排序 - 只需找到获取所有存储桶的最小值和最大值,然后分别根据每个存储桶选择数据。这可以很好地将问题分解成更小的块。
我猜你的问题主要是可视化问题。你想显示类似压力的区域而不是积分,对吗?
不要查看需要预先定义参数k的统计方法,如最小二乘优化(k-means),而应考虑查看可视化技术,例如Alpha Shapes(与凸包密切相关,但它们也允许非凸形状)。如果为每个压力域计算alpha形状,则应该可以很好地显示这些区域。
如果您坚持使用群集,请查看DBSCAN。主要是因为它允许非凸形状的簇,并且它可以与纬度+经度一起工作(k-means不会)。但即使是HAC也可以为您提供良好的结果,因为您可以根据您的数据分辨率定义切割阈值(例如,合并任何点 - 在相同的压力桶中 - 如果它们相距不到1公里)。