Un satélite que pasa sobre Boyacá ve el calor. Nada más que el calor: un cuadro de 375 metros de lado que está más caliente que sus vecinos, una coordenada y una hora. No sabe quién vive debajo de ese cuadro, ni cuántos techos hay, ni si a un kilómetro había un colegio abierto esa mañana.
El sábado 19 de septiembre empezó a arder el cerro San Marcos, encima de Villa de Leyva. El lunes por la mañana abrí el visor de CENTINELA sobre esa ladera y le hice clic justo encima de donde ardía. El panel me devolvió cuántas personas viven ahí, cuántas edificaciones hay, si hay un colegio o un puesto de salud, y qué vegetación estaba ardiendo. Tardó lo que tarda en abrirse una ventanita.
Nada de eso lo calculó CENTINELA en ese momento. Estaba escrito desde semanas antes del incendio, y de eso va este post: de lo que salió en la pantalla ese lunes y del trabajo que hay detrás de que saliera tan rápido. Si te toca el riesgo de un municipio, te puedes llevar la forma de tener esa misma respuesta lista antes de necesitarla.
Lo que salió al hacer clic
El visor parte el continente en celdas hexagonales iguales, que en el mapa ves encenderse, y de cada una ya sabe de antemano lo que hay debajo (el post de sismos cuenta cómo).
El archivo que alimentaba el visor esa mañana salió a las 13:21:53 UTC y recoge lo detectado en las veinticuatro horas anteriores. A menos de ocho kilómetros de la Plaza Mayor había diecinueve celdas encendidas y 113 detecciones repartidas entre ellas. La más cercana a la plaza quedaba a 1,32 km.
Debajo de esas diecinueve, lo que ya estaba contado: 88 personas y 43 edificaciones. Ningún colegio y ningún puesto de salud. El archivo trae además 2,1 kilómetros de vía, aunque esa cifra el panel no la pinta.
Las 88 personas no son afectados. Son lo que un modelo de población estima que vive bajo esa superficie un día cualquiera, y nadie las contó una por una esa mañana. El cero de colegios y de puestos de salud tampoco significa que no los haya: significa que nadie ha mapeado uno ahí en OpenStreetMap, que es de donde sale ese dato. Es una ausencia de registro y hay que leerla como tal. Los inventarios oficiales de salud y educación (el REPS y el del Ministerio de Educación) se quedaron fuera porque traen código DIVIPOLA y dirección, no coordenadas.
Sobre qué estaba ardiendo: 82 % de pastizal, 17 % de arbolado y medio punto de suelo construido. Esa proporción sale de ocho de las diecinueve celdas, las que cargaban el 32,9 % de la energía; las otras once están ladera arriba y no tenían ese dato calculado, así que el reparto verdadero tira más hacia el arbolado de lo que dice el panel. Importa porque un incendio en pasto y uno en bosque no avanzan igual ni se combaten igual.
Panel de CENTINELA sobre el cerro San Marcos el 21 de septiembre a las 13:21:53 UTC: diecinueve celdas encendidas con 113 detecciones; bajo ellas, 88 personas estimadas, 43 edificaciones, 2,1 km de vía y ningún colegio ni puesto de salud; y un reparto del suelo de 82 % pastizal y 17 % arbolado
Volví esa noche y el fuego había bajado
Abrí otra vez el visor con el archivo de las 22:14 UTC. Las celdas encendidas habían bajado a nueve, las detecciones a 29, y la potencia radiativa, que es la energía que el sensor mide saliendo de las llamas, de 3.865 a 262 megavatios. La más cercana se había alejado a 2,48 km de la plaza. Debajo ya no quedaba ninguna persona estimada.
Nadie recalculó nada entre las dos lecturas. El satélite volvió a pasar, el sistema volvió a preguntarle a la misma tabla y el panel contó otra cosa.
Lo cual quiere decir, de paso, que las cifras de la mañana no servían por la noche. El archivo se rehace cada seis horas y cada corte reemplaza al anterior. Además, una sola llama grande produce varias filas en el archivo, y sumarlas como si fueran fuegos distintos es el error más fácil de cometer con este dato.
La jornada que ese día no tienes
Imagina ahora que ese panel no existe y que alguien te pide esas mismas cifras con el cerro ardiendo.
Bajas las detecciones del día. Consigues un ráster de población. Descargas las edificaciones y las vías. Buscas dónde están las sedes de salud y las educativas. Traes la cobertura del suelo, que es lo que te dice si lo que arde es pasto o es arbolado. Y ahí empieza la parte larga, porque ninguno de esos cinco archivos se junta con el otro tal como viene: un ráster, unos puntos, unas líneas y un mosaico llegan en proyecciones distintas y con resoluciones distintas, así que antes de poder sumar nada hay que llevarlos a un mismo sistema de coordenadas y decidir sobre qué pedazo de terreno los sumas.
Una jornada de trabajo, para un solo evento, y caduca en seis horas. Con el cerro ardiendo, esa jornada no la tienes.
Por qué la respuesta ya estaba
Ese trabajo ya lo había hecho, sin ningún incendio encima. El resultado es la tabla de exposición: una tabla donde cada celda del mapa ya trae escrito cuántas personas viven ahí, cuántas edificaciones hay, cuántos kilómetros de vía la cruzan, si tiene un colegio o un puesto de salud, y qué cubre el suelo. La tengo armada para diecinueve países.
Cuando entra un evento, lo único que hace el sistema es preguntar qué filas de esa tabla toca la geometría del fuego. La ladera del San Marcos llevaba semanas medida, sin que nadie supiera que iba a arder. La tabla tampoco nació para incendios, y no hubo que cambiarle una fila para que sirviera.
El resto es lo que hace que siga ahí el día en que hace falta. Los archivos de focos de calor que publica NASA FIRMS son estáticos y no piden llave. El cómputo lo hace DuckDB sobre Parquet dentro del propio proceso, así que no hay base de datos que administrar. El visor es MapLibre sobre GitHub Pages, sin credenciales de por medio. Y si mi cuenta desapareciera mañana, make country ISO=COL reconstruye la tabla de cualquiera de los diecinueve desde fuentes públicas, con un comando.
El lunes, mientras yo abría el visor desde un escritorio, 207 efectivos y cerca de 200 voluntarios llevaban dos días en ese cerro. El incendio lo apagaron ellos.
Las hectáreas y el estado de la emergencia los publicó la Gobernación de Boyacá: 290 hectáreas y 50 % de control en el corte de las seis de la tarde del domingo. Esa es la cifra que hay que citar.
Lo que falta, y lo que viene
Villa de Leyva fue una demostración. Lo que me importa es la próxima vez, y da igual dónde sea: el mismo clic funciona hoy sobre un cerro de Ayacucho, sobre la selva del Petén o sobre el monte bajo de Sonora, porque la tabla de esos países está armada igual que la de Colombia. No hace falta que yo esté mirando.
Faltan dos mejoras, y las dos están escritas en una rama que todavía no mezclo. Una es que una celda con fuego sepa en qué país está sin tener que preguntárselo a la tabla. La otra, que la cobertura del suelo se lea también donde aún no hay exposición medida, que son esas once celdas ladera arriba que quedaron sin repartir.
De la primera, un revisor encontró esta semana un problema que yo no había visto: resuelve el país por cercanía, y por cercanía un fuego que arde justo en la raya puede salir asignado al vecino. En el Putumayo, con el Ecuador enfrente, eso decide en el informe de qué país acaba saliendo ese fuego. Así que esa mejora no entra hasta que deje de adivinar.
Ábrelo sobre tu municipio
Abre el visor, busca tu municipio y haz clic donde quieras. Donde haya fuego, el panel te dice quién vive debajo, cuántas edificaciones hay y si aparece algún colegio o puesto de salud. Si hoy no arde nada cerca de tu municipio, mira el de alguien más: la tabla que contesta eso ya está escrita para los diecinueve países.
Si conoces un colegio en esa ladera que no aparece en el mapa, dime dónde queda y lo subimos a OpenStreetMap.
Cómo funciona la capa de fuego por dentro, en el post de incendios; cómo armé esa tabla, en el de sismos. El detalle del proyecto está en su ficha, el código en el repositorio y la capa en vivo en el visor.
