Saltar al contenido principal
VigíaDocumentación

Documentación

Guía de uso, funcionalidades, fuentes de datos, arquitectura y licencias de código abierto de Vigía.

Resumen

Vigía es una plataforma de código abierto para la evaluación y gestión de riesgos en tres municipios del Valle del Cauca, Colombia: Sevilla, Caicedonia y Zarzal. Cruza amenazas naturales de deslizamiento, inundación e incendio forestal con la población y la infraestructura crítica expuestas, combinando índices de amenaza estáticos con pronósticos y monitoreo en vivo de fuentes abiertas.

La aplicación no mantiene una base de datos propia: cada vista es una capa de agregación en tiempo real sobre servicios geoespaciales públicos (ArcGIS, WMS, WMTS, APIs REST) — descrito en detalle en Arquitectura y Fuentes de datos.

Índices de amenaza y créditos

Los índices de susceptibilidad a deslizamientos e incendios forestales que sostienen esta plataforma fueron desarrollados por RED LabOT, la Red de Laboratorios de Observación de la Tierra de las Américas.

RED LabOT — Red de Laboratorios de Observación de la Tierra de las Américas

Guía de uso

Cuatro pasos para pasar de abrir Vigía a entender el riesgo de tu vereda, con una captura de pantalla real de cada uno. Cada paso trae además una nota técnica más corta, por si quieres saber exactamente de dónde sale cada número.

Elige una amenaza para vigilar

Cuando abres Vigía, ya estás viendo un mapa. A la derecha hay cuatro franjas verticales con un ícono cada una: Deslizamientos, Inundaciones, Incendios y Precipitación (más Riesgo compuesto, que junta las cuatro). Toca cualquier franja y el mapa completo cambia a esa amenaza — no se abre una página nueva, todo pasa en la misma pantalla.

Panel principal de Vigía mostrando el mapa de deslizamientos, la leyenda de colores y las franjas de las otras amenazas a la derecha
Nota técnica

Cada amenaza carga su propio mapa Leaflet con capas independientes que se activan y desactivan con las casillas de la esquina superior izquierda (por ejemplo, "Humedad del suelo (SMAP)" o "Fallas geológicas (SGC)"). La leyenda de colores está siempre en la esquina inferior — de verde (muy bajo) a rojo (muy alto).

Descubre cuánta gente vive en riesgo

Arriba a la derecha hay un enlace llamado "Demografía". Ábrelo y verás cuántas personas viven en Sevilla, Caicedonia y Zarzal, separadas por año, si viven en el pueblo o en el campo, y si son hombres o mujeres. También te dice qué tan grave es cada amenaza en cada municipio en este momento.

Ventana de demografía mostrando población urbana y rural, un gráfico por municipio y tarjetas de Sevilla, Caicedonia y Zarzal
Nota técnica

Los números vienen de las proyecciones poblacionales del DANE (2019–2026) y se cruzan en el momento con la señal de monitoreo en vivo de cada amenaza, para saber quién está más expuesto y dónde. Esta vista se abre en una ventana propia sin barra de navegador, para no interrumpir lo que tenías abierto en el mapa principal.

Revisa tu propio nivel de riesgo

El botón celeste "Conoce tu nivel de exposición", en la esquina superior izquierda del panel principal, es la forma más rápida de saber qué tan expuesto estás tú. Elige primero tu municipio y después tu vereda (o "Casco Urbano" si vives en el pueblo). El mapa se acerca a tu zona y muestra las cuatro amenazas juntas, ya activadas.

Ventana de exposición con Sevilla y Casco Urbano seleccionados, el mapa de las cuatro amenazas y el botón Exportar como PDF
Nota técnica

Cada casilla de la leyenda (Deslizamientos, Inundaciones, Incendios, Precipitación) se puede apagar por separado para comparar una amenaza a la vez sobre la misma zona. El botón "Exportar como PDF" — visible en la esquina superior derecha de esta ventana — captura el mapa exactamente como lo estás viendo y genera un PDF descargable para guardar o imprimir.

Abre el reporte completo de una vereda

Dentro del mapa de "Riesgo compuesto", toca cualquier vereda coloreada. Se abre una ventana con el nombre del lugar, el nivel de riesgo (Bajo, Medio, Alto...), qué hacer al respecto (Informar, Prepararse o Actuar) y el detalle de cada una de las cuatro amenazas por separado. También tiene su propio botón para exportar ese reporte a PDF.

Reporte de riesgo compuesto para una vereda de Zarzal, con el nivel de riesgo, el desglose por amenaza y el botón Exportar PDF
Nota técnica

El nivel de riesgo compuesto es el mayor entre las cuatro amenazas normalizadas (la amenaza más alta gobierna, siguiendo la doctrina de la OMM/GDACS), mientras que el puntaje de 0 a 1 es un promedio ponderado al estilo del Índice de Riesgo INFORM. El texto del reporte es una plantilla que se rellena con los mismos números que ya se ven en el mapa — no usa generación de lenguaje ni la puerta de enlace de IA de la app.

Otros detalles útiles

Vistas completas por amenaza

Los enlaces del menú superior (Deslizamientos, Inundaciones, Incendios, Precipitación) abren la versión de página completa de cada mapa, con el mismo contenido que el panel de inicio pero con más espacio en pantalla — útil para monitoreo prolongado o pantallas grandes.

Tema claro y oscuro

El ícono de sol/luna, en la esquina superior derecha de cualquier página, alterna entre tema claro, oscuro y el tema del computador. Vigía recuerda cuál elegiste la próxima vez que abras la página.

Uso con teclado y lectores de pantalla

Todas las páginas incluyen un enlace "Saltar al contenido principal" al presionar Tab por primera vez, roles y etiquetas ARIA en los controles interactivos, y regiones aria-live en los paneles que se actualizan con datos en vivo — para que un lector de pantalla anuncie los cambios sin que el usuario tenga que buscarlos.

Funcionalidades

Qué hace cada módulo de la plataforma.

Deslizamientos
SevillaCaicedoniaZarzal
  • Mapa de amenaza por vereda coloreado por un modelo propio inspirado en LHASA (NASA): pendiente del terreno, proximidad a vías y proximidad a una falla geológica (SGC) como susceptibilidad estática, ajustada por un disparador de lluvia reciente frente a su normal histórica. Calculado en las 55 veredas de los tres municipios, incluida Zarzal.
  • Población, escuelas, hospitales, farmacias e infraestructura crítica expuestas por nivel de amenaza (RED LabOT, Sevilla y Caicedonia), independiente del color del mapa.
  • Capa opcional de fallas geológicas del SGC (líneas), la misma fuente que alimenta el factor de proximidad a fallas del modelo — mostrada como referencia visual, no como un cálculo aparte.
  • Superposición de pronóstico de humedad del suelo de raíz (NASA SMAP L4), actualizada cada 3–4 días.
  • "Sitios críticos": puntos de daño vial relevados en campo por la Secretaría de Infraestructura del Valle del Cauca.
