Статьи

Несколько простых советов, которые сделают ваш теневой рельеф лучше

Картография Туториалы
Время прочтения – 7 минут

Что такое теневой рельеф

Теневой рельеф – на сегодняшний день, пожалуй, самая популярная техника визуализации рельефа, получившая особую славу еще в первой половине прошлого века. Кто-то, как Эдуард Имхоф, рисовал его от руки, изучая в путешествиях по Альпам, как тень ложится на рельеф, кто-то же строил целые макеты гор и фотографировал их с подъемного крана.
Сейчас же зачастую используются аналитические методы построения теневого рельефа, то есть он строится с помощью математических алгоритмов, встроенных как в геоинформационные системы, таких как QGIS или ArcGIS, так и в разных графических редакторах.
null
Теневой рельеф северо-восточной Швейцарии авторства Эдуарда Имхофа
Полуобъемное изображение горных вершин, долин рек и глубин океанов приковывает взгляд читателя карты и не отвлекает лишними линиями горизонталей или штрихов от основных точек, линий и полигонов карты, ради которых она и создавалась.
Цель этой статьи – не показать, в каком порядке нажимать кнопки, чтобы строить теневой рельеф, а объяснить несколько принципов его построения, зная которые, можно не просто сделать карту лучше, но и придумать свои идеи и фишечки в его построении.

Почему мой рельеф похож на склад угля, и что такое z-factor?

Нередко бывает, что неофит теневого рельефа, запуская алгоритм с названием "hillshading" в своем условном QGIS, получает с одной стороны что-то похожее на склад угля, а с другой стороны плюс-минус желаемый результат: горы, холмы, долины рек. Интуиция в этот момент подсказывает, что что-то не так, рельеф получился слишком уж теневой, но результат вроде есть. А увидев в паре обучающих видео на ютубе такое же изображение, уверенно доделываешь карту, получая сносный результат изменением контрастности, яркости и наложением цветовой палитры.
Причина, по которой ваш теневой рельеф очень темный и, если приглядеться, даже искаженный, состоит в параметре алгоритма построения теневого рельефа, который называется z-factor ("масштабирование по Z" в русских версиях QGIS).
null
Слева – корректно выставленный z-factor, справа – некорректный
Что же такое z-factor? Положение точки в пространстве определяется ее местоположением относительно осей X, Y и Z, то есть долготой и широтой точки, а также ее расположением над поверхностью – высотой. Z-factor – параметр, который используется алгоритмами построения теневого рельефа, чтобы понять, как соотносятся между собой единицы измерения высот/глубин точки (вертикальные координаты по оси Z) относительно единиц расстояний на плоскости (горизонтальных координат по осям X и Y), принятых для определенной системы координат.
Единицы измерения расстояний являются неотъемлемой частью систем координат и могут измеряться в градусах, метрах, километрах, футах.
Большинство цифровых моделей рельефа, которые используются для построения теневого рельефа, изначально подготовлены в географической системе координат Меркатора (EPSG 4326), измеряющей координаты в градусах, как и все расстояния. В то же время значение пикселя цифровой модели рельефа, обозначающего его высоту (Z) над уровнем моря, представлено в метрах.
Таким образом, стандартно оставляя z-factor со значением 1, вы говорите алгоритму, что высота измеряется в градусах, как и координаты, хотя на самом деле она измеряется в метрах. Длина одного градуса в метрах на карте достигает десятков и сотен километров в зависимости от широты местности — при удалении от экватора к северному и южному полюсам длина одного градуса увеличивается. Размер же пикселя цифровой модели рельефа, используемого из открытых источников, может различаться от 1 м до нескольких километров. Таким образом, даже имея значение высоты (Z) равное одному, алгоритм видит его как очень высокий объект, который откладывает большую тень, и искажает информацию о рельефе: углы склонов становятся меньше, долины рек становятся уже не долинами рек, а самыми настоящими ущельями.
Есть два простых способа побороться с этой проблемой:
  1. Поменять систему координат на метрическую (если высота рельефа в метрах).
  2. Установить Z равным 1 метру, выраженному в градусах, в зависимости от широты места.
1. Просто изменив систему координат слоя на метрическую, например, на местную систему координат или поперечную цилиндрическую систему координат Меркатора (как WGS 84 / UTM zone 38N), можно оставить z-factor равным единице, так как единицы измерения системы координат сойдутся с единицами измерения высоты, как это и нужно алгоритму.
Специалисты компании ESRI (создатели ArcGIS) рекомендуют это делать всегда, за исключением случая, когда цифровая модель рельефа является частью веб-сервиса, где клиент может выбрать проекцию для данных самостоятельно (в таком случае есть шанс потерять часть информации при перепроецировании растров).
2. В случаях, когда изменить систему координат по какой-либо причине невозможно или нерационально, придется выбрать или рассчитать подходящее значение для z-factor.
В большинстве случаев достаточно использовать уже рассчитанные и представленные в таблице ниже значения z-factor. Выбирайте значения, ориентируясь на широту центра вашей карты. Такие средние значения уже могут дать хорошее изображение рельефа, даже если центр карты расположен в нескольких градусах от рассчитанного значения.
Если же по каким-то причинам необходимо более точное значение, то рассчитать его можно по формуле:
z = 1 / (111319.44444 * cos(xπ/180)),
где x – широта середины вашей цифровой модели рельефа.
Z-factor используется не только для построения теневого рельефа, но и в других инструментах анализа растров, например, при расчете склона (инструмент "slope" в QGIS). Механизм его работы в них абсолютно такой же.

Как сделать теневой рельеф выразительнее

Самая важная вещь в теневом рельефе – это расположение солнца или источника света: от этого и зависит, какие части карт темнее, а какие светлее. При построении классического теневого рельефа принимается, что солнце находится с одной стороны, под одним углом к горизонту. Классически эти значения принимаются за 315 и 45 градусов, но можно и поэкспериментировать, представляя ваш рельеф в разное время суток. Продвинутые программы, работающие с 3D графикой, вроде Blender или Aerialod, будут давать характерные цвета заката или рассвета при низкой высоте солнца.
Для большей выразительности рельефа используются еще две техники теневого рельефа, по-разному моделирующие свет: мультинаправленный (multidirectional) и комбинированный (combined).
null
Сравнение трех техник теневого рельефа
При мультинаправленном теневом рельефе моделируется ситуация, когда на объект действует несколько источников света одновременно с разных сторон. Комбинированный очень похож по принципу на мультинаправленный, но главное отличие в том, что источники света не с нескольких сторон, а вообще со всех – оттого он получается очень светлым.
Использование множества источников света делает ваш теневой рельеф светлее и смещает акценты на разные детали ландшафта. В комбинированном лучше видны долины рек, чем на других видах рельефа, а мультинаправленный акцентирует внимание на тех складках рельефа, которые не так заметны при традиционном виде.
Как объединить теневой рельеф с космоснимком, при этом не смыв его
Добавляя на карту различные текстуры, мы можем как улучшить ее, скрывая некоторые моменты, добавляя красок и информацию о поверхности земли, так и сделать ландшафт хуже, скрыв все его характерные особенности, например, за космическим снимком поверхности земли.
Для того, чтобы объединить изображение земной поверхности с теневым рельефом, можно использовать как прозрачность, так и различные варианты рендеринга ("blending mode"). Но их использование на весь слой может сделать карту либо слишком блеклой, либо слишком темной или яркой.
null
Попытка совместить рельеф и космоснимок через прозрачность, потеря цветов с небольшим добавлением рельефа – не самый лучший результат
null
Попытка совместить рельеф и космоснимок через вариант рендеринга "multiply" хорошо сохраняет первый, но делает карту слишком темной
Чтобы максимально избежать этих эффектов, нужно понимать одну вещь и воспользоваться хитростью. С точки зрения цифровой графики теневой рельеф – комбинация пикселей от белого к черному, где белый цвет – это самые светлые и незатененные части поверхности, которые нам видятся равнинами, вершинами гор, долинами рек, а черный – это участки, покрытые тенью, являющиеся либо складками рельефа, либо просто сторонами, на которые не попадает мало света. Поэтому, чтобы подчеркнуть наш рельеф, его, во-первых, следует положить выше космоснимка, а во-вторых, установить прозрачность так, чтобы на характерных участках рельефа она была меньше, а на менее важных была больше, тем самым расставляя акценты.
null
Настройки для слоя теневого рельефа: 1 – цвет #000000, прозрачность 80 – 100 %; 2 – цвет #000000, прозрачность 100%; 3 – цвет #ffffff, прозрачность 100%; 4 – цвет #ffffff, прозрачность 20-50%
null
Слева – космоснимок без рельефа, справа с рельефом, умеренное сохранение цветов космоснимка и объема рельефа
Таким образом мы настройками прозрачности как расставили акценты на самых затененных участках местности, формирующих основные силуэты гор и речных долин, так и подсветили горные вершины и светлые склоны.
Я надеюсь, что эта статья помогла вам лучше понять принципы построения теневого рельефа и что она поможет вам в создании карт в будущем. Нет какой-то идеальной универсальной формулы или настроек для построения теневого рельефа, но есть огромный простор для творчества, благодаря разным ландшафтам, данным и целям, для которой вы делаете определенную карту.
Связанная статья – отмывка рельефа в QGIS