Статьи

Прокачиваем теневой рельеф в GIMP

Картография
Время прочтения: 6 минут
Версия GIMP: 3.0.6-1
Уровень владения GIMP: нулевой
Для создания красивых и понятных карт часто приходится пользоваться не только специализированным ПО вроде QGIS или ArcGIS, но и другими программами. Одним из таких примеров являются растровые редакторы вроде Photoshop или GIMP, с помощью которых можно сделать рельеф более выразительным, при этом сохраняя цвета отмывки. В этой статье вы не только узнаете, как можно сделать это с помощью программы GIMP, но и лучше поймете, как работают режимы смешивания изображений и что представляет собой теневой рельеф.
Примечание редактора: если хотите побольше узнать про способ трехмерной визуализации рельефа в ГИС, который называется отмывка или теневой рельеф, почитайте статьи про отмывку рельефа в QGIS, про советы по визуализации теневого рельефа и про карты с эффектом тумана.

Предыстория

Когда я учился в университете, я думал, что использование фотошопа или других программ для работы с растровой графикой при создании карт — это какая-то дедовская архаичная технология. Мне казалось, что в ГИС можно делать все, что нужно картографу. Но с опытом я стал замечать: чтобы делать красивые и понятные карты, одних ГИС недостаточно. Это подтверждалось различными гайдами и постами из блогов топовых, по моему мнению, картографов.
Меня очень цепляло, как выглядел рельеф на картах National Geographic или национальных картах США. И меня интересовало, как они делались. Стандартные алгоритмы создания теневого рельефа, что в QGIS, что в ArcGIS, не давали такого результата.
Со временем я выяснил: неважно, как был сделан рельеф, с помощью алгоритмов или нарисован от руки, везде впоследствии использовался Photoshop. Так вышло, что использовать Photoshop — не мой выбор. Я уже как-то отошел от пиратства, а покупать — это помимо того, что дороговато, так еще и нужно заморочиться, так как его сейчас нельзя купить пользователям из России.
Поэтому мой выбор пал на GIMP, бесплатную программу, аналогичную Photoshop. В ней поменьше возможностей, чем в детище Adobe, но для картографических целей есть все, что нужно и даже больше. Единственным препятствием оставалось адаптировать под него имеющиеся туториалы, что оказалось не так просто. Интерфейсы программ и способы использования одних и тех же инструментов могут заметно отличаться.
Немало повозившись с программой, мне удалось адаптировать некоторые техники, которыми пользуются картографы при обработке карт в растровом редакторе. Одной из этих техник я поделился в этой статье.
Карта Мичигана от экс-картографа National Geographic Даниэля Хаффмана (Источник изображения - https://somethingaboutmaps.com/Landforms-of-Michigan)

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

Для улучшения вашей карты нужно скачать GIMP с официального сайта — https://www.gimp.org/.
Для подготовки рельефа вам нужно как минимум два растровых файла:
  • картинка теневого рельефа;
  • картинка с цветовой отмывкой, с которой вы хотите совместить рельеф.
У этих изображений должно быть одинаковое соотношение сторон. В идеале — одинаковое разрешение, например 5945 на 4205 пикселей. Если соотношение будет одинаковым, то они одинаково откроются в программе друг поверх друга.
В моем случае теневой рельеф у меня подготовлен в Blender. Цветовая отмывка — подстилающая поверхность (леса, водные объекты, поля и т.д.), которую я подготовил в QGIS и сохранил с помощью макета в формате .TIFF (этот формат лучше сохраняет цвета и значения пикселей чем .JPG или .PNG).
Если вы хотите повторить действия этого урока, можете воспользоваться уже подготовленными файлами. Важно: эти файлы предоставляются только в учебных и личных целях, по лицензии их нельзя использовать для коммерческих целей и задач.
Чтобы добавить исходные изображения в GIMP, слева вверху нажмите на меню «Файл» (File), далее «Открыть как слои» (Open as layers) и выберите нужные вам картинки.
После открытия картинок сохраните проект. Рабочая область в нем автоматически будет такого же размера, что и ваши картинки.

Немного теории

Чтобы сделать наш рельеф выразительным и при этом сохранить цвета, мы будем работать с режимами смешиваниями (Blending mode). Режимы смешивания — способ соединить несколько изображений в одно. Он определяет, как один слой (одна картинка) изменяется, если наложена на другие, лежащие под ней. Как вы знаете, цвет пикселя определяется тем, сколько в нем красного, зеленого и голубого, а если быть точнее, то тем, как комбинируются значения этих каналов изображения.
Как работают цвета в цифровой графике. (Источник изображения - https://www.ionos.co.uk/digitalguide/websites/web-design/rgb-colour/)
С точки зрения математики, режимы смешивания — это математические операции над значениями каналов изображений. Например, есть режим смешивания «умножение» (Multiply). В этом режиме у каждого изображения значения цветовых каналов умножаются, образуя новые значения, а значит и новый цвет. А если смотреть на все изображение, то создается эффект, будто бы изображения смешались.
На изображении пример того, как работает режим смешивание «Умножение». Рельеф проявляется на карте, но цвета становятся заметно темнее.

Прокачиваем наш рельеф

Наш теневой рельеф — это комбинация двух цветов, белого и черного. Черный — тени, они хорошо подсвечивают горы и складки местности. Светлые же части — незатененные, обычно довольно ровные участки местности. Поэтому наша задача при работе с теневым рельефом — показать складки рельефа, при этом не затемняя все вокруг и не теряя другие, менее складчатые формы рельефа, ну и конечно не теряя цвет.
Есть еще один практический плюс не слишком темного рельефа: если вам нужно подписывать объекты, то это удобнее делать, когда у вас надписи и фон контрастны, например, светлый рельеф и черные надписи. Если же рельеф перестанет быть светлым, то надписи на карте будут видны хуже.
Чтобы это осуществить, используется две копии нашего изображения теневого рельефа и два разных режима смешивания, которые будут взаимодополнять друг друга. Поэтому для начала сделаем две копии нашего Теневого рельефа.
Для этого правой клавишей мыши нажимаем на слой теневого рельефа справа снизу и нажимаем «Дублировать слой» (Duplicate layers).
Если нажать на глазик слева от слоя, то он перестанет быть видимым и как-либо взаимодействовать с другими слоями. Сделайте это для одной из копий, она будет нам нужна позднее.
Первым этапом займемся складками рельефа и будем делать это с помощью режима смешивания «Линейное затемнение» (Linear Burn).
Линейное затемнение похоже на умножение, но затемняет пиксели чуть сильнее, причем на более темных пикселях эффект работает сильнее.
Этот режим мы будем использовать, чтобы на слое с цветовой отмывкой сделать видимыми только складки рельефа, то есть, чтобы самые темные пиксели теневого рельефа взаимодействовали с пикселями цветовой отмывки. Поэтому для начала нужно сделать так, чтобы самые светлые части рельефа стали максимально белыми и не взаимодействовали с цветными пикселями при Линейном затемнении.
Для это мы воспользуемся инструментом Уровни (Levels). Нажмите левой клавишей мыши на слой Теневого рельефа, затем найдите на меню сверху вкладку Цвета (Colors) и в выпадающем меню выберите вкладку Уровни (Levels).
Если изображение большое, то потребуется время, чтобы программа построила график, нужно немного подождать.
Перед собой вы видите график в виде гистограммы, который показывает количество пикселей разной степени затененности. Снизу графика вы можете видеть бегунки в виде треугольничков, которые можно передвигать и говорить программе, как раскрашивать пиксели.
Сдвиньте крайний правый ползунок влево, чтобы большее количество пикселей стало белым, тем самым оставляя черным наиболее важные и заметные склоны. Если при изменении бегунка у вас изображение не меняется, то поставьте галочку слева внизу напротив надписи «Предпросмотр» (Preview).
Сделав это действие, нажмите «Ок», после чего установите для изображения режим смешивания Линейное затемнение.
В итоге мы получаем вот такое изображение. Цвет не затенен, формы рельефа видны, в некоторых случаях на этом даже можно остановиться, особенно, если вы работаете с низменностями или очень плоским рельефом, где перепад высот в среднем может не превышать нескольких десятков метров.
Но если вы работаете с более складчатым рельефом или вообще с горными территориями, то в таком случае вы можете полностью потерять некоторые детали рельефа, как например изгибы рек и прилегающие речные долины.
Чтобы избежать этого, используют обратный процесс. Вместо линейного затемнения используется режим «Экран» (Screen), который делает изображение ярче, осветляя светлые пиксели, при этом хуже взаимодействуя с темными. Причем чем ближе к черному, тем меньше влияния — черный цвет останется неизменным.
Если сделать видимым самый верхний слой и применить режим смешивания Экран, то изображение просто обесцветится, как на скриншоте выше. Поэтому, чтобы сохранить цвета, мы опять воспользуемся инструментом Уровни (Levels), но сделаем уже большинство пикселей черными.
В этот раз двигаем крайний левый ползунок черного цвета
Если вы хотите внести изменения в кривые и поменять результат, то необязательно делать все заново, можно просто нажать на символ fx, а затем щелкнуть два раза на пункт Уровни (Levels).

Что дальше

Эта комбинация режимов смешивания часто работает хорошо, но не является универсальной. Не бойтесь экспериментировать с режимами смешиваниями и с настройками прозрачности, комбинация Умножения (Multiply) и прозрачности иногда дают тоже приличный результат и может быть осуществлена даже в QGIS. Побольше о режимах смешивания можно узнать в отдельной статье.
Если же вы являетесь адептом фотошопа и хотите повторить урок в этой программе, то по ней есть хороший туториал от Дэниела Хаффмана.
Материал подготовил Александр Зуев

Связанные статьи

Чтобы научиться обработке и анализу данных о рельефе, ознакомьтесь с набором материалов «Цифровые модели рельефа», который научит работать с ЦМР в QGIS и SAGA!