Я пытаюсь выяснить, как создать многоугольник, который соединяет все конечные точки шейп-файла, содержащего набор полилиний с pythonscript в ArcGIS, у меня возникают проблемы с этим, так как порядок узлов в многоугольнике важен. Я хочу добиться серого многоугольника на картинке из зеленых линий
10
Ответы:
ШАГИ:
Вычислить центральные точки секций:
Построить их евклидово минимальное остовное дерево, распустить его и вычислить буфер, расстояние, равное половине длины кратчайшего участка:
Создайте конечные точки сечения и вычислите их цепочку (расстояние вдоль линии) на границе буфера (закрытая полилиния, версия буфера):
Сортируйте конечные точки в порядке возрастания, используя поле цепочки. Точки ниже помечены их FID:
Создайте многоугольник из упорядоченного набора точек:
Автор сценария:
Я знаю, что это велосипед, но он мой, и мне это нравится
источник
Я публикую это решение для QGIS здесь, потому что оно бесплатное и легко внедряемое. Я рассмотрел только правильную «ветвь» векторного слоя полилинии; как это можно увидеть на следующем изображении (12 объектов в таблице атрибутов):
Код (алгоритм в понимании однострочного списка Python) для запуска на консоли Python QGIS:
После запуска кода:
был создан слой памяти многоугольника (с 11 объектами в таблице атрибутов). Это работает хорошо.
источник
Вы можете выбрать конечные точки, которые будут участвовать в многоугольнике, создать TIN только из этих точек. Конвертировать TIN в полигоны, растворить полигоны. Хитрость в автоматизации этого процесса состоит в том, чтобы решить, какие точки внести в каждый полигон. Если у вас есть линии с допустимыми направлениями, и у всех этих линий есть общий атрибут, вы можете написать запрос на экспорт, скажем, конечные вершины, используя вершины линий для точек, а затем выбрать по атрибуту те точки, которые имеют значение общего атрибута.
Лучше было бы извлечь / выбрать точки, прочитать значения x, y с помощью курсора, использовать значения x, y, чтобы написать новый многоугольник. Я не вижу прикрепленное изображение в вашем посте, но если порядок точек имеет значение, тогда, когда у вас есть значения x, y, сохраненные в списке Python, сортируйте их. http://resources.arcgis.com/EN/HELP/MAIN/10.1/index.html#//002z0000001v000000
источник
Если развернуть комментарий @iant, ближайшая к вашему снимку геометрия - это альфа-форма (альфа-оболочка) конечных точек. К счастью, на многие хорошо полученные темы уже ответили на GIS SE. Например:
Создайте сложный многоугольник из точечного слоя, используя только граничные точки в ArcGIS
Что такое определение, алгоритмы и практические решения для вогнутой оболочки?
Чтобы решить вашу проблему, сначала используйте Feature To Point, чтобы извлечь конечные точки. Затем используйте инструмент Python из этой ссылки, чтобы рассчитать вогнутый корпус.
источник