проредить точки в полигонах
- syroezhka
- Завсегдатай
- Сообщения: 290
- Зарегистрирован: 21 апр 2008, 21:22
- Репутация: 5
- Откуда: 50°26'N 30°31'E
- Контактная информация:
проредить точки в полигонах
Имеем GRASS всех возможных версий установленный на win7 и задачу перевести результат классификации в вектор.
Перевод я сделала с помощью r.to.vect с флагом -s В принципе, меня все устраивает, кроме размера результирующего вектора. Он получается достаточно тяжелым, я так понимаю, что из-за излишнего количества точек вдоль сегмента полигона: Как можно проредить точки с сохранением топологии?
Мне логичным показалось через v.clean c опцией -prune, но какой порог я бы не выставляла, данные не изменяются и количество точек не уменьшается.
Может есть вариант, работающией наподобие аркгисовского simplify polygons (point remove)?
Или стоит копать в сторону v.generalize? Насколько корректно он работает с топологией?
Перевод я сделала с помощью r.to.vect с флагом -s В принципе, меня все устраивает, кроме размера результирующего вектора. Он получается достаточно тяжелым, я так понимаю, что из-за излишнего количества точек вдоль сегмента полигона: Как можно проредить точки с сохранением топологии?
Мне логичным показалось через v.clean c опцией -prune, но какой порог я бы не выставляла, данные не изменяются и количество точек не уменьшается.
Может есть вариант, работающией наподобие аркгисовского simplify polygons (point remove)?
Или стоит копать в сторону v.generalize? Насколько корректно он работает с топологией?
- rhot
- Гуру
- Сообщения: 1727
- Зарегистрирован: 25 янв 2011, 17:50
- Репутация: 194
- Ваше звание: доктор
- Откуда: Архангельск
Re: проредить точки в полигонах
v.generalize - самый лучший вариант. Надо пробовать различные алгоритмы и параметры, а потом смотреть количество полигонов до и после операции упрощения. Конечно, если задашь неестественный порог, некоторые полигоны могут слеть, всё это делается опытным путём.
GRASS гораздо гибче в этом смысле, поэтому искомый результат получается не сразу. Не помню, чтоб я когда-либо удовлетворялся результатом генерализации с первого раза
GRASS гораздо гибче в этом смысле, поэтому искомый результат получается не сразу. Не помню, чтоб я когда-либо удовлетворялся результатом генерализации с первого раза
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: проредить точки в полигонах
Какая проекция у области/набора, какое примерно расстояние между ближайшими точками на границе (можно измерить в GUI или с помощью <d.measure>)? Порог в <v.clean> работает в единицах области (и лучше, если это метры, так обычно легче получается).syroezhka писал(а): Мне логичным показалось через v.clean c опцией -prune, но какой порог я бы не выставляла, данные не изменяются и количество точек не уменьшается.
Однозначно стоит. С некоторых пор <v.generalize> (если я верно понимаю) корректно работает с топологией, главное -- подобрать адекватный способ генерализации. По моим наблюдениям, в текущей стабильной версии 6.4.2 с полигонами нормально работают Douglas-Peucker, Douglas-Peucker Algorithm with reduction (полезен, когда надо ровно упростить линию/границу с неравномерной "плавностью"), Lang Simplification (хорошо держит форму полигона). А вот Reumann-Witkam, скорее, для линий, он сильно корёжит полигоны.syroezhka писал(а): Или стоит копать в сторону v.generalize? Насколько корректно он работает с топологией?
Редактор материалов, модератор форума
- syroezhka
- Завсегдатай
- Сообщения: 290
- Зарегистрирован: 21 апр 2008, 21:22
- Репутация: 5
- Откуда: 50°26'N 30°31'E
- Контактная информация:
Re: проредить точки в полигонах
rhot, amuriy, спасибо!
Попробовала сразу Douglas и, ура , получила упрощенный слой с ненарушенной топологией. Переборщила с допуском, конечно же, но его действительно нужно подбирать тщательно.
Попробовала сразу Douglas и, ура , получила упрощенный слой с ненарушенной топологией. Переборщила с допуском, конечно же, но его действительно нужно подбирать тщательно.
Я в utm работаю, расстояние между точками где-то в районе 1-5 метров. Порог задавался, начиная от 1 и заканчивая 100000. Результат полностью аналогичен входящему вектору.amuriy писал(а):Порог в <v.clean> работает в единицах области (и лучше, если это метры, так обычно легче получается).
-
- Гуру
- Сообщения: 810
- Зарегистрирован: 22 авг 2007, 14:58
- Репутация: 123
- Откуда: Казань
Re: проредить точки в полигонах
По генерализации давно лежит черновик, может, соберемся с духом и доведем до конца? Есть ли желающие помочь (надо перевести в вики, добавить инструментов генерализации)?
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: проредить точки в полигонах
*KolesovDmitryKolesovDmitry писал(а):По генерализации давно лежит черновик, может, соберемся с духом и доведем до конца? Есть ли желающие помочь (надо перевести в вики, добавить инструментов генерализации)?
написал в личку.
Редактор материалов, модератор форума
- syroezhka
- Завсегдатай
- Сообщения: 290
- Зарегистрирован: 21 апр 2008, 21:22
- Репутация: 5
- Откуда: 50°26'N 30°31'E
- Контактная информация:
Re: проредить точки в полигонах
KolesovDmitry,
Я как раз разбираюсь. Могу посохранять различные различные варианты результатов при различных настройках методов. Но я под win работаю.
Мануал к v.generaliz могу перевести (там где описание методов), но это будет совсем не быстро.
Я как раз разбираюсь. Могу посохранять различные различные варианты результатов при различных настройках методов. Но я под win работаю.
Мануал к v.generaliz могу перевести (там где описание методов), но это будет совсем не быстро.
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: проредить точки в полигонах
Было бы здорово. Не важно какая у кого опер.система, GRASS должна генерализовать хорошо под любойsyroezhka писал(а): Могу посохранять различные различные варианты результатов при различных настройках методов. Но я под win работаю.
Тоже хорошее дело. Может, так и начнём задуманный давно перевод всех грассовских мануалов..syroezhka писал(а): Мануал к v.generaliz могу перевести (там где описание методов), но это будет совсем не быстро.
P.S. С позволения авторов (Denis Rykov, KolesovDmitry) я организую вики-страничку с начатой статьёй.
Редактор материалов, модератор форума
- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9128
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 747
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
Re: проредить точки в полигонах
Мне даже не верится, что вы это когда-нибудь допишете.amuriy писал(а):P.S. С позволения авторов (Denis Rykov, KolesovDmitry) я организую вики-страничку с начатой статьёй.
пристегивайтесь, турбулентность прямо по курсу
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: проредить точки в полигонах
Мне тоже, но попытаться всё-таки стоит Вот вики-страничка.Максим Дубинин писал(а): Мне даже не верится, что вы это когда-нибудь допишете.
Редактор материалов, модератор форума
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя