如何从scipy Delaunay三角剖分的输出中选择仅在一定体积(或总线长度)下的单纯形?

时间:2017-01-31 16:04:38

标签: python scipy spatial delaunay simplex

我在一组点上使用Delaunay三角剖分,试图以规则模式隔离点集群。

我第一次使用qhull.Delaunay对象的经历让我忍受......

from scipy.spatial import Delaunay
tri = Delaunay(array)

目前看起来像:

Delaunay output

我发现我可以print (tri.simplices)获取列表。我想只隔离明显集群中的那些,我想这可以通过删除线长或体积超过某个阈值的那些来完成,但我不确定如何操作结果来做到这一点?

1 个答案:

答案 0 :(得分:0)

找到答案 - 发布以防其他人有用。

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