Статьи

Трехмерные карты в QGIS

ГИС Туториалы
Время прочтения: 4 минуты
Уровень знаний: для начинающих пользователей QGIS, которые имеют небольшой опыт в использовании программы
Версия QGIS: 3.40.1
Трехмерные карты довольно давно и прочно вошли в нашу жизнь. И это не только про моду или продажу чего-либо через красивые рендеры. Возможность просто менять угол обзора в трехмерном пространстве позволяет лучше понять, как соотносятся объекты на территории между собой, где лучшие видовые точки, да и просто позволяет лучше представить, что будет чувствовать человек, находясь на территории.

Для создания 3D-визуализаций необязательно осваивать профессиональное программное обеспечение работы с трехмерной графикой, можно сделать это в QGIS. Да, так красиво, как в Blender или Cinema 4D, скорее всего, не получится, но быстро получить неплохой вариант вполне возможно.
Трехмерная карта Эвереста и окрестностей (Источник - https://3d-mapper.com/mount-everest-3d-map/)

Подготовка данных

Для того, чтобы сделать трехмерную карту местности, нам нужны цифровая модель рельефа и спутниковый снимок.
Для начала открываем QGIS и находим территорию, для которой будем делать карту, в моем случае это окрестности озера Лама восточнее Норильска, являющееся частью Плато Путорана.
Сначала подготовим спутниковый снимок. С помощью плагина QuickMapServices добавляем в проект базовую карту, которая вам понравится больше всего, в моем случае это Google Satellite. Но бывают территории, где снимки от Яндекс или Bing выглядят лучше.
После установки плагина QuickMapServices его можно найти на верхней панеле под пунктом “Интернет”
Затем нам нужно сохранить фрагмент территории в формате TIFF с файлом привязки. Сделать это можно разными способами, в этот раз я предлагаю выбрать в окне QGIS нужную область и сохранить в виде изображения через обычный экспорт.
Сохранить файл привязки можно и стандартно через макет, главное не забыть поставить галочку напротив опции, создающей world файл, это как раз “файл” геопривязки. Файл в кавычках, потому что в папке, куда вы сохраните изображение, будет только файл в формате TIFF, геопривязка уже будет встроена в него.
Разрешение файла выбирайте 300 dpi - это стандарт цифровой графики. Может быть так, что на некоторых более высоких значений dpi картинка может получиться лучше, но может и сохраняться с тайлами разных по времени снимков и это будет выглядеть странно, вплоть до того, что на части снимка будет лето, а на другой части - зима. Если столкнулись с таким, то можете попробовать поставить другое значение, больше или меньше того, что вы поставили, но старайтесь не падать ниже 100 dpi.
Цифровую модель рельефа я скачиваю с помощью плагина OpenTopography DEM Downloader. Чтобы им пользоваться, нужно бесплатно зарегистрироваться на сайте, где вам дадут API ключ, после чего вы через QGIS сможете удобно качать ЦМР из разных источников, например Alos, в отличие от SRTM в нем есть данные севернее 60 градусов северной широты.
Координаты экстента можно взять из слоя базовой карты
В итоге у нас должно получиться 2 слоя: черно-белый слой ЦМР со значениями высот и цветной со спутниковым снимком.

Строим трехмерную карту

Для того, чтобы создать трехмерную карту из имеющихся слоев, нужно создать 3D вид. Чтобы это сделать, на верхней панели QGIS ищем вкладку “Вид”, затем 3D карты, “Новый 3D вид карты”.
Пока вид плоский, но перед тем, как дать ему объема, немного поговорим об управлении. Чтобы приблизить или удалить изображение - крутим колесико мышки, как и везде. Чтобы менять угол наклона карты - нужно нажать на колесико мышки и тянуть мышку либо к себе, либо от себя.
Чтобы добавить объема карте, заходим в настройках 3D во вкладку “Рельеф” и меняем “Тип” на “ЦМР (растровый слой)”, а в меню “Высота” выбираем наш снимок с ЦМР.
Если сразу нажмем на “ОК”, то у карты не сильно прибавится объема, поэтому вернемся в настройки.
Для получения адекватного результата нам нужно выставить 3 настройки: “Вертикальный масштаб”, “Разрешение тайла” и “Высота подола”.
Вертикальный масштаб как раз растягивает снимок и придает ему объем, тут лучше всего попробовать разные варианты и выбрать тот, что больше нравится. Обычно наиболее удачные варианты идут в пределах от 4 до 10.
От разрешения тайла зависит то, сколько пикселей идет на проработку участка местности. Если значение слишком маленькое, то горы будут острыми пиками. Но слишком большие значения не дают результат сильно лучше и заметно нагружают видеокарту. Мне нравится ставить 100 или 200, грузится быстро, да и значения выше уже не дают результат заметно лучше. В то же время, бывают случаи, когда и при стандартных 16 пикселях выглядит нормально.
Высота подола выставляется для того, чтобы избежать появления вот таких вот белых пятен между частями снимка. Иногда достаточно значения 10, но я для верности ставлю 100 или 200.
Выставив настройки и немного покрутив камеру, получаем вот такой результат, теперь сохраним карту.

Сохранение трехмерной карты в виде картинки

Для того, чтобы сохранить карту, заходим в менеджер макетов (“Проект”, “Менеджер проектов”) и создаем пустой макет карты. Чтобы добавить трехмерную карту на макет, нужно выбрать опцию “Добавить 3D-карту” и в “настройках сцены” выбрать “Копировать настройки из 3D вида” и нажать на нужный 3D вид. В пределах одного макета их может быть несколько, если вам это нужно.
Через появившееся окно “3D-карта” можно еще немного подредактировать вид - например, выставить более точно наклон или поворот карты.
Как и на обычный макет, на него можно добавлять дополнительные элементы, например, надписи. Также вы можете добавлять на карту дополнительные векторные слои, чтобы подсветить реки, дороги или иные объекты, и они тоже будут учитывать настройки объема карты.
В данной статье я лишь немного приоткрыл возможности работы с трехмерным изображением в QGIS. Следующим этапом вы можете посмотреть на другие пункты настроек и лучше узнать возможности программы.
Материал подготовил Александр Зуев