Upgrade to Pro — share decks privately, control downloads, hide ads and more …

VIGÍA-EEW

 VIGÍA-EEW

Alertas sísmicas en tiempo real, imposibles de ignorar

Avatar for Ernesto Crespo

Ernesto Crespo

July 17, 2026

More Decks by Ernesto Crespo

Other Decks in Technology

Transcript

  1. El problema • Una notificación de escritorio normal se silencia

    con “No molestar”, se cierra con un clic accidental o queda tapada por otras ventanas. • En una emergencia sísmica, eso es exactamente lo que no puede pasar. • Nace tras el terremoto de Venezuela de junio de 2026: la necesidad de una herramienta autoalojada, gratuita y robusta que cada máquina corra por su cuenta. • Según la distancia al epicentro, la alerta puede llegar antes de las ondas sísmicas más destructivas; y si no, garantiza que el evento no se pierda y quede registrado.
  2. ¿Qué es Vigía-eew? Un agente de escritorio que monitorea sismos

    en tiempo real y dispara una alerta que no se puede ignorar ni cerrar por accidente. 4 fuentes sísmicas → Normaliza · filtra · dedup → Alerta no descartable Sin API keys · sin servicios pagos · sin depender de un teléfono · sin punto único de falla
  3. Features clave Push real (EMSC) WebSocket como canal primario, sin

    polling constante. Respaldo REST USGS y GEOFON reconcilian lo que el push pudiera perder. Alerta no descartable Ventana al frente, con sonido; solo cierra al confirmar. Filtro geográfico Radio, magnitud mínima y país; auto- detección por IP. Multiplataforma Linux, Windows y macOS, con arranque automático. TUI headless Dashboard de terminal para servidores sin pantalla.
  4. La alerta no se puede ignorar ACKNOWLEDGED Magnitud · lugar

    · distancia · profundidad · hora local ÚNICO BOTÓN QUE LA CIERRA Ventana topmost, sin decoración, que toma foco y se re- eleva si lo pierde. Sonido con insistencia según severidad, además del toast nativo del sistema. Ni Esc, ni la X, ni un clic afuera la cierran — solo el botón explícito. Cola de alertas: si llegan varias a la vez, se muestran una por una.
  5. Cuatro fuentes de sismos, redundantes Cada máquina consulta las 4

    en paralelo; todo confluye en el mismo pipeline de normalización. EMSC WebSocket · push Canal primario USGS REST · 60 s Respaldo global GEOFON REST · 60 s Red independiente FUNVISIS REST · 60 s Solo Venezuela raw_queue ↓ ↓ Normalizar Filtrar (radio · magnitud · solo hoy) Deduplicar Alertar → → →
  6. EMSC — canal primario (push) European-Mediterranean Seismological Centre — conexión

    WebSocket en tiempo real Transporte WebSocket (wss://seismicportal.eu), no HTTP polling Latencia Empuje real: el evento llega apenas se publica Keepalive Ping cada ~15 s — sin él, el socket muere en silencio Reconexión Perpetua, con backoff exponencial + jitter Mensajes action: create | update — un update corrige sin re-alertar Límite conocido Puede perder mensajes en cortes — por eso existe el respaldo REST
  7. USGS y GEOFON — respaldo global redundante Dos redes internacionales

    independientes, sondeadas por REST cada 60 s con cursor persistido. USGS U.S. Geological Survey (FDSN) FORMATO GeoJSON FRECUENCIA Cada 60 s, cursor por epoch ms ROL Reconciliación — recupera lo que EMSC no entregó GEOFON GFZ Potsdam, Alemania (FDSN) FORMATO Texto delimitado por “|”, no GeoJSON FRECUENCIA Cada 60 s, cursor propio ROL Red totalmente distinta — cubre un blind spot compartido EMSC/USGS
  8. FUNVISIS — cobertura local Venezuela Red Sismológica Nacional — la

    única fuente que capta los sismos pequeños del país • Sin canal push: sondea maravilla.json (el mismo archivo que usa su mapa web) cada 60 s. • Capta sismos M2–M3 que EMSC, USGS y GEOFON —redes con estaciones dispersas en la zona— casi nunca catalogan. • Sin id propio del proveedor: el poller construye uno determinístico (fecha + hora + coordenadas). • Al arrancar, siembra en memoria los ~20 eventos ya publicados sin alertar — solo notifica lo que aparece después. • Endpoint HTTP plano (FUNVISIS no ofrece HTTPS válido); el dato es público.
  9. El primero que reporta gana Cómo se combinan las 4

    fuentes sin duplicar ni desactualizar alertas. Deduplicación cross-source Si dos fuentes reportan el mismo sismo ( 100 km, 90 s, ≤ ≤ ≤ 0.5 de magnitud), la que llega primero se registra y alerta; las siguientes se descartan en silencio — sin importar cuál sea. Filtro “solo hoy” (nuevo) Solo se alertan sismos del día calendario local actual. Falla segura: si la zona horaria configurada es inválida, el filtro queda inerte en vez de silenciar una alerta real. Piso anti-backlog USGS y GEOFON nunca consultan más atrás de la medianoche local — evita traer semanas de historial tras un reinicio. Poda de estado (24 h) Los ids y firmas de deduplicación ya alertados se podan al registrar cada nueva alerta — el estado nunca crece sin límite.
  10. Instalación — paquete precompilado La opción recomendada para uso diario:

    no requiere Python, el binario es autocontenido. Linux • AppImage: chmod +x && ./run • .deb: sudo apt install ./*.deb • .rpm: sudo dnf install ./*.rpm Windows • vigia-eew.exe • Doble clic, o ejecutar desde una terminal macOS • vigia-eew-*.dmg • Abrir y arrastrar a Applications Descargas: github.com/ecrespo/vigia-eew/releases/latest
  11. Instalación desde código fuente y arranque automático Desde código fuente

    (Python 3.11+) git clone https://github.com/ecrespo/vigia-eew.git cd vigia-eew uv venv && uv pip install -e . uv run vigia-eew --help Con pip: python -m venv .venv && pip install -e . && vigia-eew --help PyPI (si el release lo publica): pipx install vigia-eew Para desarrollo: pip install -e ".[dev]" habilita pytest, ruff y mypy. Arranque automático al iniciar sesión vigia-eew --install-autostart vigia-eew --uninstall-autostart Linux systemd --user macOS LaunchAgent Windows Tarea programada (schtasks) Probar la alerta sin esperar un sismo real: vigia-eew --simulate
  12. Configuración — config.toml Corre sin configurar nada: valores por defecto

    centrados en Caracas. Al primer arranque, se autogenera desde una plantilla. UBICACIÓN POR DEFECTO Linux ~/.config/vigia-eew/config.toml macOS ~/Library/Application Support/vigia-eew/config.toml Windows %LOCALAPPDATA%\vigia-eew\config.toml ▸ --config <ruta> para usar un archivo específico ▸ Desde el ícono de bandeja: “Edit configuration…” ▸ vigia-eew --check-config valida sin arrancar el agente SIN CONFIGURAR NADA Si se borra o comenta toda la sección [reference], Vigía detecta la ubicación por IP en el primer arranque y la guarda en caché — no vuelve a consultar el servicio después.
  13. Configuración en la práctica [filter] radius_km = 300.0 min_magnitude =

    2.5 today_only = true # RF-40 country_filter = false [sources.emsc] enabled = true [sources.funvisis] enabled = true [notification] sound = true tray_icon = true language = "auto" MODOS DE USO vigia-eew Agente completo: GUI + ícono de bandeja --tui Dashboard headless para servidores por SSH --simulate Inyecta un M6.1 simulado cerca de La Guaira --check-config Valida la configuración y sale
  14. Estado del proyecto 15 fases completadas (desarrollo guiado por specs)

    4 fuentes sísmicas redundantes 3 sistemas operativos con paquete nativo • Supervisor con reinicio automático por backoff — nunca muere por un fallo transitorio. • Gate de calidad en cada fase: pytest + ruff + mypy en modo estricto. • Autoalojado y gratuito: cada máquina corre su propio agente, sin punto único de falla. github.com/ecrespo/vigia-eew