Saltar al contenido

# visualizacion-geospacial-avanzada-con-pygmt

Visualización Geospacial Avanzada con PyGMT

Volver a la portada del curso
Notebook

Notebook de Visualización Avanzada

Sección 3 · Visualizaciones de Datos Avanzados

Notebook de visualización avanzada

En este notebook practicas las técnicas avanzadas sobre una región concreta: el Eje Neovolcánico Transversal, la franja de volcanes que cruza el centro de México, donde están el Popocatépetl, el Iztaccíhuatl y el Pico de Orizaba. Construirás un mapa de relieve con sombreado, compararás paletas de color, agregarás curvas de nivel y sismos, y terminarás con una vista en perspectiva. Descarga el notebook adjunto a esta lección y ejecútalo celda por celda.

Antes de empezar

El notebook necesita PyGMT funcionando (revisa la lección de instalación) y conexión a internet la primera vez, porque descarga una grilla de relieve de unos pocos megabytes desde el servidor de GMT. Después, la grilla queda en caché y el notebook corre sin conexión. Los sismos vienen del conjunto de ejemplo usgs_quakes de PyGMT: todos los sismos de magnitud 3 o mayor registrados por el USGS en septiembre de 2017.

Paso 1: cargar el relieve de la región

Defines la región una sola vez y la reutilizas en todo el notebook. Pedir solo el recuadro que vas a dibujar mantiene la descarga pequeña:

import pygmt

region = [-104, -95, 17, 21.5]
grid = pygmt.datasets.load_earth_relief(resolution="01m", region=region)
print(grid.shape)
print(f"Elevación: {float(grid.min()):.0f} a {float(grid.max()):.0f} m")

Paso 2: comparar paletas de color

La misma grilla cuenta historias distintas según la paleta. En un panel de tres mapas comparas geo, batlow y gray. Observa cuál deja ver mejor los volcanes y cuál exagera bordes que no existen:

import pygmt

region = [-104, -95, 17, 21.5]
grid = pygmt.datasets.load_earth_relief(resolution="01m", region=region)
fig = pygmt.Figure()
with fig.subplot(nrows=1, ncols=3, figsize=("18c", "5c"),
                 autolabel=True, margins="0.3c", frame="af"):
    for paleta in ["geo", "batlow", "gray"]:
        fig.grdimage(grid=grid, projection="M?", cmap=paleta, panel=True)
fig.savefig("paletas.png")

Paso 3: el mapa completo, capa por capa

Ahora combinas todo: sombreado con luz del noroeste, curvas de nivel cada 1000 m, costas y la escala de color. Agrega una capa a la vez y vuelve a ejecutar la celda para ver qué aporta cada una:

import pygmt

region = [-104, -95, 17, 21.5]
grid = pygmt.datasets.load_earth_relief(resolution="01m", region=region)
sombra = pygmt.grdgradient(grid=grid, azimuth=315, normalize="e0.5")
fig = pygmt.Figure()
pygmt.makecpt(cmap="geo", series=[-3000, 5500])
fig.grdimage(grid=grid, shading=sombra, projection="M16c", cmap=True,
             frame=["WSne+tEje Neovolcánico Transversal", "af"])
fig.grdcontour(grid=grid, levels=1000, pen="0.2p,gray30")
fig.coast(shorelines="0.5p,black")
fig.colorbar(frame=["a1000", "x+lElevación", "y+lm"])
fig.savefig("eje_neovolcanico.png")

Paso 4: sismos sobre el relieve

Filtras los sismos de la región y los dibujas con color por profundidad y tamaño por magnitud. El sismo de Puebla-Morelos del 19 de septiembre de 2017 (magnitud 7.1) aparece en el sur de la región. El notebook también calcula cuántos sismos hay y su profundidad media, porque todo mapa debe ir acompañado de números que lo respalden.

Paso 5: vista en perspectiva

Para cerrar, recortas la zona de los volcanes con pygmt.grdcut y la dibujas en 3D con fig.grdview. Cambia el acimut y la elevación de perspective hasta encontrar el ángulo que mejor muestra los conos volcánicos.

Ejercicios

  • Cambia el acimut del sombreado a 135 (luz desde el sureste). ¿Las montañas siguen pareciendo montañas?
  • Prueba normalize="e0.2" y normalize="e1.0" y decide qué valor equilibra mejor sombra y color.
  • Reemplaza la región por la de tu propio país o estado y ajusta la proyección a una cónica de Lambert.
  • Dibuja solo los sismos de magnitud 4.5 o mayor y agrega una leyenda que lo indique.

Trampas comunes

  • Pedir resolución 15s para toda la región: el archivo crece mucho y el mapa no se ve mejor a 16 cm de ancho.
  • Olvidar que makecpt fija la paleta activa: si luego usas otra grilla con otro rango, crea una paleta nueva.
  • Ejecutar celdas fuera de orden. Antes de dar el notebook por terminado, reinicia el kernel y ejecuta todo.

Recursos