Inundaciones
SevillaCaicedoniaZarzal
  • Polígonos de susceptibilidad estática a inundación por zona (RED LabOT) — solo cubre el área zonificada de Sevilla y Caicedonia.
  • Mapa de amenaza por vereda coloreado por un modelo propio de inundación: zonificación oficial (donde exista), distancia a la quebrada o río más próximo y planicie del terreno (pendiente reutilizada del modelo de deslizamiento). Calculado en las 69 veredas de los tres municipios, incluida Zarzal — la única capa de amenaza por inundación con esa cobertura.
  • Pronóstico de caudal en vivo de GEOGLOWS, evaluado contra períodos de retorno calculados localmente (ajuste de Gumbel) sobre el registro retrospectivo del tramo de río más cercano.
  • Superposición de tasa de precipitación en vivo (NASA GPM IMERG, actualizada cada ~30 minutos).
Incendios
SevillaCaicedonia
  • Polígonos de amenaza por incendio forestal, por vereda.
  • Índice de riesgo de incendio (FWI) en vivo de Copernicus GWIS/EFFIS, con selector de día de pronóstico.
  • Detecciones activas de incendio (satélites VIIRS) de NASA FIRMS, con radio de búsqueda configurable.
Precipitación
SevillaCaicedoniaZarzal
  • Lluvia acumulada de los últimos 7 días con dato válido, por vereda, calculada a partir del punto diario de NASA POWER (reanálisis MERRA-2/GEOS-IT). Es la única capa de amenaza con la misma cobertura en Zarzal que en Sevilla y Caicedonia.
  • Superposición de tasa de precipitación en vivo (NASA GPM IMERG, la misma capa satelital que ofrece el mapa de inundaciones).
  • Niveles de referencia (Bajo/Moderado/Alto/Muy alto) por umbrales simples de acumulación, no un modelo de amenaza calibrado.
Demografía
SevillaCaicedoniaZarzal
  • Población proyectada del DANE (2018–2042) por municipio, con desagregación urbano/rural y hombres/mujeres.
  • Cruce con el peor nivel de amenaza por deslizamiento registrado en cada municipio.
Conoce tu nivel de exposición
Por veredaCasco Urbano
  • Selector de municipio → vereda (o "Casco Urbano", el núcleo urbano de la cabecera municipal).
  • Mapa enfocado en la zona elegida con las cuatro amenazas y sus pronósticos disponibles como capas independientes.
  • Exportación a PDF del mapa capturado junto con un resumen de las amenazas activas.
Infraestructura
OpenStreetMap
  • Puntos de interés (salud, financiero, gobierno, social, comercial) clasificados desde OpenStreetMap y mostrados junto a cada panel de amenaza.

Fuentes de datos

Vigía no tiene una base de datos propia: cada vista consulta directamente estos servicios públicos, en su mayoría abiertos y sin necesidad de autenticación.

Índices de amenaza

Capas estáticas publicadas en ArcGIS Online por RED LabOT y la Secretaría de Infraestructura del Valle del Cauca — abiertas, sin autenticación.

Índice de susceptibilidad a deslizamientos

RED LabOT

ArcGIS FeatureServer

~11.721 puntos con nivel de susceptibilidad, puntaje y conteos de población y de infraestructura crítica (escuelas, hospitales, farmacias) por punto. Ya no colorea el mapa de deslizamientos (ver el modelo propio, abajo); sigue siendo la fuente de los conteos de población e infraestructura del panel de exposición por nivel de amenaza. Cubre Sevilla y Caicedonia; Zarzal no tiene registros por estar en el valle plano.

Cobertura
Sevilla, Caicedonia
Licencia / términos
Datos abiertos, sin autenticación
Actualización
Capa estática; la app la relee cada hora
Ver servicio
Modelo propio de amenaza por deslizamiento

Vigía (cálculo propio, inspirado en NASA LHASA v1)

Cálculo propio sobre APIs REST abiertas

Combina pendiente del terreno (DEM Copernicus GLO-30, vía la API de elevación de Open-Meteo), distancia a la vía más cercana (red vial de OpenStreetMap/Overpass), distancia a la falla geológica más próxima (capa del SGC, ver la ficha siguiente), distancia al movimiento en masa histórico más próximo (inventario del SGC, ver la ficha siguiente) y una anomalía de lluvia reciente frente a su propia línea base histórica de 3 años (archivo histórico de Open-Meteo), calculado en el centroide de cada vereda. Reemplaza al índice de RED LabOT como fuente del color del mapa de deslizamientos — es un modelo propio de esta app, no un índice oficial publicado, pero documentado y con sus factores visibles en el popup de cada vereda. Ver la sección "Metodología" más abajo para el detalle completo, paso a paso, de cómo se calcula.

Cobertura
Sevilla, Caicedonia, Zarzal (~55 centroides de vereda)
Licencia / términos
N/A — calculado por la app a partir de fuentes abiertas
Actualización
Pendiente y vías cambian poco (cache de 30 días y 6 horas); lluvia recalculada cada hora
Ver servicio
Fallas geológicas — Atlas Geológico de Colombia

Servicio Geológico Colombiano (SGC)

ArcGIS FeatureServer

37 trazas de falla (tipo y nombre, p. ej. "Falla de Cauca-Almaguer") que intersectan el área de estudio. Usada dos veces: como cuarto factor del modelo propio de amenaza (distancia real punto-a-segmento hasta la traza más próxima, 30% del factor estático) y como capa opcional independiente en el mapa ("Fallas geológicas (SGC)"), mostrada como líneas discontinuas con su tipo y nombre en el popup. Encontrada a partir de un enlace compartido por el equipo a datos.sgc.gov.co.

Cobertura
Nacional (recortada al área de estudio)
Licencia / términos
Datos abiertos, sin autenticación
Actualización
Cartografía geológica estática; la app la relee cada 30 días
Ver servicio
Inventario de movimientos en masa

Servicio Geológico Colombiano (SGC)

ArcGIS FeatureServer

