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
- Repo: https://github.com/amurlaniakea/heatriskmap
- Método LST: Avdan & Jovanovska (2016), Journal of Sensors
Licencia: AGPL-3.0-or-later
답글 남기기