Volver a Proyectos

Pharos — Inteligencia Territorial

Ingeniería de Datos Geoespacial Arquitectura de Software

[ 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

PostgreSQL 13PostGISExpressTypeScriptSocket.ioMapLibre GLJWTDockerGoogle Gemini (adapter)

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.