55 puntos históricos (deslizamiento, caída, flujo, reptación y deformación gravitacional, con tipo y subtipo, pero sin fecha de ocurrencia confiable) dentro del área de estudio, derivados del inventario nacional SIMMA. Usada dos veces: como quinto factor del modelo propio de amenaza (distancia Haversine al punto más próximo, 30% del factor estático — el mayor peso del factor estático, por ser evidencia directa de inestabilidad pasada) y como capa opcional independiente en el mapa ("Movimientos en masa históricos (SGC)"), mostrada como puntos con su tipo y subtipo en el popup. Solo 55 puntos en toda la zona de estudio: es un complemento a los otros factores, no un sustituto — nunca fue pensada como un catálogo exhaustivo de eventos.

Cobertura
Nacional (recortada al área de estudio)
Licencia / términos
Datos abiertos, sin autenticación
Actualización
Inventario histórico estático; la app la relee cada 30 días
Ver servicio
Amenaza por incendios forestales

RED LabOT

ArcGIS FeatureServer

Polígonos de amenaza por incendio forestal, por vereda rural.

Cobertura
Sevilla, Caicedonia
Licencia / términos
Datos abiertos, sin autenticación
Actualización
Capa estática; la app la relee cada hora
Ver servicio
Susceptibilidad a inundaciones

RED LabOT

ArcGIS FeatureServer

Polígonos de zonificación estática de susceptibilidad a inundación. Sigue siendo el insumo de mayor peso (50%) del modelo propio de amenaza por inundación, donde tiene cobertura; ya no colorea la capa "Modelo propio de inundación" del mapa por sí sola.

Cobertura
Sevilla, Caicedonia
Licencia / términos
Datos abiertos, sin autenticación
Actualización
Capa estática; la app la relee cada hora
Ver servicio
Modelo propio de amenaza por inundación

Vigía (cálculo propio)

Cálculo propio sobre capas ArcGIS abiertas

Combina la clase de zonificación oficial (donde exista, 50%), distancia a la quebrada o río más próximo (capa pública de hidrografía, ver la ficha siguiente, 30%) y planicie del terreno —reutilizando la pendiente ya calculada por el modelo de amenaza por deslizamiento, 20%—, calculado en el centroide de cada vereda. Extiende la zonificación oficial a los tres municipios, incluido Zarzal, con nivel de detalle por vereda. Ver la sección "Metodología" más abajo para el detalle completo, paso a paso.

Cobertura
Sevilla, Caicedonia, Zarzal (69 centroides de vereda)
Licencia / términos
N/A — calculado por la app a partir de fuentes abiertas
Actualización
Zonificación e hidrografía cambian poco (cache de 1 hora y 30 días); pendiente reutilizada del modelo de deslizamiento
Ver servicio
Quebradas y ríos con nombre

RED LabOT

ArcGIS FeatureServer

19 trazas de quebrada o río con nombre (p. ej. "Río Palomino", "Quebrada Morelia") que cubren toda el área de estudio, incluida Zarzal. Usada como segundo factor del modelo propio de amenaza por inundación (distancia real punto-a-segmento hasta la traza más próxima, 30% del puntaje) — es el único factor de ese modelo con cobertura completa en Zarzal. Cada traza también trae un identificador (rivid) que coincide con el esquema de tramos de GEOGLOWS, ya usado en el mismo mapa para el pronóstico de caudal en vivo — un posible cruce futuro, señalado en la metodología pero no implementado todavía.

Cobertura
Sevilla, Caicedonia, Zarzal
Licencia / términos
Datos abiertos, sin autenticación
Actualización
Hidrografía estática; la app la relee cada 30 días
Ver servicio
Sitios críticos (daño vial)

Secretaría de Infraestructura del Valle del Cauca

ArcGIS Server (REST)

94 puntos de daño vial relevados en campo en un único levantamiento (2019-07-15) — información histórica de sitios conocidos, no un monitoreo en vivo.

Cobertura
Sevilla, Caicedonia, Zarzal
Licencia / términos
Datos abiertos, sin autenticación
Actualización
Levantamiento único; releído cada 24 h
Ver servicio

Pronósticos y monitoreo en vivo

Servicios internacionales gratuitos de agencias científicas y ambientales, sin necesidad de clave salvo donde se indica.

Pronóstico de caudal fluvial

GEOGLOWS v2 (ECMWF)

API REST (JSON)

Pronóstico determinístico de caudal por tramo de río, evaluado contra períodos de retorno calculados con el registro retrospectivo histórico del mismo tramo.

Cobertura
Red fluvial global (recortada al área de estudio)
Licencia / términos
Acceso abierto
Actualización
Pronóstico diario; retrospectivo semanal
Ver servicio
Detecciones activas de incendio (VIIRS)

NASA FIRMS (LANCE, EOSDIS)

API CSV (requiere clave gratuita)

Focos de calor casi en tiempo real detectados por los satélites VIIRS (Suomi NPP y NOAA-20/21).

Cobertura
Global (recortada al área de estudio)
Licencia / términos
Datos públicos de la NASA
Actualización
Varias veces al día; la app cachea 15 min
Ver servicio
Humedad del suelo de raíz (SMAP L4)

NASA GIBS (EOSDIS)

WMTS (teselas de imagen)

Mosaico de teselas WMTS de humedad del suelo, usado como pronóstico complementario en el mapa de deslizamientos.

Cobertura
Global
Licencia / términos
Datos públicos de la NASA
Actualización
Compuesto continuo, ~3–4 días de latencia
Ver servicio
Tasa de precipitación (GPM IMERG)

NASA GIBS (EOSDIS)

WMTS (teselas de imagen)

Mosaico de teselas WMTS de precipitación de 2 km, usado como capa satelital en los mapas de inundaciones y precipitación.

Cobertura
Global
Licencia / términos
Datos públicos de la NASA
Actualización
Cada ~30 minutos
Ver servicio
Lluvia acumulada por punto (PRECTOTCORR)

NASA POWER (LARC)

API REST (JSON)

Precipitación diaria puntual por reanálisis MERRA-2 (datos asentados) o GEOS-IT (últimos días, casi en tiempo real) — no es GPM/satelital directo. Consultada una vez por centroide de vereda para el acumulado de 7 días del mapa de precipitación.

Cobertura
Global (recortada al área de estudio)
Licencia / términos
Datos públicos de la NASA
Actualización
Diaria; la app cachea 3 horas
Ver servicio
Lluvia acumulada por estación automática

IDEAM

API REST (Socrata/JSON)

Lecturas de precipitación cada 10 minutos de estaciones automáticas, expuestas en el portal de datos abiertos. Fuente alternativa (junto a NASA POWER) para el modo histórico del mapa de precipitación: más precisa donde hay estación cercana, pero solo 2 estaciones caen dentro de un radio de 20 km del área de estudio (Zarzal y Bugalagrande), sin cobertura en Caicedonia ni buena parte de Sevilla.

