Статьи

Превращаем горизонтали в цифровую модель рельефа с помощью QGIS и GRASS

Картография Другое ГИС Туториалы
Время прочтения: 5 минут

Введение

В этом туториале мы научимся с вами превращать горизонтали (контуры) в полноценную цифровую модель рельефа, которую вы сможете использовать для иных вариантов визуализации рельефа, например, с помощью Blender, у нас на сайте как раз есть материал про это.

Исходные данные

Все просто, слой с горизонталями, у которого есть в таблице атрибутов значение высоты.

Подготовка

Для того, чтобы превратить наши линии рельефа в непрерывную поверхность нам потребуется помощью GRASS. GRASS - это тоже открытая геоинформационная система, в сравнении с QGIS, она не настолько хорошо приспособленная для пользователей, но имеет мощные модули и алгоритмы обработки в своем составе. GRASS имеет весьма специфичный интерфейс, но так как код для проектов с открытым исходным кодом пишут открытые люди, QGIS дружит с GRASS. Долгое время при установке QGIS создавался отдельный ярлык QGIS with GRASS, так что если у вас есть такой ярлык, то лучше нажать на него.
Сейчас, осенью 2023 года, можно просто открыть QGIS и установить модуль с названием GRASS, по состоянию на осень 2023 года он называется “GRASS 7”, возможно в будущем, а для тебя, читатель, в настоящем этот модуль может называться иначе, например, GRASS 14 или GRASS 2084.
Вот так выглядит описание модуля, максимально лаконичное

Процесс

Первым делом создаем новый набор (в английской версии new mapset), куда будут вкладываться все файлы, которые мы будем делать во время работы.
Программа предложит вам выбрать подходящую директорию, куда будет складывать файлы в форматах и структуре понятных GRASS
Создаем новый район, лучше назвать понятнее, так как потом их можно будет использовать для других проектов
Устанавливаем картографическую проекцию для района, именно в этой проекции будут производиться все операции в вашем проекте GRASS, причем неважно как вы его открыли, через GRASS или через QGIS
Устанавливаем границы региона, это те границы, в которых будут проводиться вычисления, в нашем случае, это рамка, в границах которой будет создаваться наша цифровая модель рельефа. На начальном этапе можно выбрать “Установить границы QGIS”, что означает, что границы установятся по территории, которая у вас открыта в рабочем пространстве программы. Тут не надо тратить время и вымерять экран, это удобнее подогнать точнее на одном из последующих этапов
После этого выбираем название нашего набора данных и нажимаем завершить, на этом заканчивается настройка проекта GRASS и уже можно приступать к созданию нашей цифровой модели рельефа!
Если все сделано успешно, то в вашем проекте появится красная рамка, это и есть наш регион, который мы устанавливали несколько шагов назад
Теперь настало время немного подогнать границу нашего региона под наши данные, а заодно и запустить интерфейс GRASS, открывающей доступ ко всей мощи этой программы.
Проходим по пути на скрине и справа у нас появится окно “Инструменты GRASS”
Теперь самое время сделать нашу рамку, более подходящей под размер региона, для этого в окне инструментов GRASS выбираем вкладку регион
Нажимаем на кнопку “Выберете охват карты в окне карты”, после чего рисуем прямоугольник рамки нужного нам размера и нажимаем применить, и границы рамки изменятся
Теперь вернемся на вкладку модули. Нам нужно загрузить в проект GRASS наш слой горизонталей, так как проект QGIS не является для нашего проекта GRASS чем-то значимым.
В поиске вводим v.in.ogr.qgis. С помощью этого модуля мы загрузим наш слой, открытый в проекте QGIS в GRASS.
Ничего хитрого, выбираем слой для загрузки и даем ему название, этого достаточно. Чтобы слой, сохраненный в проекте GRASS появился в проекте QGIS необходимо дополнительно нажать кнопку “Открыть вывод” в правом нижнем углу
Следующим этапом нужно подготовить наш векторный слой к трансформации в полноценную цифровую модель рельефа. Для этого возвращаемся во вкладку “Модули” и в поиске ищем модуль v.to.rast.attr.
Настройки также просты, выбираем исходный слой, выбираем колонку с высотами в поле “Attribute field” и даем название выходному слою. Не забываем посмотреть на то, что получилось, дополнительно нажав кнопку “Открыть вывод” в правом нижнем углу
На данном этапе должна получиться похожая картинка
Настало время полной метаморфозы наших уже полугоризонталей полурастра в цифровую модель рельефа, в поиске во вкладке модули ищем r.surf.contour.
Настроек также немного, выбираем исходный слой и как его назвать после проведения над ним манипуляций
В итоге у вас должна получиться вот такая цифровая модель рельефа, как на скрине ниже, аккурат по границе нашего региона. Полученный слой лучше сохранить в geotiff формат, чтобы его можно было легко найти и открыть в QGIS.
Удачи в применении туториала! Своими успехами, вопросами и комментариями можно делиться в чате канала Картетики :)
Материал подготовил Александр Зуев