Ficha técnica de proyecto
Logística y transporte por carretera · Plataforma de datos e inteligencia territorial
Observatorio de Riesgo Vial
Plataforma que reúne 44 fuentes públicas sobre las rutas argentinas y estima, por tramo de 10 km, la probabilidad de corte en las próximas horas.
- Tipo
- Producto propio
- Periodo
- Desde agosto de 2026
- Estado
- En producción · En servicio interno 24/7
- Áreas
- Desarrollo de software, Datos y analítica, Inteligencia artificial
- Categorías
- Software y plataformas, Datos e inteligencia, Inteligencia artificial, Automatización
Alcance
Las rutas argentinas se cortan por crecidas, nevadas, incendios u obras, y la información para preverlo existe, pero repartida entre decenas de organismos con formatos distintos. El Observatorio ingiere 44 fuentes públicas, guarda cada documento original sin modificarlo, extrae observaciones con reglas y, solo donde el texto no tiene estructura, con Claude, y las consolida en eventos. Un motor de reglas versionado combina unas 18 señales y publica, para cada uno de los 20.345 tramos de 10 km y cinco ventanas de 6 horas a 7 días, un nivel de riesgo con su evidencia. Funciona 24/7 en un servidor propio; las métricas de acierto todavía no son calculables.
Funciones principales
- Mapa de hechos y predicciones. El mapa se abre eligiendo qué se mira, hechos reportados o predicciones del motor, con un interruptor siempre visible para no confundirlos. Muestra solo lo vigente, sin eventos vencidos ni revocados, y un panel de capas para combinar eventos, observaciones y predicciones.
- Riesgo por tramo y ventana. Cada tramo de 10 km recibe un estado INFO, WATCH, WARNING o CRITICAL para ventanas de 6, 12, 24, 72 y 168 horas, con su probabilidad y la evidencia que la sostiene, enlazada a la versión exacta de cada evento usado.
- Eventos consolidados con historial. Las observaciones de varias fuentes sobre un mismo hecho se agrupan en un evento con nivel de confianza y contradicciones resueltas por jerarquía de autoridad. La base guarda cada versión, de modo que se puede ver qué sabía el sistema en cada momento.
- Salud de fuentes y cobertura. Cada conector muestra sus corridas, errores, cuota consumida y estado del cortacircuito. La pantalla de cobertura explica qué eventos no llegan a ningún tramo y por qué: sin ubicación, geometría lejana o ruta sin kilómetro oficial.
- Alertas con formato CAP. Las amenazas que suben de nivel se agrupan por ruta, necesitan corroboración y respetan un tope para no saturar. Cada alerta guarda su texto congelado y se exporta en CAP 1.2, validado con el esquema de OASIS. El envío por webhook aún no tiene destino.
- Explorador 3D. Un globo Cesium con terreno, separado del mapa operativo, para estudiar el agua y capas geográficas propias importadas en KML. Lo que se sube queda guardado en el servidor y se puede borrar desde la misma pantalla, sin mezclarse con el mapa diario.
- Métricas sin números engañosos. La pantalla de métricas separa eventos anticipados, confianza, acierto y coste de extracción. No publica un porcentaje cuando la muestra es mínima y respeta el bloqueo del backtest, que no da cifras de acierto mientras falte historia.
- Playas de camiones. Los aparcaderos de camiones aparecen con su capacidad y su ocupación. El porcentaje nunca se muestra solo: va con la antigüedad de la lectura y, si el dato es viejo, se ve degradado y con el tiempo que lleva sin actualizarse.
Arquitectura
- Fuentes públicas
- Vialidad Nacional y vialidades provinciales (PDF, HTML y hojas de cálculo) · Alertas del servicio meteorológico (CAP y avisos de corto plazo) · Niveles y pronósticos de ríos · Pasos fronterizos de Argentina y Chile · TomTom Traffic y Open-Meteo · Focos de calor, incendios y sismos · Medios locales por RSS
- Ingesta
- Python 3.12 con httpx, pdfplumber y feedparser · Cuotas por proveedor, cortacircuito y cola de fallos · Extracción por reglas y con Claude (Haiku clasifica, Sonnet extrae) · Validación con Pydantic y caché de respuestas del modelo · APScheduler como servicio supervisado
- Motor y decisión
- Reglas de probabilidad versionadas en YAML · Deduplicación, confianza y contradicción · Propagación de crecidas entre estaciones · Alertas con agrupación, corroboración y exportación CAP 1.2 · Consulta por itinerario y backtest
- Datos
- PostgreSQL 17 con PostGIS · 137 migraciones SQL puras · Triggers de historial de eventos y de cruce con tramos · Red vial de 20.345 tramos de 10 km
- Panel web
- Next.js 15, React 19 y TypeScript · Tailwind 4 y shadcn/ui · MapLibre GL y Cesium · Gráficos en SVG propio · Modo de datos de demostración con escenarios
- Operación
- Servicios de Windows en un servidor propio 24/7 · Copia diaria de la base con rotación · Latido de salud y detector de configuración desactualizada · Script de actualización que solo despliega desde la rama principal
Tecnologías
- Interfaz
- Next.js, React, TypeScript, Tailwind CSS, shadcn/ui, MapLibre GL, Cesium
- Backend
- Python, Pydantic, APScheduler
- Datos
- PostgreSQL, PostGIS
- IA y voz
- Claude (Anthropic)
- Integraciones
- TomTom Traffic
- Calidad
- pytest
Resultados medidos
- 36.087 documentos públicos ingeridos y guardados sin modificar en los primeros 11 días. Fuente: Informe de estado del repositorio (docs/salidas/observatorio-estado-2026-08-25, script medir_estado.py) · 2026-08-25
- 91,6 % de las observaciones extraídas con reglas deterministas, sin modelo de lenguaje. Fuente: Informe de estado del repositorio (30.856 de 33.693 observaciones, medir_estado.py) · 2026-08-25
- 20.345 tramos de 10 km con nivel de riesgo calculado para cinco ventanas temporales. Fuente: Tabla red_vial (migración 024), recuento del informe de estado · 2026-08-25