Cobertura
2 estaciones dentro de 20 km del área de estudio
Licencia / términos
Datos abiertos de Colombia (datos.gov.co)
Actualización
Cada ~10 minutos; la app cachea 3 horas
Ver servicio
Lluvia mensual del año en curso (archivo histórico)

Open-Meteo

API REST (JSON)

Precipitación diaria por análisis ECMWF IFS HRES (últimos ~2 meses, asimila observaciones reales de estaciones y radiosondas) con reanálisis ERA5/ERA5-Land más atrás en el año — no es una lectura satelital directa. Usada para la línea de comparación del año en curso en el histograma de climatología, en lugar de NASA POWER: su capa casi en tiempo real (derivada de GPM IMERG) mostró sobrestimaciones notables de lluvia en este terreno montañoso durante las pruebas.

Cobertura
Global (recortada al área de estudio)
Licencia / términos
Uso no comercial gratuito, sin clave
Actualización
Diaria, con ligero retraso en los días más recientes; la app cachea 1 hora
Ver servicio
Índice de riesgo de incendio (FWI)

Copernicus GWIS / EFFIS (Comisión Europea, JRC)

WMS

Pronóstico diario del Índice Meteorológico de Incendio (Fire Weather Index), derivado de datos meteorológicos del ECMWF.

Cobertura
Global
Licencia / términos
Política de datos abiertos de Copernicus
Actualización
Pronóstico diario, hasta 7 días
Ver servicio

Demografía y límites administrativos

Fuentes gubernamentales y de datos abiertos usadas para población, veredas y cascos urbanos.

Proyecciones de población municipal

DANE

Descarga estática (Excel), extraída a JSON

Proyecciones y retroproyecciones de población municipal 2018–2042 (modelo cohorte-componente post-censo 2018). Publicado solo como un libro de cálculo nacional de ~930 MB sin API por municipio, así que las filas de Sevilla, Caicedonia y Zarzal se extrajeron una vez y se versionan como JSON estático en el repositorio.

Cobertura
Sevilla, Caicedonia, Zarzal
Licencia / términos
Datos abiertos del Estado colombiano
Actualización
Última publicación: 2025-07-30; sin llamada de red en la app
Ver servicio
Zona urbana (cabeceras municipales)

DANE — Marco Geoestadístico Nacional

ArcGIS FeatureServer

Límites de la cabecera municipal de cada municipio, usados para el pseudo-vereda "Casco Urbano" del selector de exposición.

Cobertura
Sevilla, Caicedonia, Zarzal
Licencia / términos
Datos abiertos del Estado colombiano
Actualización
Límites administrativos estáticos; releído cada semana
Ver servicio
Veredas de Colombia

Esri Colombia (Datos Abiertos)

ArcGIS FeatureServer

Límites administrativos de las veredas rurales de cada municipio.

Cobertura
Sevilla, Caicedonia, Zarzal
Licencia / términos
Datos abiertos, sin autenticación
Actualización
Límites administrativos estáticos; releído cada semana
Ver servicio

Infraestructura

Puntos de interés comunitarios, con la misma filosofía de datos abiertos que el resto de la plataforma.

Puntos de interés (OSM)

OpenStreetMap (API Overpass)

API Overpass (POST)

Comercios, oficinas, y equipamiento de salud, financiero, gubernamental y social, clasificados en cinco categorías para el desglose de "Infraestructura por categoría".

Cobertura
Sevilla, Caicedonia, Zarzal
Licencia / términos
Open Database License (ODbL) — © colaboradores de OpenStreetMap
Actualización
Consultada cada 6 horas
Ver servicio

Riesgo compuesto (multiamenaza)

Sin fuente externa propia — esta categoría solo combina, en el servidor, los cuatro modelos de amenaza que ya alimentan las categorías anteriores.

Riesgo compuesto por vereda

Vigía (cálculo propio, siguiendo la doctrina OMM/GDACS y el estilo del Índice de Riesgo INFORM)

Cálculo propio, composición de las cuatro categorías existentes

Combina el puntaje/nivel de deslizamientos, el puntaje/nivel de inundaciones (modelo propio), el nivel de incendios forestales (AmenazaIncendios, cruzado por centroide de vereda) y el nivel de precipitación (acumulado de 7 días, NASA POWER) en un nivel compuesto (el mayor de los cuatro, normalizado 0–1) y un puntaje compuesto (promedio ponderado 25%/25%/25%/25%, re-normalizado sobre los que resolvieron), más un reporte narrativo en español generado con plantillas de texto deterministas — nunca con un modelo de lenguaje. Ver la sección "Metodología" más abajo para el detalle completo.

Cobertura
Sevilla, Caicedonia, Zarzal (~55 centroides de vereda)
Licencia / términos
N/A — calculado por la app a partir de sus propios modelos
Actualización
Hereda el caché de cada insumo (30 días / 6 horas / 1 hora / 3 horas)
Ver servicio

Metodología: modelo propio de amenaza por deslizamiento

Cálculo propio, no un índice oficial

El color del mapa de deslizamientos ya no proviene de una capa publicada por un tercero, sino de un modelo que esta misma app calcula en el servidor. Sigue, de forma simplificada, la estructura de NASA LHASA v1 (Stanley & Kirschbaum, 2017): un factor estático de susceptibilidad del terreno combinado con un disparador dinámico de lluvia reciente. Esta sección documenta paso a paso qué dato entra en cada cálculo y exactamente cómo se procesa, para que el resultado sea auditable en vez de una caja negra.

1. Pendiente del terreno

Entrada

Elevación del DEM Copernicus GLO-30, vía la API gratuita de elevación de Open-Meteo (sin clave, un valor por coordenada).

Procesamiento

  • Por cada centroide de vereda se consultan 5 puntos: el centroide y sus 4 vecinos cardinales (norte, sur, este, oeste) desplazados ~500 m.
  • Se calcula el gradiente norte-sur y el gradiente este-oeste por diferencias finitas: atan(|Δelevación| / distancia) para cada eje.
  • La pendiente final es el mayor de los dos gradientes, en grados.
  • Para el puntaje, la pendiente se acota a 45°: 45° o más equivale a un puntaje de pendiente de 1.0 (pendiente_score = min(1, pendiente° / 45)).

Open-Meteo no ofrece un endpoint de pendiente directo — se deriva localmente de 5 lecturas de elevación por punto, no de una consulta ya calculada.

