Crear gráficos de relieve con sombreado con Python

PythonPythonBeginner
Practicar Ahora

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

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderemos a crear gráficos de relieve con sombreado utilizando Python Matplotlib. Los gráficos de relieve con sombreado son útiles para visualizar datos de terreno, ya que utilizan el sombreado para representar las variaciones en la elevación.

Consejos sobre la VM

Una vez que se haya iniciado la VM, haga clic en la esquina superior izquierda para cambiar a la pestaña Cuaderno y acceder a Jupyter Notebook para practicar.

A veces, es posible que tenga que esperar unos segundos a que Jupyter Notebook termine de cargarse. La validación de las operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.

Si tiene problemas durante el aprendizaje, no dude en preguntar a Labby. Deje su retroalimentación después de la sesión y resolveremos el problema para usted de inmediato.

Importar bibliotecas

Comenzaremos importando las bibliotecas necesarias.

import matplotlib.pyplot as plt
import numpy as np

from matplotlib import cbook
from matplotlib.colors import LightSource

Cargar datos

A continuación, cargaremos los datos de muestra que utilizaremos en este tutorial. Utilizaremos el archivo jacksboro_fault_dem.npz, que contiene datos de elevación.

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

Crear gráficos de relieve con sombreado

Ahora crearemos los gráficos de relieve con sombreado utilizando la clase LightSource. Crearemos dos subgráficos, uno con datos mapeados a un mapa de colores y el otro con intensidad de iluminación.

## Ilumine la escena desde el noroeste
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='Datos mapeados a un mapa de colores')

axs[0, 1].imshow(ls.hillshade(z, vert_exag=ve), cmap='gray')
axs[0, 1].set(xlabel='Intensidad de iluminación')

Crearemos otros dos subgráficos, uno con blend_mode establecido en "hsv" y el otro en "overlay".

rgb = ls.shade(z, cmap=cmap, vert_exag=ve, blend_mode='hsv')
axs[1, 0].imshow(rgb)
axs[1, 0].set(xlabel='Modo de mezcla: "hsv" (predeterminado)')

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

Mostrar los gráficos

Finalmente, mostraremos los gráficos utilizando plt.show().

plt.show()

Resumen

En este laboratorio, aprendimos cómo crear gráficos de relieve con sombreado utilizando Python Matplotlib. Cargamos datos de muestra y utilizamos la clase LightSource para crear cuatro subgráficos con diferentes técnicas de sombreado. Luego mostramos los gráficos utilizando plt.show().