Как наложить горизонтали на спутниковые снимки с помощью QGIS


Современные технологии существенно упрощают планирование туристских маршрутов в малоизученных горных районах. Хорошо, когда удаётся найти фотографии каких-то перевалов и ледников, но что делать, если таких фотографий просто нет? К счастью, сегодня доступно большое количество различных спутниковых снимков, которые зачастую содержат информацию, отсутствующую на топографических картах, например, расположение трещин и ледопадов. Есть и карты высот, полученные также при помощи спутников и позволяющие увидеть, как выглядит рельеф местности (например, с помощью Google Earth). Конечно, показанный там рельеф не является точным (изредка встречаются и очень серьёзные ошибки), но составить примерное впечатление о крутизне склонов обычно можно. К сожалению, такие программы невозможно использовать, уже находясь на маршруте, а по обычным космоснимкам не всегда можно понять детали рельефа. Удобным решением этой проблемы может быть печать спутниковых снимков важных участков маршрута с нарисованными на них горизонталями. Эти распечатки затем можно взять с собой и, в случае необходимости, изучать прямо на маршруте. Ниже будет описан способ получения таких космоснимков с помощью свободной программы QGIS. По мнению автора, этот способ является самым простым в реализации, а главное — всё делается в рамках одной бесплатной программы. А результат можно получить примерно такой:

QGISResult.jpg


Подготовительный этап

Установить QGIS можно с помощью пакетного менеджера дистрибутива Linux либо с помощью установщика, доступного для загрузки на официальном сайте. Для упрощения загрузки космоснимков и карт высот удобно установить несколько дополнительных модулей. Запускаем QGIS, идём в меню Модули > Управление модулями и в параметрах разрешаем установку экспериментальных модулей. Затем ищем в списке доступных модулей QuickMapServices и SRTM Downloader и устанавливаем их.

QGISModules.jpg

Первый модуль позволяет легко загружать из интернета множество онлайн-карт, но набор карт, доступных по умолчанию, весьма скуден. Поэтому открываем Интернет > QuickMapServices > Настройки и на последней вкладке загружаем дополнительные источники данных.

QGISQuickMapServices.jpg

Теперь в QGIS можно загружать топокарты, космоснимки от разных провайдеров и многое другое.

Кроме того, придётся зарегистрироваться на сайте NASA, чтобы иметь возможность автоматически загружать карты высот SRTM с помощью плагина. Для этого нужно будет заполнить некоторую информацию о себе и согласиться с условиями распространения данных SRTM.

Создание горизонталей

В качестве примера рассмотрим район Рушанского хребта Юго-Западного Памира. По опыту автора, наиболее полезными в горах обычно являются космоснимки от Google, Bing, ESRI (ArcGIS), иногда Yandex. С помощью QuickMapServices подключаем, например, спутниковые снимки от Bing (Интернет > QuickMapServices > Bing > Снимки Bing). На появившейся карте мира находим и увеличиваем интересующий нас район. Для многих участков Рушанского хребта Bing предлагает снимки высокого качества.

Теперь открываем Модули > SRTM Downloader и устанавливаем регион, для которого будет загружена карта высот.

QGISSRTM.jpg

Можно указать путь к директории для сохранения этих файлов, в противном случае временные файлы будут удалены после выхода из программы. Данные SRTM нарезаны на квадраты с размером стороны 1° и представляют собой чёрно-белые TIFF-файлы, в которых яркость связана с высотой над уровнем моря. Заявленное NASA разрешение составляет одну угловую секунду, то есть около 30 метров (конечно, нужно иметь ввиду, что реальная точность может оказаться гораздо меньше, особенно на участках со сложным рельефом). После нажатия на кнопку Загрузить появится окно для ввода логина и пароля аккаунта, созданного на сайте NASA. Когда процесс загрузки данных SRTM завершится, чёрно-белая карта высот появится на экране.

Следующий шаг — создание векторного слоя с горизонталями по данным SRTM. Для этого в QGIS имеется встроенный инструмент: Растр > Извлечение > Создать изолинии.