2. Cercanía a la vía más cercana

Entrada

Red vial de OpenStreetMap (vías motorway, trunk, primary, secondary, tertiary, unclassified, residential, track y path) para toda el área de estudio, vía la API Overpass.

Procesamiento

  • Una sola consulta Overpass por toda el área de estudio (no por vereda) recupera cada vértice de geometría de cada vía —no solo sus extremos— usando out geom.
  • Para cada centroide se calcula la distancia Haversine al vértice más cercano de toda la red vial recuperada.
  • El puntaje decrece linealmente con la distancia y llega a 0 al superar 1 km: vía_score = max(0, 1 − distancia_km / 1).

Es una aproximación al vértice más cercano, no la distancia exacta punto-a-línea — el error es despreciable porque OSM traza vías con vértices cada pocas decenas de metros, muy por debajo del radio de influencia de 1 km.

3. Cercanía a una falla geológica

Entrada

Trazas de falla del Servicio Geológico Colombiano (SGC), capa "Fallas" del Atlas Geológico de Colombia, publicada como un FeatureServer de ArcGIS público y sin autenticación (tipo de falla y nombre por traza).

Procesamiento

  • Una sola consulta por toda el área de estudio (envolvente de las tres municipalidades) recupera cada traza de falla que la intersecta, con su geometría completa de vértices (esri JSON "paths") — no solo sus extremos.
  • Para cada centroide se calcula la distancia real punto-a-segmento (no al vértice más cercano) contra cada segmento de cada traza, proyectando localmente a kilómetros alrededor de la latitud del punto: se toma el mínimo sobre todos los segmentos de todas las trazas.
  • El puntaje decrece linealmente con la distancia y llega a 0 al superar 2 km: falla_score = max(0, 1 − distancia_km / 2).

A diferencia de la cercanía a vías (donde el vértice más cercano es una aproximación aceptable porque OSM traza vías con vértices muy próximos), las trazas de falla del SGC tienen vértices mucho más espaciados sobre líneas mucho más largas — usar solo el vértice más cercano habría sobrestimado la distancia real a una traza que pasa cerca de un punto entre dos de sus vértices. Por eso este factor sí calcula la distancia real al segmento.

4. Cercanía a un movimiento en masa histórico

Entrada

Inventario nacional de movimientos en masa del SGC (derivado de SIMMA), 55 puntos dentro del área de estudio, cada uno con tipo y subtipo (deslizamiento, caída, flujo, reptación, deformación gravitacional) pero sin fecha de ocurrencia confiable.

Procesamiento

  • Una sola consulta por toda el área de estudio recupera cada punto del inventario que cae dentro de la envolvente de las tres municipalidades.
  • Para cada centroide se calcula la distancia Haversine al punto más cercano de todo el inventario recuperado — a diferencia de las fallas, cada registro aquí es un evento puntual, no una traza continua, así que no hace falta la distancia punto-a-segmento.
  • El puntaje decrece linealmente con la distancia y llega a 0 al superar 2 km: histórico_score = max(0, 1 − distancia_km / 2).

Es evidencia directa de inestabilidad pasada, no un proxy geomorfológico indirecto como los otros tres factores — por eso recibe el mayor peso del factor estático. Pero con solo 55 puntos dispersos y sin fecha en toda la zona de estudio, es un inventario disperso y no exhaustivo, no un catálogo completo de eventos: complementa a los otros factores, no los sustituye.

5. Factor estático combinado

Entrada

Los cuatro puntajes anteriores.

Procesamiento

  • Promedio ponderado: factor_estático = (pendiente_score × 0.35 + vía_score × 0.15 + falla_score × 0.2 + histórico_score × 0.3) / peso_total.
  • Si alguno de los cuatro factores no se pudo calcular para una vereda (falla de red, chunk sin datos), el peso se renormaliza sobre los que sí estén disponibles, en vez de descartar la vereda entera.
6. Disparador de lluvia reciente

Entrada

Precipitación diaria histórica de la API de archivo histórico de Open-Meteo (misma fuente que la climatología del mapa de precipitación), consultada una sola vez por centroide en un rango continuo de varios años.

Procesamiento

  • Índice antecedente actual: suma ponderada por decaimiento de la lluvia diaria de los últimos 15 días, con vida media de 4 días — el día más reciente pesa más que el resto de la ventana (peso = 0.5^(días_atrás / 4)).
  • Línea base histórica: se calcula el mismo índice de 15 días, con la misma fecha de cierre pero retrocedida 1, 2 y 3 años, y se promedian los tres resultados.
  • Razón = índice actual / índice base. Si la base es 0 (sin lluvia histórica registrada en esa ventana), se trata como caso aparte: razón nula, con puntaje 1 si hay lluvia actual o 0 si no la hay.
  • El puntaje del disparador satura en razón = 2 (el doble de lo normal para la época): disparador_score = clamp((razón − 1) / (2 − 1), 0, 1).

Compara contra la propia estacionalidad del punto, no contra un umbral absoluto de milímetros — una tormenta moderada en un mes normalmente seco puede pesar más que la misma tormenta en un mes normalmente lluvioso.

7. Puntaje final y nivel de amenaza

Entrada

El factor estático (paso 5) y el disparador de lluvia (paso 6).

Procesamiento

  • Puntaje final = (factor_estático × 0.6 + disparador_score × 0.4) / peso_total, con la misma renormalización de pesos si alguno de los dos factores falló.
  • El puntaje 0–1 resultante se traduce al esquema de 5 niveles ya usado en toda la plataforma: Muy bajo (< 0.2), Bajo (< 0.4), Medio (< 0.6), Alto (< 0.8), Muy alto (≥ 0.8).
  • Se calcula una sola vez por centroide de vereda (~55 en total entre Sevilla, Caicedonia y Zarzal) al resolver /api/veredas, no por punto de grilla.

Si absolutamente ningún factor resolvió para una vereda, el resultado es nulo en todos los campos — nunca un puntaje inventado — siguiendo la misma convención de "sin datos" que ya usaba la integración de RED LabOT para Zarzal.

Caché por factor

Cada insumo del modelo se cachea de forma independiente, según qué tan rápido cambia — solo la primera solicitud dentro de cada ventana de caché paga el costo completo de recalcular los ~55 centroides.

Elevación / pendiente
30 díasel terreno no cambia
Red vial (Overpass)
6 horasmismo caché que el resto de capas de OpenStreetMap
Fallas geológicas (SGC)
30 díasla cartografía geológica no cambia
Inventario de movimientos en masa (SGC)
30 díases un inventario histórico estático
Lluvia / disparador
1 horalos días más recientes se revisan con nuevas observaciones

