在项目的这个阶段,我有两种类型的卫星数据(MODIS和AMSR-E)已经过滤和地理空间聚类。我的下一步是确定AMSR-E数据中的任何集群是否位于任何MODIS集群的范围内。
我使用SciKit中的DBSCAN库在python中单独聚集来自两个数据集的高值点 - 但我不确定如何识别一种类型的簇是否位于另一种簇中。
来自每个数据集的输入存储在python词典中,将群集ID映射到点列表及其值。换句话说,字典看起来像这样(虽然数字代替变量名称自然而然)。
{group_id:[(lat,long,data_val),(lat,long,data_val)]}
任何有助于找到算法以有效识别群集是否包含在彼此内部的任何帮助都将非常感激。
答案 0 :(得分:0)
在我看来,你需要两个基本的算法(其中有很多实现)
Point-in-polygon algorithm: 一种算法,用于确定点是否包含在由一组点给出的多边形内。
Convex-hull algorithm: 粗略地说,一种算法,给定一组点,即完全包围点的最小多边形。
以下是关于如何使用这些算法来实现目标的两个想法:
由于凸包算法和多边形点算法需要不同的计算量,这取决于每个集群中有多少点,这个过程可能更有效: