Сегменты линий в полигоны
-
- Завсегдатай
- Сообщения: 460
- Зарегистрирован: 03 фев 2005, 11:46
- Репутация: 15
- Контактная информация:
Сегменты линий в полигоны
Есть файл линий. Линии рисовались «от руки» отдельными сегментами (некорректен топологически), моделируют границы районов. Подскажите, пожалуйста, как минимумом действий преобразовать эти линии в корректный полигональный файл? ArcGIS10, OpenGIS. Спасибо.
Сделал так. Буффер. Объединение (Dissolve). Получил "толстую" сетку.
Как-то можно её преобразовать в осевые линии?
Есть вариант: полученный полигональный общий буфер (3) конвертировать в линии > построить для одной из линий еще один буфер > буфер преобразовать в линии > взять "внутреннею" линию (которая будет примерно в центре исходного буфера), но это как-то очень сложно. Хочется в будущем этот процесс автоматизировать скриптом, а так получается много интерактива. Надеюсь, есть варианты проще.
Сделал так. Буффер. Объединение (Dissolve). Получил "толстую" сетку.
Как-то можно её преобразовать в осевые линии?
Есть вариант: полученный полигональный общий буфер (3) конвертировать в линии > построить для одной из линий еще один буфер > буфер преобразовать в линии > взять "внутреннею" линию (которая будет примерно в центре исходного буфера), но это как-то очень сложно. Хочется в будущем этот процесс автоматизировать скриптом, а так получается много интерактива. Надеюсь, есть варианты проще.
- Вложения
-
- segments.zip
- (2.28 КБ) 418 скачиваний
-
- segments2poly.jpg (56.42 КБ) 11548 просмотров
-
- Гуру
- Сообщения: 2627
- Зарегистрирован: 29 мар 2007, 14:12
- Репутация: 34
- Откуда: Ukraine
Re: Сегменты линий в полигоны
Пробовали в QGIS «Вектор-Обработка геометрии-Преобразовать линии в полигоны»?
- novia
- Гуру
- Сообщения: 2261
- Зарегистрирован: 29 апр 2011, 15:06
- Репутация: 489
- Откуда: Тель-Авив
Re: Сегменты линий в полигоны
Судя по представленному алгоритму ручной оцифровки с буферами точность границ не основной приоритет, а значит можно автоматизировать.Есть файл линий. Линии рисовались «от руки» отдельными сегментами (некорректен топологически), моделируют границы районов. Подскажите, пожалуйста, как минимумом действий преобразовать эти линии в корректный полигональный файл? ArcGIS10, OpenGIS. Спасибо.
1. Самое главное, когда будете оцифровывать в следующий раз - вспомнить о существовании безумно полезных команд/инструментов для оцифровки/редактирования геометрии без "просветов", "недолетов", паразитных полигонов и дырок, а именно:
- замыкание - оно же snapping
- автозавершение полигонов - auto-complete polygon
- топология карты
список можно продолжать.
ну а теперь, предположим, что у вас лицензия 10-ки не ArcView (с ней только прямые руки помогут, придется дотягивать самому) и будем разбираться.
Есть два инструмента геообработки в наборе "молотков" ArcToolbox Инструменты редактирования (Editing tools):
Сократить линию (Trim line) и Продолжить линию (Extend line).
Принцип работы инструментов на картинке ниже. Нужно указать только предельное расстояние поиска соседних вершин. Для инструмента Продолжить линию имеется возможность "подтяжки" не только к имеющимся объектам, но и к "продленным" сегментам.
Сначала написал пост, а потом увидел ссылку на данные
Запустил инструменты ради интереса. случай оказался совсем грустным. Они, конечно, помогут сделать из этого ... полигоны, может быть даже быстрее, но качество оцифровки меня мягко говоря поразило.
Вопрос: действительно надо из этого набора линий сделать районы? тут ручной работы на 5 минут. Если это была только вершина айсберга, то тогда можно заморочиться с автоматизацией.
понравилось? жми палец вверх
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Сегменты линий в полигоны
"Преобразовать линии в полигоны" в QGIS выдаёт такое (чёрные -- исходные линии):
Редактор материалов, модератор форума
- novia
- Гуру
- Сообщения: 2261
- Зарегистрирован: 29 апр 2011, 15:06
- Репутация: 489
- Откуда: Тель-Авив
Re: Сегменты линий в полигоны
Результат применения инструмента Продолжить линию
понравилось? жми палец вверх
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Сегменты линий в полигоны
То же самое в GRASS:
1) v.clean in=segments out=segments_snap tool=snap thresh=1
2) v.clean in=segments_snap out=segments_snap_clean tool=rmdangle,break,rmdupl
3) v.edit -r map=segments_snap_clean tool=delete query=length thresh=5 cats=1-99999
4) v.clean in=segments_snap_clean out=segments_snap_clean_snap tool=snap thresh=3
5) v.type in=segments_snap_clean_snap out=segments_snap_clean_snap_bounds type=line,boundary
6) v.centroids in=segments_snap_clean_snap_bounds out=segments_snap_clean_snap_areas
P.S. здесь вектор в географ.координатах, трудно с подбором порогов и расстояний. В метрах проще будет.
Команды для достижения (порог иногда подбирается вручную):1) v.clean in=segments out=segments_snap tool=snap thresh=1
2) v.clean in=segments_snap out=segments_snap_clean tool=rmdangle,break,rmdupl
3) v.edit -r map=segments_snap_clean tool=delete query=length thresh=5 cats=1-99999
4) v.clean in=segments_snap_clean out=segments_snap_clean_snap tool=snap thresh=3
5) v.type in=segments_snap_clean_snap out=segments_snap_clean_snap_bounds type=line,boundary
6) v.centroids in=segments_snap_clean_snap_bounds out=segments_snap_clean_snap_areas
P.S. здесь вектор в географ.координатах, трудно с подбором порогов и расстояний. В метрах проще будет.
Редактор материалов, модератор форума
- novia
- Гуру
- Сообщения: 2261
- Зарегистрирован: 29 апр 2011, 15:06
- Репутация: 489
- Откуда: Тель-Авив
-
- Завсегдатай
- Сообщения: 460
- Зарегистрирован: 03 фев 2005, 11:46
- Репутация: 15
- Контактная информация:
Re: Сегменты линий в полигоны
Спасибо! Voltron, да, QGIS попробовал - нужна предварительная чистка линий для корректной работы. novia, к сожалению, повлиять на качество данных нет возможности. Изменения положения не критичны в пределах размера ошибок топологии. В целом бОльшая часть данных более "правильные" - это показательный сложный вариант. amuriy, это магия! (несмотря на свою привязанность к GUI, вижу - нужно разбираться с GRASS)
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Сегменты линий в полигоны
Кстати, можно вполне запускать модули из GUI (тем более, что гуёв в грасс целых два).oleg писал(а):несмотря на свою привязанность к GUI, вижу - нужно разбираться с GRASS)
И да, никакой магии -- только топология + инструменты для работы с векторами
Редактор материалов, модератор форума
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя