DEV Community

Cover image for heatriskmap: mapas de isla de calor urbana para municipios con datos 100% abiertos
Fenix
Fenix

Posted on

heatriskmap: mapas de isla de calor urbana para municipios con datos 100% abiertos

heatriskmap: mapas de isla de calor urbana para municipios con datos 100% abiertos

CLI en Python que calcula la temperatura de superficie (LST), la isla de calor urbana (UHI) y un índice de vulnerabilidad térmica (HVI) por zona, usando solo Landsat + OpenStreetMap + censo. Pensado para ayuntamientos sin equipo de GIS.

El problema

Las olas de calor son el desastre climático más mortal: solo en Europa, el verano de 2023 acumuló unas 60.000 muertes atribuidas. La isla de calor urbana — asfalto, falta de arbolado, calor antropogénico — agrava la exposición y la reparte de forma desigual: los barrios densos pueden estar varios grados más calientes que los verdes, y la población vulnerable (mayores, sin climatización) es la que más lo sufre.

Un municipio necesita saber dos cosas para actuar: dónde hace más calor y quién vive ahí. Las herramientas comerciales son caras y las académicas están hechas para una sola ciudad.

El gap

Verificado con llamadas reales a la API de GitHub (agosto 2026):

urban heat island vulnerability open source = 0
urban heat index small city                = 0
heat risk mapping open source              = 1   (solo Filadelfia, 0 estrellas)
urban heat island tool                     = 24  (NASA UHEAT: una ciudad, sin mantenimiento desde 2022)
heat vulnerability index                   = 35  (todos por-ciudad, 0-1 estrellas)
Enter fullscreen mode Exit fullscreen mode

Los componentes existen (pylandtemp para calcular LST), pero la herramienta completa y mantenida para un municipio cualquiera no.

La solución

heatriskmap es un CLI local-first que compone piezas existentes — sin entrenar ningún modelo:

  • LST: temperatura de superficie en °C desde bandas Landsat-8/9 (B10/B4/B5), con constantes oficiales USGS y el método de ventana simple de Avdan & Jovanovska (2016).
  • UHI: diferencial térmico por píxel y detección de hotspots (> media + 2σ).
  • HVI: índice por zona con ponderación fija y documentada: 50 % exposición térmica, 25 % falta de arbolado (OpenStreetMap vía Overpass), 25 % población vulnerable del censo.
  • Salida: GeoTIFF (EPSG:4326) + GeoJSON con población expuesta por banda (≥32, ≥38, ≥42 °C).

Uso

pip install -e .
heatrisk ingest --b10 B10.tif --b4 B4.tif --b5 B5.tif --census censo.csv -w trabajo/
heatrisk lst -w trabajo/
heatrisk uhi -w trabajo/
heatrisk hvi -w trabajo/ --census censo.csv --zones zonas.tif
heatrisk map -w trabajo/ --census censo.csv --zones zonas.tif
Enter fullscreen mode Exit fullscreen mode

El censo es un CSV simple (zona_id,poblacion,mayores65_pct,zona_vulnerable). Si Overpass no responde, el HVI se calcula con los componentes disponibles y lo marca en el informe — nunca inventa datos.

Verificación

  • 25 tests, cobertura 95 % medida, ruff limpio.
  • LST del fixture de verano en rango físico: 30.5–55.2 °C.
  • Hotspot urbano sembrado detectable: delta +16 °C sobre la media.
  • HVI ordena las zonas según el ranking esperado (centro urbano caliente y con mayores primero).

Limitaciones (honestas)

  • El MVP no descarga escenas de satélite automáticamente (USGS/GEE requieren credenciales): ingiere GeoTIFF locales o descargas manuales.
  • La validación externa contra mapas oficiales de una ciudad de referencia es el siguiente hito.
  • pylandtemp (Apache-2.0) no se mantiene desde 2023: está encapsulado en un único módulo para poder sustituirlo sin tocar el resto.

Links


Licencia: AGPL-3.0-or-later

Top comments (0)