Qué no es este modelo

  • No es una calibración validada contra deslizamientos ocurridos en la zona — los pesos y umbrales (0.35/0.15/0.2/0.3, 0.6/0.4, 45°, 1 km, 2 km, 2 km, razón de saturación 2) son elegidos por criterio propio siguiendo la estructura de LHASA v1, no ajustados con datos locales.
  • LHASA v1 usa cinco predictores estáticos; este modelo reproduce tres de ellos (pendiente, vías y fallas geológicas) y suma un cuarto factor propio (movimientos en masa históricos) que LHASA v1 no incluye. Cobertura de suelo (ESA WorldCover) — el único predictor de LHASA que sigue faltando — se evaluó pero se descartó: solo existe como archivo raster satelital (COG/GeoTIFF) sin una API de consulta por punto viable desde una función serverless. Geología/fallas y el inventario histórico se habían descartado por el mismo motivo hasta encontrar sus respectivas capas del SGC, que resultaron ser la excepción: vectores pequeños y directamente consultables, no rásteres.
  • El inventario de movimientos históricos solo tiene 55 puntos en toda la zona de estudio y sin fecha de ocurrencia confiable — es evidencia real de inestabilidad pasada, pero disperso y no exhaustivo. Que una vereda quede lejos de los 55 puntos conocidos no significa que nunca haya tenido un movimiento en masa, solo que ninguno quedó registrado en este inventario.
  • Se calcula en el centroide de cada vereda, no en una grilla densa — una sola pendiente y distancia a vía representan a toda la vereda, a diferencia de los ~11.721 puntos que sí tenía la capa de RED LabOT dentro de su área de cobertura.

Metodología: modelo propio de amenaza por inundación

Cálculo propio, no un índice oficial

La capa "Modelo propio de inundación" del mapa de inundaciones extiende la zonificación oficial de RED LabOT —que solo cubre el área zonificada de Sevilla y Caicedonia— a los tres municipios, incluido Zarzal, calculando un puntaje propio por vereda. La zonificación oficial no se descarta: es, al contrario, el insumo de mayor peso del modelo, donde tiene cobertura.

1. Zonificación oficial

Entrada

Capa pública susceptibilidad_inundaciones (ArcGIS Online, RED LabOT) — polígonos disueltos con 5 clases de susceptibilidad, cubriendo el área zonificada de Sevilla y Caicedonia.

Procesamiento

  • Para cada centroide de vereda se hace una prueba punto-en-polígono (turf) contra los polígonos de zonificación.
  • Si el centroide cae dentro de un polígono, su clase (Muy alta/Alta/Moderada/Baja/Muy baja) se traduce a un puntaje 0–1: zonificación_score = 1 − índice_de_clase / 4 (Muy alta = 1, Muy baja = 0).
  • Si el centroide no cae dentro de ningún polígono —el caso de las 19 veredas de Zarzal— el factor queda sin resolver, no en 0.

Es la única evidencia oficial directa que entra al modelo, por eso recibe el mayor peso individual (50%) — pero se limita a ese 50%, en vez de un peso mayor, precisamente para que una vereda sin esta cobertura (todo Zarzal) no quede con un puntaje degenerado por depender de un solo factor ausente.

2. Cercanía a una quebrada o río

Entrada

Capa pública de hidrografía "Quebradas" (ArcGIS Online, mismo publicador que la zonificación oficial) — 19 cauces con nombre que cubren toda el área de estudio, incluida Zarzal.

Procesamiento

  • Una sola consulta recupera las 19 trazas completas, con su geometría de vértices (esri JSON "paths").
  • Para cada centroide se calcula la distancia real punto-a-segmento (no al vértice más cercano) contra cada segmento de cada traza, misma proyección local a kilómetros que usa el factor de fallas geológicas del modelo de deslizamiento — se toma el mínimo sobre todos los segmentos de todas las trazas.
  • El puntaje decrece linealmente con la distancia y llega a 0 al superar 1 km: quebrada_score = max(0, 1 − distancia_km / 1).

Es el único factor del modelo que efectivamente llega a Zarzal: la capa de hidrografía no tiene el mismo vacío de cobertura que la zonificación oficial.

3. Planicie del terreno

Entrada

El mismo valor de pendiente ya calculado por el modelo de amenaza por deslizamiento (paso 1 de esa metodología), en el mismo centroide.

Procesamiento

  • No se vuelve a consultar la API de elevación: se reutiliza directamente el resultado ya calculado para ese centroide.
  • A diferencia del modelo de deslizamiento, aquí el efecto se invierte — terreno plano cerca de un cauce se inunda con más facilidad; terreno empinado drena en vez de encharcar: planicie_score = 1 − min(1, pendiente° / 8).
  • El puntaje llega a 0 a partir de 8° de pendiente — un umbral mucho más bajo que el de 45° del factor de pendiente del modelo de deslizamiento, porque aquí lo relevante es si el terreno puede retener agua, no si puede colapsar.
4. Puntaje final y nivel de amenaza

Entrada

Los tres factores anteriores.

Procesamiento

  • Promedio ponderado: puntaje_final = (zonificación_score × 0.5 + quebrada_score × 0.3 + planicie_score × 0.2) / peso_total.
  • Si la zonificación oficial no resolvió para una vereda (fuera de su cobertura, o si el propio factor de zonificación falló al cargar), el peso se renormaliza sobre los otros dos — nunca se descarta la vereda entera solo por no tener zonificación oficial.
  • El puntaje 0–1 resultante se traduce al mismo vocabulario de 5 niveles que ya usa la zonificación oficial (Muy alta/Alta/Moderada/Baja/Muy baja), en vez de inventar una escala nueva.
  • Se calcula una sola vez por centroide de vereda (69 en total entre Sevilla, Caicedonia y Zarzal, incluyendo los cascos urbanos) al resolver /api/veredas.

Ninguna vereda queda sin puntaje: incluso sin zonificación oficial, los otros dos factores por sí solos ya producen un resultado no degenerado en toda vereda de Zarzal — es la extensión de cobertura que motivó este modelo.

Caché por factor

Zonificación oficial de inundación
1 horamismo caché que la capa pública original
Hidrografía (quebradas y ríos)
30 díasel curso de un cauce cambia muy lentamente
Pendiente / planicie
reutilizadaes el mismo valor ya cacheado por el modelo de deslizamiento

