проредить точки в полигонах

Ответить
Аватара пользователя
syroezhka
Завсегдатай
Сообщения: 290
Зарегистрирован: 21 апр 2008, 21:22
Репутация: 5
Откуда: 50°26'N 30°31'E
Контактная информация:

проредить точки в полигонах

Сообщение syroezhka » 02 июл 2012, 00:46

Имеем GRASS всех возможных версий установленный на win7 и задачу перевести результат классификации в вектор.
Перевод я сделала с помощью r.to.vect с флагом -s
1.png
1.png (6.82 КБ) 8537 просмотров
В принципе, меня все устраивает, кроме размера результирующего вектора. Он получается достаточно тяжелым, я так понимаю, что из-за излишнего количества точек вдоль сегмента полигона:
2.png
2.png (10.11 КБ) 8536 просмотров
Как можно проредить точки с сохранением топологии?
Мне логичным показалось через v.clean c опцией -prune, но какой порог я бы не выставляла, данные не изменяются и количество точек не уменьшается.
Может есть вариант, работающией наподобие аркгисовского simplify polygons (point remove)?
Или стоит копать в сторону v.generalize? Насколько корректно он работает с топологией?

Аватара пользователя
rhot
Гуру
Сообщения: 1727
Зарегистрирован: 25 янв 2011, 17:50
Репутация: 194
Ваше звание: доктор
Откуда: Архангельск

Re: проредить точки в полигонах

Сообщение rhot » 02 июл 2012, 05:30

v.generalize - самый лучший вариант. Надо пробовать различные алгоритмы и параметры, а потом смотреть количество полигонов до и после операции упрощения. Конечно, если задашь неестественный порог, некоторые полигоны могут слеть, всё это делается опытным путём.
GRASS гораздо гибче в этом смысле, поэтому искомый результат получается не сразу. Не помню, чтоб я когда-либо удовлетворялся результатом генерализации с первого раза :)
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________

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

Re: проредить точки в полигонах

Сообщение Александр Мурый » 02 июл 2012, 08:52

syroezhka писал(а): Мне логичным показалось через v.clean c опцией -prune, но какой порог я бы не выставляла, данные не изменяются и количество точек не уменьшается.
Какая проекция у области/набора, какое примерно расстояние между ближайшими точками на границе (можно измерить в GUI или с помощью <d.measure>)? Порог в <v.clean> работает в единицах области (и лучше, если это метры, так обычно легче получается).
syroezhka писал(а): Или стоит копать в сторону v.generalize? Насколько корректно он работает с топологией?
Однозначно стоит. С некоторых пор <v.generalize> (если я верно понимаю) корректно работает с топологией, главное -- подобрать адекватный способ генерализации. По моим наблюдениям, в текущей стабильной версии 6.4.2 с полигонами нормально работают Douglas-Peucker, Douglas-Peucker Algorithm with reduction (полезен, когда надо ровно упростить линию/границу с неравномерной "плавностью"), Lang Simplification (хорошо держит форму полигона). А вот Reumann-Witkam, скорее, для линий, он сильно корёжит полигоны.
Редактор материалов, модератор форума

Аватара пользователя
syroezhka
Завсегдатай
Сообщения: 290
Зарегистрирован: 21 апр 2008, 21:22
Репутация: 5
Откуда: 50°26'N 30°31'E
Контактная информация:

Re: проредить точки в полигонах

Сообщение syroezhka » 02 июл 2012, 17:26

rhot, amuriy, спасибо!
Попробовала сразу Douglas и, ура :D, получила упрощенный слой с ненарушенной топологией. Переборщила с допуском, конечно же, но его действительно нужно подбирать тщательно.
amuriy писал(а):Порог в <v.clean> работает в единицах области (и лучше, если это метры, так обычно легче получается).
Я в utm работаю, расстояние между точками где-то в районе 1-5 метров. Порог задавался, начиная от 1 и заканчивая 100000. Результат полностью аналогичен входящему вектору.

KolesovDmitry
Гуру
Сообщения: 810
Зарегистрирован: 22 авг 2007, 14:58
Репутация: 123
Откуда: Казань

Re: проредить точки в полигонах

Сообщение KolesovDmitry » 02 июл 2012, 18:32

По генерализации давно лежит черновик, может, соберемся с духом и доведем до конца? Есть ли желающие помочь (надо перевести в вики, добавить инструментов генерализации)?

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

Re: проредить точки в полигонах

Сообщение Александр Мурый » 02 июл 2012, 18:46

KolesovDmitry писал(а):По генерализации давно лежит черновик, может, соберемся с духом и доведем до конца? Есть ли желающие помочь (надо перевести в вики, добавить инструментов генерализации)?
*KolesovDmitry
написал в личку.
Редактор материалов, модератор форума

Аватара пользователя
syroezhka
Завсегдатай
Сообщения: 290
Зарегистрирован: 21 апр 2008, 21:22
Репутация: 5
Откуда: 50°26'N 30°31'E
Контактная информация:

Re: проредить точки в полигонах

Сообщение syroezhka » 02 июл 2012, 19:34

KolesovDmitry,
Я как раз разбираюсь. Могу посохранять различные различные варианты результатов при различных настройках методов. Но я под win работаю.
Мануал к v.generaliz могу перевести (там где описание методов), но это будет совсем не быстро.

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

Re: проредить точки в полигонах

Сообщение Александр Мурый » 02 июл 2012, 19:54

syroezhka писал(а): Могу посохранять различные различные варианты результатов при различных настройках методов. Но я под win работаю.
Было бы здорово. Не важно какая у кого опер.система, GRASS должна генерализовать хорошо под любой :)
syroezhka писал(а): Мануал к v.generaliz могу перевести (там где описание методов), но это будет совсем не быстро.
Тоже хорошее дело. Может, так и начнём задуманный давно перевод всех грассовских мануалов..

P.S. С позволения авторов (Denis Rykov, KolesovDmitry) я организую вики-страничку с начатой статьёй.
Редактор материалов, модератор форума

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9128
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 747
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: проредить точки в полигонах

Сообщение Максим Дубинин » 02 июл 2012, 21:15

amuriy писал(а):P.S. С позволения авторов (Denis Rykov, KolesovDmitry) я организую вики-страничку с начатой статьёй.
Мне даже не верится, что вы это когда-нибудь допишете.
пристегивайтесь, турбулентность прямо по курсу

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

Re: проредить точки в полигонах

Сообщение Александр Мурый » 02 июл 2012, 21:37

Максим Дубинин писал(а): Мне даже не верится, что вы это когда-нибудь допишете.
Мне тоже, но попытаться всё-таки стоит :) Вот вики-страничка.
Редактор материалов, модератор форума

Ответить

Вернуться в «GRASS»

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

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