Вычитание лесного покрова с карты высот

Не знаете, где задать вопрос? Задавайте здесь.
Podvox
Новоприбывший
Сообщения: 8
Зарегистрирован: 17 фев 2015, 03:28
Репутация: 0

Вычитание лесного покрова с карты высот

Сообщение Podvox » 17 фев 2015, 05:27

Мне нужно получить карту высот без учета высоты растительности. У меня есть довольно точная маска леса и собственно сама карта высот SRTM. Объясните пожалуйста как это сделать технически. Желательно в Global mapper или QGIS, хотя я рассмотрю любые другие инструменты.

ericsson
Гуру
Сообщения: 3321
Зарегистрирован: 27 июл 2009, 19:26
Репутация: 748
Ваше звание: Вредитель полей

Re: Вычитание лесного покрова с карты высот

Сообщение ericsson » 17 фев 2015, 05:41

Точная маска леса включает высоту леса или только контур?

Podvox
Новоприбывший
Сообщения: 8
Зарегистрирован: 17 фев 2015, 03:28
Репутация: 0

Re: Вычитание лесного покрова с карты высот

Сообщение Podvox » 17 фев 2015, 07:13

Только контур. Мне точная высота леса не нужна. Достаточно будет взять среднюю высоту деревьев

Алекс
Активный участник
Сообщения: 185
Зарегистрирован: 26 июл 2010, 08:54
Репутация: 30
Откуда: Ногинск

Re: Вычитание лесного покрова с карты высот

Сообщение Алекс » 17 фев 2015, 07:58

Можно в Панораме. Вначале по рельефу построить горизонтали, наложить на них леса, присвоить лесам значение относительной высоты со знаком "-" и построить матрицу суммарных высот.

Аватара пользователя
gimran
Гуру
Сообщения: 1902
Зарегистрирован: 07 июл 2010, 15:43
Репутация: 242
Откуда: Уфа

Re: Вычитание лесного покрова с карты высот

Сообщение gimran » 17 фев 2015, 08:07

Технически — в растровом калькуляторе.

ericsson
Гуру
Сообщения: 3321
Зарегистрирован: 27 июл 2009, 19:26
Репутация: 748
Ваше звание: Вредитель полей

Re: Вычитание лесного покрова с карты высот

Сообщение ericsson » 17 фев 2015, 09:43

В Global Mapper - загрузить слой леса, выделить все, присвоить всем полигонам значение атрибута ELEVATION такое, какой высоты вы желаете использовать лес.
Загрузить SRTM, создать полигон покрытия для него (через контекстное меню менеджера слоев). Присвоить этому полигону ELEVATION=0
Далее, отключить SRTM и создать из векторных данных растровый Grid.
В растровом калькуляторе вычесть из SRTM получившийся GRID. Следите только за совпадением единиц измерения и тем, чтобы подобрать оптимальное разрешение сгенерированного Grid-а.

Podvox
Новоприбывший
Сообщения: 8
Зарегистрирован: 17 фев 2015, 03:28
Репутация: 0

Re: Вычитание лесного покрова с карты высот

Сообщение Podvox » 21 фев 2015, 06:37

ericsson писал(а):В Global Mapper - загрузить слой леса, выделить все, присвоить всем полигонам значение атрибута ELEVATION такое, какой высоты вы желаете использовать лес.
Я совсем новичок в этом деле. Не понял как выделить все полигоны.
У меня лес в формате geotiff. Я так понял нужно выбрать "Create Area Features from Equal values in Selected layer", но я нигде не могу найти ELEVATION.
Из SRTM я создал Area features, затем создал GRID. В настройках грида я нашел только Valid elevation range (max и min).
Изображение

ericsson
Гуру
Сообщения: 3321
Зарегистрирован: 27 июл 2009, 19:26
Репутация: 748
Ваше звание: Вредитель полей

Re: Вычитание лесного покрова с карты высот

Сообщение ericsson » 21 фев 2015, 22:47

В таком случае, для начала, покажите, на что похожа ваша "маска леса". Достаточно фрагмента.

Podvox
Новоприбывший
Сообщения: 8
Зарегистрирован: 17 фев 2015, 03:28
Репутация: 0

Re: Вычитание лесного покрова с карты высот

Сообщение Podvox » 22 фев 2015, 05:55

ericsson писал(а):В таком случае, для начала, покажите, на что похожа ваша "маска леса". Достаточно фрагмента.
Изображение

ericsson
Гуру
Сообщения: 3321
Зарегистрирован: 27 июл 2009, 19:26
Репутация: 748
Ваше звание: Вредитель полей

Re: Вычитание лесного покрова с карты высот