Qué no es este modelo

  • No es un modelo hidráulico ni hidrológico — no simula caudal, láminas de agua ni tiempos de llegada de una creciente. Es una susceptibilidad relativa por vereda, del mismo tipo que la zonificación oficial que extiende, no un pronóstico de inundación (para eso está el pronóstico de caudal en vivo de GEOGLOWS, ya en el mismo mapa).
  • La capa de hidrografía usada para el factor de cercanía a cauces solo tiene 19 trazas con nombre — es una aproximación a la red de drenaje real, no un mapa completo de todo arroyo o canal menor.
  • Los pesos y umbrales (0.5/0.3/0.2, 1 km, 8°) son elegidos por criterio propio, siguiendo la misma lógica de factores-por-distancia-e-inclinación del modelo de deslizamiento, no ajustados con datos locales de inundaciones ocurridas.
  • Cada traza de cauce de la capa de hidrografía trae también un identificador (rivid) que coincide con el esquema de tramos que ya usa el pronóstico de GEOGLOWS en este mapa — un posible factor dinámico futuro (p. ej. ponderar por el período de retorno en vivo del tramo más cercano), señalado aquí pero no implementado: a diferencia de cada otro insumo de este modelo, que es una sola consulta cacheada, eso implicaría decenas de consultas individuales por tramo en cada solicitud.

Metodología: riesgo compuesto (multiamenaza)

Cálculo propio, no un índice oficial

La capa "Riesgo compuesto" combina las cuatro amenazas que esta app ya modela por vereda —deslizamientos, inundaciones (modelo propio), incendios forestales y precipitación— en una sola evaluación, siguiendo dos enfoques ya usados en la práctica internacional en vez de inventar uno nuevo: la doctrina de la OMM/GDACS de que "la amenaza más alta gobierna" para el nivel de alerta, y la composición ponderada al estilo del Índice de Riesgo INFORM para un puntaje continuo de referencia. El resultado se traduce además al marco de acción Informar/Prepararse/Actuar que ya usa IDEAM en Colombia.

1. Normalización de cada amenaza a 0–1

Entrada

Los cuatro modelos de amenaza que esta app ya calcula por vereda: deslizamientos y inundaciones (cada uno con su propio puntaje 0–1 continuo, ver las metodologías anteriores) e incendios forestales y precipitación (cada uno solo con un nivel de 4 categorías, sin puntaje continuo propio).

Procesamiento

  • Deslizamientos e inundaciones: se reutiliza directamente el puntaje 0–1 ya calculado por cada modelo — nunca se recalcula.
  • Incendios (AmenazaIncendios, 4 niveles: Muy bajo/Bajo/Medio/Alto) y precipitación (4 niveles: Bajo/Moderado/Alto/Muy alto): sin puntaje continuo publicado, se usa el índice ordinal del nivel sobre el total de niveles como puntaje sustituto — la misma técnica que el modelo de inundación ya usa para traducir la clase de zonificación oficial a un puntaje.
  • Incendios se resuelve en el mismo centroide de vereda que los otros tres, mediante un nuevo cruce punto-en-polígono contra la capa AmenazaIncendios (lib/riesgo-compuesto/incendios-join.ts) — un archivo nuevo, no una modificación al mapa de incendios existente.
  • Precipitación reutiliza /api/precipitacion/amenaza en su modo histórico de 7 días con NASA POWER, ya calculado por vereda.

Ninguna de las cuatro amenazas se recalcula desde cero — el módulo compuesto solo importa y combina las funciones ya exportadas por cada categoría existente.

2. Nivel compuesto: la amenaza más alta gobierna

Entrada

Los cuatro puntajes normalizados del paso 1.

Procesamiento

  • Cada puntaje normalizado se traduce individualmente al mismo esquema de 5 niveles usado en toda la plataforma (Muy bajo <0.2, Bajo <0.4, Moderado <0.6, Alto <0.8, Muy alto ≥0.8).
  • El nivel compuesto de la vereda es el mayor de esos cuatro niveles — no un promedio — siguiendo la doctrina de la OMM y GDACS (Global Disaster Alert and Coordination System) de que la amenaza más severa determina la alerta general, sin diluirla con amenazas más tranquilas.
  • La amenaza "dominante" reportada es la que alcanzó ese nivel máximo (en caso de empate entre niveles, la de mayor puntaje normalizado).
3. Puntaje compuesto: promedio ponderado al estilo INFORM

Entrada

Los mismos cuatro puntajes normalizados del paso 1.

Procesamiento

  • Puntaje compuesto = promedio ponderado de los cuatro puntajes, con peso igual de 25% cada uno por defecto — al estilo del Índice de Riesgo INFORM (composición ponderada de componentes de riesgo).
  • Si una amenaza no tiene datos para una vereda (p. ej. incendios fuera de su cobertura en Sevilla/Caicedonia, o precipitación sin lectura válida), su peso se renormaliza sobre las que sí resolvieron — la misma convención de "sin datos nunca inventados" que usa cada modelo individual.
  • Este puntaje no define el nivel compuesto (eso lo hace el paso 2) — solo ordena veredas dentro de un mismo nivel para color de intensidad o priorización relativa.
4. Marco de acción IDEAM y narrativa

Entrada

El nivel compuesto del paso 2.

Procesamiento

  • El nivel se traduce a las tres categorías de acción que IDEAM ya usa en sus boletines públicos: Informar (Muy bajo/Bajo), Prepararse (Moderado), Actuar (Alto/Muy alto).
  • Un reporte narrativo en español se genera con plantillas de texto deterministas (lib/riesgo-compuesto/narrative.ts) rellenadas con los números ya calculados — nunca con un modelo de lenguaje: un resumen de una línea (nivel + amenaza dominante), un desglose por amenaza y un párrafo de exposición demográfica (reutilizando los mismos conteos de población/infraestructura de RED LabOT que ya usa /api/veredas).

Cero riesgo de alucinación y sin necesidad de una nueva integración de IA: es texto de plantilla, no generación de lenguaje.

Caché por insumo

Este módulo no introduce nuevas fuentes externas — cada insumo hereda el caché que ya tenía en su propia categoría.

Deslizamientos e inundaciones
reutilizadamismo caché que cada modelo individual (vía aggregateVeredas)
Incendios forestales (cruce por centroide)
1 horamismo caché que la capa AmenazaIncendios original
Precipitación (NASA POWER, 7 días)
3 horasmismo caché que /api/precipitacion/amenaza

