Создание карты теневой relieve с использованием Python

PythonPythonBeginner
Практиковаться сейчас

This tutorial is from open-source community. Access the source code

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом лабе мы узнаем, как создавать карты теневой relieve с использованием Python Matplotlib. Карты теневой relieve полезны для визуализации данных о рельефе, так как они используют оттенки для представления изменений высоты.

Советы по ВМ

После запуска ВМ нажмите в левом верхнем углу, чтобы переключиться на вкладку Notebook и получить доступ к Jupyter Notebook для практики.

Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook не загрузится полностью. Валидация операций не может быть автоматизирована из-за ограничений Jupyter Notebook.

Если вы сталкиваетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.

Импорт библиотек

Начнем с импорта необходимых библиотек.

import matplotlib.pyplot as plt
import numpy as np

from matplotlib import cbook
from matplotlib.colors import LightSource

Загрузка данных

Далее мы загрузим примерные данные, которые будем использовать в этом руководстве. Мы будем использовать файл jacksboro_fault_dem.npz, который содержит данные о высоте.

dem = cbook.get_sample_data('jacksboro_fault_dem.npz')
elev = dem['elevation']

Создание карты теневой relieve

Теперь мы создадим карту теневой relieve с использованием класса LightSource. Мы создадим два подграфика: один с цветовым отображением данных, а другой с интенсивностью освещения.

## Осветить сцену с северо-западного направления
ls = LightSource(azdeg=315, altdeg=45)

fig, axs = plt.subplots(ncols=2, nrows=2)
for ax in axs.flat:
    ax.set(xticks=[], yticks=[])

axs[0, 0].imshow(z, cmap=cmap)
axs[0, 0].set(xlabel='Цветовое отображение данных')

axs[0, 1].imshow(ls.hillshade(z, vert_exag=ve), cmap='gray')
axs[0, 1].set(xlabel='Интенсивность освещения')

Мы создадим еще два подграфика: один с blend_mode установленным на "hsv", а другой на "overlay".

rgb = ls.shade(z, cmap=cmap, vert_exag=ve, blend_mode='hsv')
axs[1, 0].imshow(rgb)
axs[1, 0].set(xlabel='Режим смешивания: "hsv" (по умолчанию)')

rgb = ls.shade(z, cmap=cmap, vert_exag=ve, blend_mode='overlay')
axs[1, 1].imshow(rgb)
axs[1, 1].set(xlabel='Режим смешивания: "overlay"')

Отображение графиков

Наконец, мы отобразим графики с использованием plt.show().

plt.show()

Резюме

В этом практическом занятии мы узнали, как создавать карты теневой relieve с использованием Python Matplotlib. Мы загрузили примерные данные и использовали класс LightSource для создания четырех подграфиков с разными методами оттенков. Затем мы отобразили графики с использованием plt.show().