QGISCreateContours.jpg

Здесь указываем расстояние между изолиниями и имя атрибута, которому будут присвоены значения высот. Можно также указать путь к файлу для сохранения полученных горизонталей. Нажимаем Выполнить и ждём, пока процесс создания изолиний завершится.

Настройка внешнего вида

Итак, горизонтали у нас есть, но выглядят они не очень красиво. Пора это исправить! QGIS имеет очень гибкую систему для изменения стиля любых элементов. Нажимаем правой кнопкой на слой с горизонталями и выбираем Свойства.

QGISMenuProperties.jpg

Чтобы изменить внешний вид самих изолиний заходим во вкладку Стиль. По умолчанию все изолинии имеют один общий стиль, но нас это не устраивает, поэтому выбираем стиль линий Правила.

QGISPropertiesStyle.jpg

Добавляем первое правило для горизонталей, высота которых кратна 100 м. Чтобы выбрать только такие линии, устанавливаем соответствующий Фильтр: ELEV % 100 is 0 (то есть остаток от деления значения в атрибуте ELEV на 100 должен быть равен нулю). Поддерживаются и более сложные правила, написанные на языке, близком к Python. Теперь изменяем сам стиль, например, сделаем такие горизонтали толщиной 0,4 мм и поменяем цвет линий.

QGISLineStyle.jpg

Аналогично добавляем правила для горизонталей, проведённых через 50 м (ELEV % 100 is not 0 and ELEV % 50 is 0), и для всех остальных. Пусть первые имеют толщину 0,2 мм, а вторые будут пунктирными. Закрываем окно настройки стиля, и видим, что теперь горизонтали на карте выглядят гораздо лучше.

Осталось добавить к горизонталям подписи, чтобы при взгляде на карту сразу было понятно, где какая высота. Снова открываем Свойства слоя с горизонталями, но теперь идём во вкладку Подписи. Выбираем Подписи на основе правил и добавляем правило для горизонталей, кратных 100 м.

QGISPropertiesLabels.jpg

Устанавливаем соответствующий фильтр и включаем подписи значениями атрибута ELEV. Теперь настраиваем внешний вид подписи.

QGISLabelStyle.jpg

Например, увеличиваем толщину шрифта до Medium и добавляем белую обводку, чтобы текст лучше читался на пёстром фоне (вкладка Буфер). Можно также изменить Размещение, чтобы подписи повторялись, скажем, через 100 мм. Сохраняем все изменения и смотрим, устраивает ли нас вид горизонталей и подписей теперь.

Сохранение в файл

Последний шаг — сохранить получившуюся карту в файл, чтобы затем её можно было напечатать. По-видимому, удобнее всего делать это следующим образом. Устанавливаем на экране масштаб в пикселях, с которым собираемся печатать. Нужно иметь ввиду, что разрешение при печати обычно бывает в 2-3 раза больше, чем у большинства мониторов (200-300 dpi против 100 dpi), поэтому напечатанная карта будет выглядеть мельче, чем на экране. Зато и качество печати обычно выше, поэтому разглядеть мелкие детали будет проще, чем на мониторе. Когда определились с масштабом для печати, блокируем масштаб в QGIS (замочек внизу окна). Теперь уменьшаем карту, чтобы на экране поместилась вся интересующая нас область. При этом все элементы карты, включая изолинии и подписи, должны уменьшаться пропорционально. Теперь идём в Проекты > Импорт/Экспорт > Экспорт карты в изображение (или в PDF).

QGISSaveImage.jpg

Устанавливаем Разрешение около 100 dpi, тогда размер полученной карты будет близок к тому, который мы видим на экране. Можно экспортировать всю область, помещающуюся на экран (Map Canvas Extent) или выбрать интересующий участок (Draw on Canvas). Затем нажимаем Сохранить и указываем путь к файлу. Карта готова!


Сальников Сергей

Последние изменения на 10:56 15 февраля 2019