Qué no es este modelo

  • No incluye el pronóstico de caudal en vivo de GEOGLOWS. Ese pronóstico es por tramo de río, no por vereda, y cruzarlo con ~55 veredas exigiría decenas de consultas de identificación de tramo en vivo por solicitud — una integración pesada y frágil fuera del alcance de esta primera versión. La amenaza "inundaciones" en el riesgo compuesto es, en cambio, el modelo propio de inundación por vereda (zonificación + cercanía a cauce + planicie del terreno) que ya representa esa amenaza en las otras tres categorías.
  • No usa un modelo de lenguaje ni la puerta de enlace de IA de esta app. El reporte narrativo es texto de plantilla determinista, relleno con los mismos números que ya se muestran en el mapa y el panel — nunca generación libre.
  • Los pesos iguales de 25% por amenaza y los umbrales de nivel (0.2/0.4/0.6/0.8) son una elección de diseño razonable, no una calibración validada contra eventos multiamenaza ocurridos en la zona — igual que cada modelo individual que combina.
  • Incendios y precipitación no tienen un puntaje continuo propio publicado, así que su contribución al puntaje compuesto es una aproximación ordinal (índice de nivel entre los niveles totales), no una medida continua nativa como sí lo son deslizamientos e inundaciones.

Arquitectura

Cómo está construida la plataforma, de la interfaz al dato.

Framework y renderizado

Next.js 16 (App Router) con React 19 y TypeScript. Las páginas son Server Components por defecto; los mapas y controles interactivos se marcan "use client" solo donde necesitan estado o efectos del navegador.

Acceso a datos, sin base de datos propia

Cada fuente externa tiene un módulo server-only en lib/<amenaza>/client.ts que llama directamente a su API/WMS/WMTS pública. No hay capa de persistencia: la app es una capa de agregación en vivo sobre servicios públicos ya existentes.

Rutas de API y hooks de datos

Cada módulo servidor se expone mediante una ruta en app/api/**/route.ts, que envuelve el resultado en un sobre JSON consistente ({ data } o { error }) con manejo de errores. Los componentes cliente consumen esas rutas con hooks de SWR (lib/**/use-*.ts) para caché y revalidación en el navegador.

Estrategia de caché

El caché de fetch de Next (next: { revalidate }) se ajusta por fuente según qué tan rápido cambia: FIRMS cada 15 min, capas de ArcGIS cada hora, límites administrativos cada semana, y las proyecciones del DANE no hacen ninguna llamada de red — se leen de un JSON estático versionado en el repositorio.

Mapas

Leaflet y react-leaflet, importados dinámicamente con next/dynamic({ ssr: false }) para evitar que el renderizado en servidor choque con las dependencias de window/document de Leaflet. Cada amenaza combina GeoJSON, CircleMarker, TileLayer, WMSTileLayer e ImageOverlay según la forma de su fuente.

Estilos y sistema de diseño

Tailwind CSS v4 con tokens de diseño definidos en app/globals.css (escalas de color en oklch por amenaza/categoría), componentes de shadcn/ui sobre primitivas de Base UI, y next-themes para el tema claro/oscuro/sistema.

Ventanas emergentes sin barra de navegador

lib/open-info-popup.ts abre vistas de referencia auxiliares (Demografía, Conoce tu nivel de exposición) en una ventana emergente sin menú, barra de herramientas ni barra de direcciones — para no interrumpir el mapa en vivo que el usuario tenía abierto. La documentación, en cambio, abre en una pestaña normal del navegador porque es contenido extenso pensado para desplazarse, imprimirse o guardarse como marcador.

Exportación a PDF

El botón "Exportar como PDF" del selector de exposición usa html2canvas-pro para capturar el mapa como imagen (se eligió sobre el html2canvas original, sin mantenimiento, porque este último no soporta las funciones de color CSS modernas —lab()/oklch()— que usan los tokens de Tailwind v4) y jsPDF para componer el documento final.

Despliegue

Vercel. Vercel Analytics solo se activa en producción (process.env.NODE_ENV === 'production').

Licencia y uso del código

El repositorio de Vigía es público para que cualquiera pueda leer su código, auditarlo y aprender de él, creado por Alejandro Pino (SIG · Director Técnico). La plataforma en sí — el sitio que estás usando — es de uso público y gratuito. El código fuente, en cambio, todavía no tiene una licencia de código abierto: las dependencias que trae la app sí la tienen y se listan a continuación, agrupadas por su propia licencia.

Licencia del proyecto
Todos los derechos reservados

Creado por Alejandro Pino, SIG · Director Técnico (apino@redlabot.org). El repositorio de Vigía es público para consulta y auditoría, pero el código fuente no está bajo una licencia de código abierto: por ahora no se permite usarlo, copiarlo, modificarlo o redistribuirlo sin permiso escrito del autor, mientras se termina de definir y estabilizar su funcionalidad. La plataforma (la aplicación desplegada que ves en este sitio) sí es de uso público y gratuito. El texto completo está en el archivo LICENSE en la raíz del repositorio, e incluye la intención de publicar el código bajo una licencia de código abierto (por ejemplo, MIT) una vez alcance mayor estabilidad.

MIT
23
  • next
  • react
  • react-dom
  • next-themes
  • @base-ui/react
  • @terraformer/arcgis
  • @turf/boolean-point-in-polygon
  • @turf/helpers
  • class-variance-authority (Apache-2.0, ver abajo)
  • clsx
  • cn
  • html2canvas-pro
  • jspdf
  • lucide-react (ISC, ver abajo)
  • recharts
  • shadcn
  • swr
  • tailwind-merge
  • tw-animate-css
  • tailwindcss
  • @tailwindcss/postcss
  • postcss
  • @types/leaflet, @types/node, @types/react, @types/react-dom
BSD-2-Clause
1
  • leaflet
BSD-3-Clause
2
  • @mapbox/vector-tile
  • pbf
Apache-2.0
2
  • class-variance-authority
  • typescript
ISC
1
  • lucide-react
MPL-2.0
1
  • @vercel/analytics
Hippocratic-2.1
1
  • react-leaflet
Licencias de los datos
  • OpenStreetMap — Open Database License (ODbL). Todo uso debe atribuir a © colaboradores de OpenStreetMap.
  • NASA (FIRMS, GIBS) — datos públicos financiados con fondos federales de EE. UU., de libre uso y redistribución.
  • Copernicus (GWIS/EFFIS) — bajo la política de datos gratuitos, plenos y abiertos del programa Copernicus de la Unión Europea.
  • DANE y Esri Colombia — datos abiertos publicados por el Estado colombiano y su red de datos abiertos.
  • GEOGLOWS (ECMWF) — acceso abierto a través de su API pública v2.
  • RED LabOT — índices de susceptibilidad publicados abiertamente en ArcGIS Online; ver redlabot.org para sus términos de atribución.