Как выбрать из вывода scipy триангуляции Делоне только симплексы определенного объема (или общей длины строки)?

Я использую триангуляцию Делоне на наборе точек, пытаясь изолировать группы точек по регулярному шаблону.

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

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

На данный момент выглядит так:

Вывод Делоне

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


person Cate    schedule 31.01.2017    source источник


Ответы (1)


Нашел ответ - выкладываю на случай, если это будет полезно другим.

Вывод Делоне дает вам список координат для каждой точки и вложенный список, в котором три точки образуют каждый треугольник.

Чтобы получить доступ к их области, сначала вы преобразуете это в список многоугольников 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
person Cate    schedule 02.02.2017
comment
Можете ли вы предоставить весь код, который вы использовали, чтобы понять это? буду премного благодарен! я пытаюсь решить очень похожую проблему [здесь] [1] [1]: stackoverflow.com/questions/63608352/ - person Kathan Vyas; 27.08.2020