Страница 1 из 1

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

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

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

Есть вариант: полученный полигональный общий буфер (3) конвертировать в линии > построить для одной из линий еще один буфер > буфер преобразовать в линии > взять "внутреннею" линию (которая будет примерно в центре исходного буфера), но это как-то очень сложно. Хочется в будущем этот процесс автоматизировать скриптом, а так получается много интерактива. Надеюсь, есть варианты проще.

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

Добавлено: 19 авг 2011, 14:08
Voltron
Пробовали в QGIS «Вектор-Обработка геометрии-Преобразовать линии в полигоны»?

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

Добавлено: 19 авг 2011, 21:36
novia
Есть файл линий. Линии рисовались «от руки» отдельными сегментами (некорректен топологически), моделируют границы районов. Подскажите, пожалуйста, как минимумом действий преобразовать эти линии в корректный полигональный файл? 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 КБ) 12005 просмотров
Нужно указать только предельное расстояние поиска соседних вершин. Для инструмента Продолжить линию имеется возможность "подтяжки" не только к имеющимся объектам, но и к "продленным" сегментам.

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

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

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

Добавлено: 19 авг 2011, 22:50
Александр Мурый
"Преобразовать линии в полигоны" в QGIS выдаёт такое (чёрные -- исходные линии):
lines_to_polygons_QGIS.png
lines_to_polygons_QGIS.png (29.67 КБ) 11995 просмотров

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

Добавлено: 19 авг 2011, 23:21
novia
Результат применения инструмента Продолжить линию
1.JPG
АркГИС выдает такое
1.JPG (24.25 КБ) 11990 просмотров

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

Добавлено: 19 авг 2011, 23:45
Александр Мурый
То же самое в GRASS:
segments_to_poly_GRASS.png
segments_to_poly_GRASS.png (42.91 КБ) 11989 просмотров
Команды для достижения (порог иногда подбирается вручную):
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. здесь вектор в географ.координатах, трудно с подбором порогов и расстояний. В метрах проще будет.

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

Добавлено: 19 авг 2011, 23:55
novia
Трава решает!!

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

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

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

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

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