Страница 1 из 2
Вычитание лесного покрова с карты высот
Добавлено: 17 фев 2015, 05:27
Podvox
Мне нужно получить карту высот без учета высоты растительности. У меня есть довольно точная маска леса и собственно сама карта высот SRTM. Объясните пожалуйста как это сделать технически. Желательно в Global mapper или QGIS, хотя я рассмотрю любые другие инструменты.
Re: Вычитание лесного покрова с карты высот
Добавлено: 17 фев 2015, 05:41
ericsson
Точная маска леса включает высоту леса или только контур?
Re: Вычитание лесного покрова с карты высот
Добавлено: 17 фев 2015, 07:13
Podvox
Только контур. Мне точная высота леса не нужна. Достаточно будет взять среднюю высоту деревьев
Re: Вычитание лесного покрова с карты высот
Добавлено: 17 фев 2015, 07:58
Алекс
Можно в Панораме. Вначале по рельефу построить горизонтали, наложить на них леса, присвоить лесам значение относительной высоты со знаком "-" и построить матрицу суммарных высот.
Re: Вычитание лесного покрова с карты высот
Добавлено: 17 фев 2015, 08:07
gimran
Технически — в растровом калькуляторе.
Re: Вычитание лесного покрова с карты высот
Добавлено: 17 фев 2015, 09:43
ericsson
В Global Mapper - загрузить слой леса, выделить все, присвоить всем полигонам значение атрибута ELEVATION такое, какой высоты вы желаете использовать лес.
Загрузить SRTM, создать полигон покрытия для него (через контекстное меню менеджера слоев). Присвоить этому полигону ELEVATION=0
Далее, отключить SRTM и создать из векторных данных растровый Grid.
В растровом калькуляторе вычесть из SRTM получившийся GRID. Следите только за совпадением единиц измерения и тем, чтобы подобрать оптимальное разрешение сгенерированного Grid-а.
Re: Вычитание лесного покрова с карты высот
Добавлено: 21 фев 2015, 06:37
Podvox
ericsson писал(а):В Global Mapper - загрузить слой леса, выделить все, присвоить всем полигонам значение атрибута ELEVATION такое, какой высоты вы желаете использовать лес.
Я совсем новичок в этом деле. Не понял как выделить все полигоны.
У меня лес в формате geotiff. Я так понял нужно выбрать "Create Area Features from Equal values in Selected layer", но я нигде не могу найти ELEVATION.
Из SRTM я создал Area features, затем создал GRID. В настройках грида я нашел только Valid elevation range (max и min).

Re: Вычитание лесного покрова с карты высот
Добавлено: 21 фев 2015, 22:47
ericsson
В таком случае, для начала, покажите, на что похожа ваша "маска леса". Достаточно фрагмента.
Re: Вычитание лесного покрова с карты высот
Добавлено: 22 фев 2015, 05:55
Podvox
ericsson писал(а):В таком случае, для начала, покажите, на что похожа ваша "маска леса". Достаточно фрагмента.

Re: Вычитание лесного покрова с карты высот
Добавлено: 22 фев 2015, 21:19
ericsson
Форум позволяет прикреплять изображения. С Dropbox ваше не показывается.
Re: Вычитание лесного покрова с карты высот
Добавлено: 22 фев 2015, 21:37
Podvox
ericsson писал(а):Форум позволяет прикреплять изображения. С Dropbox ваше не показывается.
Re: Вычитание лесного покрова с карты высот
Добавлено: 22 фев 2015, 23:23
ericsson
ОК, понятно.
Сначала вам нужно векторизовать это безобразие. Для этого в менеджере слоев в контекстном меню слоя, куда загружена эта маска, нужно сделать 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. Проще некуда, в общем.
Re: Вычитание лесного покрова с карты высот
Добавлено: 25 фев 2015, 15:58
Podvox
ericsson писал(а):
Ну а теперь можете загрузить SRTM и вычесть из него получившееся через Analysis -> Raster Calculator. Проще некуда, в общем.
Я упорно искал хоть какой-то мануал по калькулятору, но так ничего нужного и не нашел, кроме хелпа.
Поясните этот момент с вычитанием маски пожалуйста.
Re: Вычитание лесного покрова с карты высот
Добавлено: 26 фев 2015, 08:57
ericsson
А вы вообще пробовали им воспользоваться?
Вызвать калькулятор, пометить оба слоя, написать формулу типа B1-B2, добавить ее, нажать ОК и указать, кто из загруженных слоев - B1, а кто - B2 - это все столь неочевидно?
Re: Вычитание лесного покрова с карты высот
Добавлено: 28 фев 2015, 14:54
Podvox
ericsson писал(а):А вы вообще пробовали им воспользоваться?
Вызвать калькулятор, пометить оба слоя, написать формулу типа B1-B2, добавить ее, нажать ОК и указать, кто из загруженных слоев - B1, а кто - B2 - это все столь неочевидно?
Я так и делал, но "указать, кто из загруженных слоев - B1, а кто - B2" нельзя. После нажатия OK идет сразу вычисление и я получаю карту высот с одинаково заданной высотой в тех местах, где была маска. Я работаю в 16 версии программы, что примечательно в 15 версии вообще не получается открыть растровый калькулятор с картой высот. Он выбирает маску леса по умолчанию сам и вычисления проводит только с растром.