2017-01-31 27 views
0

Я использую триангуляцию Delaunay на множестве точек, пытаясь изолировать кластеры точек в регулярном шаблоне.Как выбрать из вывода scipy триангуляции Delaunay только упрощения при определенном объеме (или при общей длине строки)?

Мой первый опыт с использованием объекта qhull.Delaunay так, медведь со мной ...

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

В настоящее время выглядит следующим образом:

Delaunay output

и я обнаружил, что я могу print (tri.simplices) к получить список. Я хочу изолировать только те, которые находятся в очевидных кластерах, которые, как я полагаю, можно сделать, удалив их с длиной или объемом строки над определенным порогом, но я не уверен, как манипулировать результатом для этого?

ответ

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