Вычитание лесного покрова с карты высот
-
- Новоприбывший
- Сообщения: 8
- Зарегистрирован: 17 фев 2015, 03:28
- Репутация: 0
Вычитание лесного покрова с карты высот
Мне нужно получить карту высот без учета высоты растительности. У меня есть довольно точная маска леса и собственно сама карта высот SRTM. Объясните пожалуйста как это сделать технически. Желательно в Global mapper или QGIS, хотя я рассмотрю любые другие инструменты.
-
- Гуру
- Сообщения: 3321
- Зарегистрирован: 27 июл 2009, 19:26
- Репутация: 748
- Ваше звание: Вредитель полей
Re: Вычитание лесного покрова с карты высот
Точная маска леса включает высоту леса или только контур?
-
- Новоприбывший
- Сообщения: 8
- Зарегистрирован: 17 фев 2015, 03:28
- Репутация: 0
Re: Вычитание лесного покрова с карты высот
Только контур. Мне точная высота леса не нужна. Достаточно будет взять среднюю высоту деревьев
-
- Активный участник
- Сообщения: 185
- Зарегистрирован: 26 июл 2010, 08:54
- Репутация: 30
- Откуда: Ногинск
Re: Вычитание лесного покрова с карты высот
Можно в Панораме. Вначале по рельефу построить горизонтали, наложить на них леса, присвоить лесам значение относительной высоты со знаком "-" и построить матрицу суммарных высот.
- gimran
- Гуру
- Сообщения: 1902
- Зарегистрирован: 07 июл 2010, 15:43
- Репутация: 242
- Откуда: Уфа
Re: Вычитание лесного покрова с карты высот
Технически — в растровом калькуляторе.
-
- Гуру
- Сообщения: 3321
- Зарегистрирован: 27 июл 2009, 19:26
- Репутация: 748
- Ваше звание: Вредитель полей
Re: Вычитание лесного покрова с карты высот
В Global Mapper - загрузить слой леса, выделить все, присвоить всем полигонам значение атрибута ELEVATION такое, какой высоты вы желаете использовать лес.
Загрузить SRTM, создать полигон покрытия для него (через контекстное меню менеджера слоев). Присвоить этому полигону ELEVATION=0
Далее, отключить SRTM и создать из векторных данных растровый Grid.
В растровом калькуляторе вычесть из SRTM получившийся GRID. Следите только за совпадением единиц измерения и тем, чтобы подобрать оптимальное разрешение сгенерированного Grid-а.
Загрузить SRTM, создать полигон покрытия для него (через контекстное меню менеджера слоев). Присвоить этому полигону ELEVATION=0
Далее, отключить SRTM и создать из векторных данных растровый Grid.
В растровом калькуляторе вычесть из SRTM получившийся GRID. Следите только за совпадением единиц измерения и тем, чтобы подобрать оптимальное разрешение сгенерированного Grid-а.
-
- Новоприбывший
- Сообщения: 8
- Зарегистрирован: 17 фев 2015, 03:28
- Репутация: 0
Re: Вычитание лесного покрова с карты высот
Я совсем новичок в этом деле. Не понял как выделить все полигоны.ericsson писал(а):В Global Mapper - загрузить слой леса, выделить все, присвоить всем полигонам значение атрибута ELEVATION такое, какой высоты вы желаете использовать лес.
У меня лес в формате geotiff. Я так понял нужно выбрать "Create Area Features from Equal values in Selected layer", но я нигде не могу найти ELEVATION.
Из SRTM я создал Area features, затем создал GRID. В настройках грида я нашел только Valid elevation range (max и min).

-
- Гуру
- Сообщения: 3321
- Зарегистрирован: 27 июл 2009, 19:26
- Репутация: 748
- Ваше звание: Вредитель полей
Re: Вычитание лесного покрова с карты высот
В таком случае, для начала, покажите, на что похожа ваша "маска леса". Достаточно фрагмента.
-
- Новоприбывший
- Сообщения: 8
- Зарегистрирован: 17 фев 2015, 03:28
- Репутация: 0
Re: Вычитание лесного покрова с карты высот
ericsson писал(а):В таком случае, для начала, покажите, на что похожа ваша "маска леса". Достаточно фрагмента.

-
- Гуру
- Сообщения: 3321
- Зарегистрирован: 27 июл 2009, 19:26
- Репутация: 748
- Ваше звание: Вредитель полей
Re: Вычитание лесного покрова с карты высот
Форум позволяет прикреплять изображения. С Dropbox ваше не показывается.
-
- Новоприбывший
- Сообщения: 8
- Зарегистрирован: 17 фев 2015, 03:28
- Репутация: 0
Re: Вычитание лесного покрова с карты высот
ericsson писал(а):Форум позволяет прикреплять изображения. С Dropbox ваше не показывается.
- Вложения
-
- 0SaX1fSjA90.jpg (335.63 КБ) 12551 просмотр
-
- Гуру
- Сообщения: 3321
- Зарегистрирован: 27 июл 2009, 19:26
- Репутация: 748
- Ваше звание: Вредитель полей
Re: Вычитание лесного покрова с карты высот
ОК, понятно.
Сначала вам нужно векторизовать это безобразие. Для этого в менеджере слоев в контекстном меню слоя, куда загружена эта маска, нужно сделать 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. Проще некуда, в общем.
Сначала вам нужно векторизовать это безобразие. Для этого в менеджере слоев в контекстном меню слоя, куда загружена эта маска, нужно сделать 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. Проще некуда, в общем.
-
- Новоприбывший
- Сообщения: 8
- Зарегистрирован: 17 фев 2015, 03:28
- Репутация: 0
Re: Вычитание лесного покрова с карты высот
Я упорно искал хоть какой-то мануал по калькулятору, но так ничего нужного и не нашел, кроме хелпа.ericsson писал(а): Ну а теперь можете загрузить SRTM и вычесть из него получившееся через Analysis -> Raster Calculator. Проще некуда, в общем.
Поясните этот момент с вычитанием маски пожалуйста.
-
- Гуру
- Сообщения: 3321
- Зарегистрирован: 27 июл 2009, 19:26
- Репутация: 748
- Ваше звание: Вредитель полей
Re: Вычитание лесного покрова с карты высот
А вы вообще пробовали им воспользоваться?
Вызвать калькулятор, пометить оба слоя, написать формулу типа B1-B2, добавить ее, нажать ОК и указать, кто из загруженных слоев - B1, а кто - B2 - это все столь неочевидно?
Вызвать калькулятор, пометить оба слоя, написать формулу типа B1-B2, добавить ее, нажать ОК и указать, кто из загруженных слоев - B1, а кто - B2 - это все столь неочевидно?
-
- Новоприбывший
- Сообщения: 8
- Зарегистрирован: 17 фев 2015, 03:28
- Репутация: 0
Re: Вычитание лесного покрова с карты высот
Я так и делал, но "указать, кто из загруженных слоев - B1, а кто - B2" нельзя. После нажатия OK идет сразу вычисление и я получаю карту высот с одинаково заданной высотой в тех местах, где была маска. Я работаю в 16 версии программы, что примечательно в 15 версии вообще не получается открыть растровый калькулятор с картой высот. Он выбирает маску леса по умолчанию сам и вычисления проводит только с растром.ericsson писал(а):А вы вообще пробовали им воспользоваться?
Вызвать калькулятор, пометить оба слоя, написать формулу типа B1-B2, добавить ее, нажать ОК и указать, кто из загруженных слоев - B1, а кто - B2 - это все столь неочевидно?
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя