Изолинии и полигионы

Ответить
vlalexey
Активный участник
Сообщения: 141
Зарегистрирован: 01 апр 2011, 05:07
Репутация: 9

Изолинии и полигионы

Сообщение vlalexey » 18 окт 2015, 17:46

Есть изолинии, полученные в помощью r.contour c растрового слоя (полученного через IDW, но для простоты можно считать, что это карта высот).
Требуется из этих изолиний автоматически создать полигоны, котоорые будут представлять собой области, ограниченные изолиниями.
Пробовал вариант с применением v.centroids на этом слое. Но важно, чтобы полигон содержли атрибутивное значение нижней из высот (изолинии его ограничивающей) - чтобы можно было создать тематическую карту. v.centroid эти значения не сохраняет (хотя полигоны с помощью него успешно создаются).

С помощью каких дополнительных команд можно этого добиться?

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

Re: Изолинии и полигионы

Сообщение rhot » 18 окт 2015, 19:04

vlalexey писал(а):чтобы можно было создать тематическую карту.
А что, просто растр раскрасить не подойдёт?
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________

vlalexey
Активный участник
Сообщения: 141
Зарегистрирован: 01 апр 2011, 05:07
Репутация: 9

Re: Изолинии и полигионы

Сообщение vlalexey » 18 окт 2015, 21:53

rhot писал(а):
vlalexey писал(а):чтобы можно было создать тематическую карту.
А что, просто растр раскрасить не подойдёт?
Нет, нужен именно вектор, чтобы при масштабе (при приближении) были гладкие контуры, а не пиксели.
(текущий векторные конутры, полученные с растров через r.contour, я через v.generalize обрабатываю)

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

Re: Изолинии и полигионы

Сообщение KolesovDmitry » 19 окт 2015, 10:40

vlalexey писал(а):Есть изолинии, полученные в помощью r.contour c растрового слоя.
Требуется из этих изолиний автоматически создать полигоны, котоорые будут представлять собой области, ограниченные изолиниями.
Но важно, чтобы полигон содержли атрибутивное значение нижней из высот (изолинии его ограничивающей)
Мне кажется, вы не с того конца пошли. То, что вы придумали -- очень сильно в обход, для ваших целей можно проще:
1. Переклассифицировать ваши высоты с требуемой точностью градаций.
2. Создать полигоны по переклассифицированному растру, которые сразу будут содержать нужную атрибутику.

Пример (в предположениии, что высоты лежат в растре tmp):
Создаем файл reclass_rules, использующийся для переклассификации:

Код: Выделить всё

-1000 thru -500 = -1000 
-500 thru -250	= -500
-250 thru 0 = -250
0 thru 250 = 0
250 thru 500 = 250
500 thru 1000 = 500
Производим переклассификацию и векторизацию:

Код: Выделить всё

r.reclass input=tmp output=tmp1 rules="reclass_rules"
r.to.vect -v input=tmp1 output=tmp1 type=area

vlalexey
Активный участник
Сообщения: 141
Зарегистрирован: 01 апр 2011, 05:07
Репутация: 9

Re: Изолинии и полигионы

Сообщение vlalexey » 25 окт 2015, 12:55

А в какую папку необходимо поместить этот reclass_rules файл? (пробовал и абсолютный путь - все равно GRASS пишет:
ERROR: Cannot open rules file <reclass_rules.txt>

vlalexey
Активный участник
Сообщения: 141
Зарегистрирован: 01 апр 2011, 05:07
Репутация: 9

Re: Изолинии и полигионы

Сообщение vlalexey » 25 окт 2015, 19:29

Все заработало. Спасибо за подсказку с r.reclass и r.to.vect - получилось сделать с помощью них то, что нужно.

Ответить

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

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

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