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

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

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

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

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

Добавлено: 18 окт 2015, 19:04
rhot
vlalexey писал(а):чтобы можно было создать тематическую карту.
А что, просто растр раскрасить не подойдёт?

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

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

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

Добавлено: 19 окт 2015, 10:40
KolesovDmitry
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

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

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

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

Добавлено: 25 окт 2015, 19:29
vlalexey
Все заработало. Спасибо за подсказку с r.reclass и r.to.vect - получилось сделать с помощью них то, что нужно.