Planetary Computer con Python

Planetary Computer con Python: guia definitiva con secretos de TerraClimate para la cuenca Maure (2026)

Planetary Computer con Python te permite abrir datos climaticos globales en la nube, recortarlos a una cuenca real y generar resultados reproducibles sin descargar archivos uno por uno. Esta guia resume el flujo del tema 1.2 del curso de Big Data Ambiental en la nube.

Trabajaremos con TerraClimate, la cuenca Maure y un pipeline tecnico que pasa de cubo multidimensional a tablas y graficos climaticos listos para analisis.

Respuesta rapida: Planetary Computer es la puerta de entrada al dato ambiental cloud y Python es el motor para convertir ese dato en evidencia tecnica.

planetary computer con python para analizar terraclimate por cuenca
Flujo de Planetary Computer con Python para pasar de cubo global a indicadores climaticos por territorio.

Sumario del tema 1.2

  1. Que es Planetary Computer.
  2. Por que usamos TerraClimate.
  3. Area de estudio: cuenca Maure.
  4. Apertura del cubo Zarr.
  5. Recorte espacial de la cuenca.
  6. Serie climatica mensual.
  7. Resumen anual.
  8. Climatologia mensual.
  9. Exportacion de resultados mensuales.
  10. Exportacion de resultados anuales.

1) Que es Planetary Computer

Planetary Computer es una plataforma cloud para datos ambientales. Permite acceder a catalogos climaticos, satelitales y geoespaciales usando STAC, con un enfoque reproducible y escalable para analisis tecnico.

  • No dependes de descargar capas manualmente.
  • Conectas datos globales con Python y territorio local.
  • Trabajas con estructuras listas para analisis masivo.

2) Por que usamos TerraClimate

TerraClimate funciona como cubo climatico mensual: organiza informacion por tiempo, latitud y longitud. Para este ejercicio usamos:

  • ppt: precipitacion mensual.
  • tmin: temperatura minima mensual.
  • tmax: temperatura maxima mensual.

El periodo de analisis recomendado en el tema es 1958-2023, ideal para leer memoria climatica de largo plazo.

3) Area de estudio: cuenca Maure

El analisis parte de un shapefile de la cuenca. Antes de procesar, validamos geometria y CRS, luego convertimos a WGS84 (EPSG:4326) para compatibilidad con el cubo global.

import geopandas as gpd

cuenca = gpd.read_file("cuenca_maure.shp")
if cuenca.empty:
    raise ValueError("La capa de cuenca esta vacia")
if cuenca.crs is None:
    raise ValueError("La capa no tiene CRS definido")

cuenca = cuenca.to_crs(4326)
minx, miny, maxx, maxy = cuenca.total_bounds
bbox = [minx, miny, maxx, maxy]

Ese bounding box reduce el volumen inicial del cubo y hace mas eficiente el flujo.

4) Apertura del cubo Zarr desde STAC

Para TerraClimate conviene evitar busqueda masiva de items mensuales (`catalog.search()`), porque puede producir timeouts. El patron robusto es abrir el asset Zarr de la coleccion.

import xarray as xr
from pystac_client import Client
import planetary_computer

catalog = Client.open(
    "https://planetarycomputer.microsoft.com/api/stac/v1",
    modifier=planetary_computer.sign_inplace
)

collection = catalog.get_collection("terraclimate")
zarr_asset = next(
    asset for asset in collection.assets.values()
    if "zarr" in (asset.href or "").lower()
)

ds = xr.open_zarr(
    zarr_asset.href,
    **zarr_asset.extra_fields.get("xarray:open_kwargs", {}),
    storage_options=zarr_asset.extra_fields.get("xarray:storage_options", {}),
)

vars_objetivo = ["ppt", "tmin", "tmax"]
vars_disponibles = [v for v in vars_objetivo if v in ds.data_vars]
ds = ds[vars_disponibles]

Este enfoque permite leer datos grandes por partes y mantener estabilidad en la ejecucion.

5) Recorte espacial: bbox y poligono exacto

El recorte recomendado es en dos pasos: primero por bbox (rapido), luego recorte exacto con poligono (preciso). Si el clip exacto falla, se conserva bbox para no detener el proceso.

