Criando Gráficos de Relevo Sombreado com Python

Beginner

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

Introdução

Neste laboratório, aprenderemos como criar gráficos de relevo sombreado usando Python Matplotlib. Gráficos de relevo sombreado são úteis para visualizar dados de terreno, pois usam sombreamento para representar variações na elevação.

Dicas para a VM

Após a inicialização da VM, clique no canto superior esquerdo para mudar para a aba Notebook e acessar o Jupyter Notebook para praticar.

Às vezes, pode ser necessário aguardar alguns segundos para que o Jupyter Notebook termine de carregar. A validação das operações não pode ser automatizada devido a limitações no Jupyter Notebook.

Se você enfrentar problemas durante o aprendizado, sinta-se à vontade para perguntar ao Labby. Forneça feedback após a sessão, e resolveremos o problema prontamente para você.

Importar Bibliotecas

Começaremos importando as bibliotecas necessárias.

import matplotlib.pyplot as plt
import numpy as np

from matplotlib import cbook
from matplotlib.colors import LightSource

Carregar Dados

Em seguida, carregaremos os dados de amostra que usaremos para este tutorial. Usaremos o arquivo jacksboro_fault_dem.npz, que contém dados de elevação.

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

Criar Gráficos de Relevo Sombreado

Agora criaremos os gráficos de relevo sombreado usando a classe LightSource. Criaremos dois subplots, um com dados mapeados por cores e o outro com intensidade de iluminação.

## Illuminate the scene from the northwest
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='Colormapped Data')

axs[0, 1].imshow(ls.hillshade(z, vert_exag=ve), cmap='gray')
axs[0, 1].set(xlabel='Illumination Intensity')

Criaremos mais dois subplots, um com o blend_mode definido como "hsv" e o outro como "overlay".

rgb = ls.shade(z, cmap=cmap, vert_exag=ve, blend_mode='hsv')
axs[1, 0].imshow(rgb)
axs[1, 0].set(xlabel='Blend Mode: "hsv" (default)')

rgb = ls.shade(z, cmap=cmap, vert_exag=ve, blend_mode='overlay')
axs[1, 1].imshow(rgb)
axs[1, 1].set(xlabel='Blend Mode: "overlay"')

Exibir os Gráficos

Finalmente, exibiremos os gráficos usando plt.show().

plt.show()

Resumo

Neste laboratório, aprendemos como criar gráficos de relevo sombreado usando Python Matplotlib. Carregamos dados de exemplo e usamos a classe LightSource para criar quatro subplots com diferentes técnicas de sombreamento. Em seguida, exibimos os gráficos usando plt.show().