我在一组点上使用 Delaunay 三角剖分,试图以规则模式隔离点簇。
我第一次使用 qhull.Delaunay 对象的经验,请多多包涵……
from scipy.spatial import Delaunay
tri = Delaunay(array)
目前看起来像:
我发现我可以print (tri.simplices)
得到这份清单。我只想隔离那些明显集群中的那些,我想这可以通过删除那些行长或体积超过某个阈值的那些来完成,但我不确定如何操纵结果来做到这一点?
找到答案 - 发布以防对其他人有用。
Delaunay 输出为您提供每个点的坐标列表,以及构成每个三角形的三个点的嵌套列表。
要访问他们的区域,首先将其转换为 Shapely 多边形列表,然后您的多边形就是您的牡蛎。
from shapely.geometry.polygon import Polygon
coord_groups = [tri.points[x] for x in tri.simplices]
polygons = [Polygon(x) for x in coord_groups]
#area of the first polygon
polygons[0].area