# visualizacion-geospacial-avanzada-con-pygmt
Visualización Geospacial Avanzada con PyGMT
Volver a la portada del cursoProyecciones Geográficas
Sección 2 · Mapas Básicos y Proyecciones
Proyecciones geográficas en PyGMT
La Tierra es (casi) una esfera y la pantalla es plana. Toda proyección es una regla para pasar de latitud y longitud a coordenadas en el papel, y ninguna lo logra sin distorsionar algo: áreas, ángulos, distancias o formas. Elegir la proyección no es un detalle estético; decide qué puede leer correctamente quien mira tu mapa.
Qué se conserva y qué se sacrifica
Las proyecciones se agrupan por la propiedad que preservan:
- Conformes: conservan los ángulos y la forma local. Mercator es el ejemplo clásico y por eso se usa en navegación; a cambio, infla las áreas cerca de los polos (Groenlandia parece del tamaño de África).
- Equivalentes: conservan las áreas. Mollweide o Lambert azimutal equivalente sirven para comparar superficies o densidades, como sismos por kilómetro cuadrado.
- Equidistantes: conservan las distancias desde un punto o a lo largo de ciertas líneas, como la azimutal equidistante.
- De compromiso: no conservan nada exactamente, pero reparten el error. Robinson y Winkel Tripel son las favoritas para mapas del mundo.
La sintaxis de projection
En PyGMT la proyección es una cadena corta: una letra que identifica la proyección, sus parámetros separados por / y, al final, el tamaño. Si la letra va en mayúscula, el número final es el ancho del mapa; en minúscula, es una escala (centímetros por grado). Algunos ejemplos:
"M15c": Mercator de 15 cm de ancho."L-102/23/17/29/15c": cónica conforme de Lambert con centro en 102° O y 23° N, y paralelos estándar en 17° y 29°."G-100/20/10c": ortográfica (la Tierra vista desde el espacio) centrada en 100° O, 20° N."W12c","N12c","R12c": Mollweide, Robinson y Winkel Tripel para el mundo."X10c/6c": cartesiana, para gráficas que no son mapas, como un perfil topográfico.
La región: region
region acepta una lista [oeste, este, sur, norte], la cadena "g" o "d" para el mundo entero (longitudes 0 a 360 o -180 a 180), o un código de país ISO. region="MX+r1" toma el rectángulo que contiene a México y le agrega un margen de un grado.
Comparar proyecciones lado a lado
La mejor forma de entender la distorsión es dibujar el mismo mundo con varias proyecciones. fig.subplot crea una cuadrícula de paneles; el signo ? en la proyección le dice a PyGMT que use el tamaño del panel:
import pygmt
fig = pygmt.Figure()
proyecciones = ["Q?", "W?", "N?", "G-100/20/?"] # cilíndrica, Mollweide, Robinson, ortográfica
with fig.subplot(nrows=2, ncols=2, figsize=("16c", "10c"),
autolabel=True, margins="0.4c"):
for proj in proyecciones:
fig.coast(region="g", projection=proj, land="gray",
water="lightblue", frame="g30", panel=True)
fig.savefig("proyecciones.png")
En la cilíndrica equidistante (Q) los paralelos quedan igual de separados y las regiones polares se estiran a lo ancho; en Mollweide (W) las áreas son correctas, pero las formas se aplastan en los bordes; la ortográfica (G) muestra un hemisferio como lo vería un satélite.
Proyecciones para un país: Mercator frente a Lambert
Para una región de latitudes medias, extendida de este a oeste, como México o Estados Unidos, la cónica de Lambert distorsiona mucho menos que Mercator. Se eligen dos paralelos estándar dentro de la región; sobre ellos la escala es exacta:
import pygmt
fig = pygmt.Figure()
fig.coast(region="MX+r1", projection="M12c", land="gray",
water="lightblue", frame=["af", "+tMercator"])
fig.shift_origin(xshift="14c")
fig.coast(region="MX+r1", projection="L-102/23/17/29/12c", land="gray",
water="lightblue", frame=["af", "+tLambert"])
fig.savefig("mercator_vs_lambert.png")
shift_origin mueve el origen de la siguiente capa, así dos mapas comparten la misma imagen.
El marco: frame
El marco controla las anotaciones (a), las marcas menores (f) y la retícula (g). frame="afg" deja que GMT elija los intervalos; frame="a5f1g5" los fija en grados. Las letras WSne indican qué lados se anotan: mayúscula con números, minúscula solo con la línea. El título se agrega con "+t" pegado a los lados, en la misma cadena, como en frame=["WSne+tSismos 2017", "af"]; si los separas en dos elementos ("WSne" y "+tSismos 2017"), GMT rechaza la opción.
Trampas comunes
- Usar Mercator para comparar áreas. Si el mapa muestra densidades o tamaños, usa una proyección equivalente.
- Confundir mayúscula y minúscula.
"M15c"es un mapa de 15 cm;"m15c"es 15 cm por grado, un mapa enorme. - Olvidar el centro en proyecciones azimutales. En
G,SoAel centro define qué se ve; un centro lejano a tus datos los deja en el borde, muy deformados. - Usar Mercator cerca de los polos. Mercator no puede llegar a 90°; para regiones polares usa estereográfica polar (
S).
Cierre
Antes de dibujar, pregúntate qué debe leer correctamente quien mira el mapa. Si son rumbos, una conforme; si son áreas, una equivalente; si es el mundo completo, una de compromiso. En PyGMT el cambio es una sola cadena.