Сообщение ericsson » 22 фев 2015, 21:19

Форум позволяет прикреплять изображения. С Dropbox ваше не показывается.

Podvox
Новоприбывший
Сообщения: 8
Зарегистрирован: 17 фев 2015, 03:28
Репутация: 0

Re: Вычитание лесного покрова с карты высот

Сообщение Podvox » 22 фев 2015, 21:37

ericsson писал(а):Форум позволяет прикреплять изображения. С Dropbox ваше не показывается.
Вложения
0SaX1fSjA90.jpg
0SaX1fSjA90.jpg (335.63 КБ) 12543 просмотра

ericsson
Гуру
Сообщения: 3321
Зарегистрирован: 27 июл 2009, 19:26
Репутация: 748
Ваше звание: Вредитель полей

Re: Вычитание лесного покрова с карты высот

Сообщение ericsson » 22 фев 2015, 23:23

ОК, понятно.
Сначала вам нужно векторизовать это безобразие. Для этого в менеджере слоев в контекстном меню слоя, куда загружена эта маска, нужно сделать Create Area Features from Equal Values ..., выбрать название для нового слоя, выбрать опцию Only Create Areas for selected colors и указать среднее значение цвета, которым у вас помечены леса (если я правильно понимаю, это что-то в районе 86). Не забудьте указать величину отклонения от этого среднего цвета, поскольку области у вас не однородные.
Когда получите новый векторный слой, его нужно выделить в режиме инструмента Digitizer и сгладить контуры (а то они имеют зубчатый край). В контекстном меню этого инструмента - Move/Reshape ... -> SMOOTH.
Далее, вам нужно снова выделить все получившиеся контуры и присвоить значение высоты, для чего в контекстном меню сделать EDIT и в новом диалоге, в секции атрибутов, New... - там пропишите атрибут ELEVATION или Z, равный высоте леса, которую хотите использовать.

Теперь получившиеся данные вам нужно превратить в Grid, для этого в менеджере слоев в контекстном меню слоя векторизованной маски вызвать инструмент GRID и настроить его по вкусу. Важно не переборщить с разрешением (оно не должно быть в разы выше чем разрешение SRTM) и оставить отключенной настройку создания высот относительно уже загруженных высотных данных (я бы вообще на всякий случай не держал в рабочем пространстве никакие другие слои, кроме этой маски лесов, пока вы с ней возитесь).

Ну а теперь можете загрузить SRTM и вычесть из него получившееся через Analysis -> Raster Calculator. Проще некуда, в общем.

Podvox
Новоприбывший
Сообщения: 8
Зарегистрирован: 17 фев 2015, 03:28
Репутация: 0

Re: Вычитание лесного покрова с карты высот

Сообщение Podvox » 25 фев 2015, 15:58

ericsson писал(а): Ну а теперь можете загрузить SRTM и вычесть из него получившееся через Analysis -> Raster Calculator. Проще некуда, в общем.
Я упорно искал хоть какой-то мануал по калькулятору, но так ничего нужного и не нашел, кроме хелпа.
Поясните этот момент с вычитанием маски пожалуйста.

ericsson
Гуру
Сообщения: 3321
Зарегистрирован: 27 июл 2009, 19:26
Репутация: 748
Ваше звание: Вредитель полей

Re: Вычитание лесного покрова с карты высот

Сообщение ericsson » 26 фев 2015, 08:57

А вы вообще пробовали им воспользоваться?
Вызвать калькулятор, пометить оба слоя, написать формулу типа B1-B2, добавить ее, нажать ОК и указать, кто из загруженных слоев - B1, а кто - B2 - это все столь неочевидно?

Podvox
Новоприбывший
Сообщения: 8
Зарегистрирован: 17 фев 2015, 03:28
Репутация: 0

Re: Вычитание лесного покрова с карты высот

Сообщение Podvox » 28 фев 2015, 14:54

ericsson писал(а):А вы вообще пробовали им воспользоваться?
Вызвать калькулятор, пометить оба слоя, написать формулу типа B1-B2, добавить ее, нажать ОК и указать, кто из загруженных слоев - B1, а кто - B2 - это все столь неочевидно?
Я так и делал, но "указать, кто из загруженных слоев - B1, а кто - B2" нельзя. После нажатия OK идет сразу вычисление и я получаю карту высот с одинаково заданной высотой в тех местах, где была маска. Я работаю в 16 версии программы, что примечательно в 15 версии вообще не получается открыть растровый калькулятор с картой высот. Он выбирает маску леса по умолчанию сам и вычисления проводит только с растром.

Ответить

Вернуться в «Я новичок!»

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

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