# Recorte inicial por ventana espacial
ds_bbox = ds.sel(lon=slice(minx, maxx), lat=slice(maxy, miny))

# Recorte exacto (si el dataset y entorno lo permiten)
try:
    ds_clip = ds_bbox.rio.write_crs("EPSG:4326").rio.clip(
        cuenca.geometry,
        cuenca.crs,
        drop=True
    )
except Exception:
    ds_clip = ds_bbox

Asi el Big Data se enfoca en el territorio relevante y no en todo el planeta.

6) Serie climatica mensual

Luego calculamos promedio espacial (lat-lon) para mantener la dimension temporal y obtener serie mensual por variable.

serie = ds_clip.mean(dim=["lat", "lon"]).to_dataframe().reset_index()
serie["anio"] = serie["time"].dt.year
serie["mes"] = serie["time"].dt.month

El resultado es una tabla interpretable con fecha, anio, mes, precipitacion y temperaturas.

7) Resumen anual y climatologia mensual

En el resumen anual, cada variable se agrega segun su significado fisico:

  • ppt: suma anual.
  • tmin: promedio anual.
  • tmax: promedio anual.
anual = serie.groupby("anio", as_index=False).agg(
    ppt=("ppt", "sum"),
    tmin=("tmin", "mean"),
    tmax=("tmax", "mean")
)

climatologia = serie.groupby("mes", as_index=False).agg(
    ppt=("ppt", "mean"),
    tmin=("tmin", "mean"),
    tmax=("tmax", "mean")
)

La climatologia mensual ayuda a leer estacionalidad: meses secos/humedos y meses mas frios/calidos.

8) Exportacion de resultados

Una buena practica del tema 1.2 es dejar evidencia tabular para revision tecnica y docencia.

  • Serie mensual en CSV y Excel.
  • Resumen anual en CSV y Excel.
  • Carpeta de salida organizada por proyecto.
serie.to_csv("resultados/serie_mensual.csv", index=False)
serie.to_excel("resultados/serie_mensual.xlsx", index=False)

anual.to_csv("resultados/resumen_anual.csv", index=False)
anual.to_excel("resultados/resumen_anual.xlsx", index=False)
resultados climaticos anuales y mensuales con planetary computer y python
Exportacion de series y resumenes climaticos para analisis tecnico y toma de decisiones.

Errores frecuentes que debes evitar

  • Error: analizar sin CRS. Solucion: valida y convierte a EPSG:4326.
  • Error: buscar miles de items cuando existe Zarr de coleccion. Solucion: abre el asset Zarr directo.
  • Error: asumir variables sin revisar. Solucion: valida `ppt`, `tmin`, `tmax` antes de procesar.
  • Error: fallar por clip exacto y detener todo. Solucion: usa fallback a bbox.
  • Error: no exportar resultados. Solucion: guarda salidas mensuales y anuales.

Como se conecta esta guia con el SILO Big Data

flujo de recorte y series climaticas desde terraclimate en planetary computer
De cubo global a serie mensual local: el paso clave para convertir datos en decisiones.

Preguntas frecuentes sobre Planetary Computer con Python

Necesito descargar todo TerraClimate para empezar

No. El enfoque correcto es filtrar por territorio y trabajar con recorte progresivo en la nube.

Por que usar Zarr en lugar de buscar item por item

Porque para cubos climaticos largos suele ser mas estable, mas rapido y menos propenso a timeout.

Que variables debo usar primero en una cuenca

Para iniciar, `ppt`, `tmin` y `tmax` son una base clara para interpretar lluvia, frio y calor.

Como paso de mapa a tabla para analisis

Promediando espacialmente latitud/longitud y conservando tiempo, luego exportas DataFrame con anio y mes.

Que producto final conviene entregar

Serie mensual, resumen anual y climatologia mensual en archivos tabulares, mas graficos interpretables.

Siguiente paso para practicar con acompanamiento

Si quieres dominar Planetary Computer con Python en casos reales, empieza por una clase gratuita y luego continua con la ruta aplicada de Big Data Ambiental en la nube.

Reservar cupo en la clase gratuita
Ver formacion aplicada en Big Data Ambiental

Fuentes tecnicas externas

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Carrito de compra
Scroll al inicio