Сегменты линий в полигоны

Вопросы общего характера по ГИС и дистанционному зондированию, не связанные с конкретным ПО.
Ответить
oleg
Завсегдатай
Сообщения: 460
Зарегистрирован: 03 фев 2005, 11:46
Репутация: 15
Контактная информация:

Сегменты линий в полигоны

Сообщение oleg » 19 авг 2011, 11:18

Есть файл линий. Линии рисовались «от руки» отдельными сегментами (некорректен топологически), моделируют границы районов. Подскажите, пожалуйста, как минимумом действий преобразовать эти линии в корректный полигональный файл? ArcGIS10, OpenGIS. Спасибо.

Сделал так. Буффер. Объединение (Dissolve). Получил "толстую" сетку.
Как-то можно её преобразовать в осевые линии?

Есть вариант: полученный полигональный общий буфер (3) конвертировать в линии > построить для одной из линий еще один буфер > буфер преобразовать в линии > взять "внутреннею" линию (которая будет примерно в центре исходного буфера), но это как-то очень сложно. Хочется в будущем этот процесс автоматизировать скриптом, а так получается много интерактива. Надеюсь, есть варианты проще.
Вложения
segments.zip
(2.28 КБ) 418 скачиваний
segments2poly.jpg
segments2poly.jpg (56.42 КБ) 11548 просмотров

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: Сегменты линий в полигоны

Сообщение Voltron » 19 авг 2011, 14:08

Пробовали в QGIS «Вектор-Обработка геометрии-Преобразовать линии в полигоны»?

Аватара пользователя
novia
Гуру
Сообщения: 2261
Зарегистрирован: 29 апр 2011, 15:06
Репутация: 489
Откуда: Тель-Авив

Re: Сегменты линий в полигоны

Сообщение novia » 19 авг 2011, 21:36

Есть файл линий. Линии рисовались «от руки» отдельными сегментами (некорректен топологически), моделируют границы районов. Подскажите, пожалуйста, как минимумом действий преобразовать эти линии в корректный полигональный файл? ArcGIS10, OpenGIS. Спасибо.
Судя по представленному алгоритму ручной оцифровки с буферами :shock: точность границ не основной приоритет, а значит можно автоматизировать.

1. Самое главное, когда будете оцифровывать в следующий раз - вспомнить о существовании безумно полезных команд/инструментов для оцифровки/редактирования геометрии без "просветов", "недолетов", паразитных полигонов и дырок, а именно:
- замыкание - оно же snapping
- автозавершение полигонов - auto-complete polygon
- топология карты
список можно продолжать.

ну а теперь, предположим, что у вас лицензия 10-ки не ArcView (с ней только прямые руки помогут, придется дотягивать самому) и будем разбираться.

Есть два инструмента геообработки в наборе "молотков" ArcToolbox Инструменты редактирования (Editing tools):
Сократить линию (Trim line) и Продолжить линию (Extend line).
Принцип работы инструментов на картинке ниже.
trim_extend.png
Trim Extend GP Tools
trim_extend.png (26.56 КБ) 11520 просмотров
Нужно указать только предельное расстояние поиска соседних вершин. Для инструмента Продолжить линию имеется возможность "подтяжки" не только к имеющимся объектам, но и к "продленным" сегментам.

Сначала написал пост, а потом увидел ссылку на данные :shock:
Запустил инструменты ради интереса. случай оказался совсем грустным. Они, конечно, помогут сделать из этого ... полигоны, может быть даже быстрее, но качество оцифровки меня мягко говоря поразило.

:?: Вопрос: действительно надо из этого набора линий сделать районы? тут ручной работы на 5 минут. Если это была только вершина айсберга, то тогда можно заморочиться с автоматизацией.
понравилось? жми палец вверх :!:

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

Re: Сегменты линий в полигоны

Сообщение Александр Мурый » 19 авг 2011, 22:50

"Преобразовать линии в полигоны" в QGIS выдаёт такое (чёрные -- исходные линии):
lines_to_polygons_QGIS.png
lines_to_polygons_QGIS.png (29.67 КБ) 11510 просмотров
Редактор материалов, модератор форума

Аватара пользователя
novia
Гуру
Сообщения: 2261
Зарегистрирован: 29 апр 2011, 15:06
Репутация: 489
Откуда: Тель-Авив

Re: Сегменты линий в полигоны

Сообщение novia » 19 авг 2011, 23:21

Результат применения инструмента Продолжить линию
1.JPG
АркГИС выдает такое
1.JPG (24.25 КБ) 11505 просмотров
понравилось? жми палец вверх :!:

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

Re: Сегменты линий в полигоны

Сообщение Александр Мурый » 19 авг 2011, 23:45

То же самое в GRASS:
segments_to_poly_GRASS.png
segments_to_poly_GRASS.png (42.91 КБ) 11504 просмотра
Команды для достижения (порог иногда подбирается вручную):
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
Откуда: Тель-Авив

Re: Сегменты линий в полигоны

Сообщение novia » 19 авг 2011, 23:55

Трава решает!!
понравилось? жми палец вверх :!:

oleg
Завсегдатай
Сообщения: 460
Зарегистрирован: 03 фев 2005, 11:46
Репутация: 15
Контактная информация:

Re: Сегменты линий в полигоны

Сообщение oleg » 20 авг 2011, 23:03

Спасибо! Voltron, да, QGIS попробовал - нужна предварительная чистка линий для корректной работы. novia, к сожалению, повлиять на качество данных нет возможности. Изменения положения не критичны в пределах размера ошибок топологии. В целом бОльшая часть данных более "правильные" - это показательный сложный вариант. amuriy, это магия! (несмотря на свою привязанность к GUI, вижу - нужно разбираться с GRASS)

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

Re: Сегменты линий в полигоны

Сообщение Александр Мурый » 20 авг 2011, 23:16

oleg писал(а):несмотря на свою привязанность к GUI, вижу - нужно разбираться с GRASS)
Кстати, можно вполне запускать модули из GUI (тем более, что гуёв в грасс целых два).

И да, никакой магии -- только топология + инструменты для работы с векторами 8)
Редактор материалов, модератор форума

Ответить

Вернуться в «Общие вопросы»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя