Pharos — Inteligencia Territorial
[ Completado · 2026 ]
Código: github.com/CBaezaT/pharos-demo
Resumen Ejecutivo
Plataforma de inteligencia territorial que centraliza alertas de emergencia (sismos, incendios, inundaciones, remociones en masa, contaminación) sobre un modelo geoespacial en PostGIS, con API en tiempo real y dashboard interactivo. Desarrollado como trabajo del Magíster en Ciencia de Datos para la Innovación (MACI), aplicado al caso de la Región del Biobío.
Resultado Principal
Cada alerta nueva se enriquece automáticamente y en el momento de su creación con el contexto territorial que la rodea — hospitales cercanos, historial geológico, áreas protegidas, sitios de riesgo — resuelto con funciones espaciales PostGIS, sin intervención manual.
Contexto y Problema
Municipios y organismos de emergencia en Chile gestionan alertas de forma fragmentada — planillas, mensajería, sistemas sin componente geoespacial. No existe correlación automática entre un evento y el contexto territorial que lo rodea.
Sin correlación espacial
Alertas registradas como coordenadas sueltas, sin cruce con infraestructura o riesgo circundante
Fuentes fragmentadas
Datos públicos (SERNAGEOMIN, MINSAL, CONAF, MMA) dispersos en formatos distintos, sin integrar
Sin tiempo real
Los cambios de estado no se propagan instantáneamente a quienes deben verlos
Datos y Arquitectura
Fuentes públicas integradas
- 33 comunas / 3 provincias — límites administrativos oficiales
- 21 hospitales — MINSAL / DEIS
- 124 eventos históricos de remoción en masa — SERNAGEOMIN
- 45 áreas protegidas — CONAF, Registro Nacional de Áreas Protegidas
- 547 sitios con potencial de contaminación — Ministerio del Medio Ambiente
Decisiones de Arquitectura
Motor de correlación: PostgreSQL + PostGIS, sin Kafka/Spark prematuro
Sin ORM: SQL directo para control total de funciones geoespaciales
Ontología propia: 7 categorías × 13 tipos de alerta con umbral configurable
comuna_desde_punto(): resuelve comuna por contención, fallback a 10 km
Hitos Técnicos
Ontología de alertas + motor de reglas
Categoría → tipo → regla → alerta, con umbral y severidad automática
Autenticación JWT + roles
Refresh token rotante — invalida el anterior en cada uso
WebSockets en tiempo real
Socket.io con autenticación en el handshake — sin ventana de datos sin auth
Creación de alertas desde el mapa
Clic → formulario → comuna autoasignada por PostGIS
Enriquecimiento espacial automático [ Núcleo del sistema ]
4 funciones PostGIS resueltas en el momento de creación
Hospitales cercanos, remociones históricas cercanas, contención en área protegida, sitios contaminantes cercanos — todo adjunto a la respuesta y al evento WebSocket
Aprendizajes y Alcance
Manejo de Datos Públicos
- ETL idempotente sobre formatos heterogéneos (SHP, GPKG, GeoJSON)
- Normalización de nombres y códigos oficiales de comuna
- Simplificación de geometría para la versión demo pública
Seguridad y Tiempo Real
- Auth verificada antes de abrir la conexión WebSocket
- Un solo proceso/puerto para REST y WS — sin CORS extra
- Roles diferenciados (viewer a superadmin)
Qué no incluye esta versión
- Clasificador LLM de texto libre → alerta (diseñado, no implementado)
- Polígonos dinámicos y su ciclo de vida temporal
- Notificaciones por email/webhook y suscripciones por zona
Versión publicada
- Dataset reducido y con atribución explícita a cada fuente
- Alertas de demostración ficticias, no eventos reales
- Sin credenciales ni datos de un entorno productivo
Stack Tecnológico
Valor del Proyecto
Para el MACI
Aplicación práctica de modelado geoespacial, diseño de ontologías de datos y sistemas en tiempo real a un caso real de gestión de riesgo territorial.
Para Ingeniería de Datos
Arquitectura reproducible que combina PostGIS, APIs en tiempo real e integración de múltiples fuentes públicas heterogéneas, sin frameworks innecesarios.
Habilidades Demostradas
Diseño de ontologías, funciones espaciales PostGIS, WebSockets autenticados, APIs REST, ETL sobre datos geoespaciales oficiales.