Mi ámbito de estudio corresponde a la biología y no a las áreas de geología, geografía, sismología o similares.
Este proyecto ha sido desarrollado con un enfoque estrictamente técnico en ciencia de datos, automatización y sistemas de información geográfica (SIG), con el único propósito de contribuir a la visualización accesible de la información tras los eventos sísmicos del 24 de junio de 2026 en Venezuela.
Los datos cartográficos y de registro se extraen de fuentes oficiales. Esta plataforma es una herramienta de visualización complementaria y de código abierto la cual no debe ser utilizada como sustituto de los canales oficiales de gestión de riesgos ni para análisis geofísicos formales.
Este repositorio contiene una plataforma interactiva e independiente de visualización y análisis estadístico para el seguimiento de los eventos sísmicos en Venezuela. El ecosistema está diseñado bajo una arquitectura híbrida: procesa y compila datos a través de R (leaflet y leaflet.extras2), inyectando interactividad fluida con JavaScript puro (y con ayuda de librerías como Chart.js y Chart.js Box and Violin Plot) y CSS3, lo que elimina por completo la necesidad de un servidor o backend activo en Shiny.
El sistema se encuentra desplegado de manera estática y pública en dos secciones interconectadas por un menú de navegación unificado:
- Contador dinámico de sismos: Un widget flotante que calcula y muestra en tiempo real la cantidad de eventos activos en pantalla, adaptando además la ventana temporal visible en el deslizador.
- Control temporal de rango: Deslizador interactivo de doble control (dual-slider) para restringir dinámicamente los sismos mostrados según intervalos específicos de inicio y fin.
- Control de capas y leyendas: Configuración detallada sobre la tesela base de
CyclOSMy leyendas dinámicas posicionadas estratégicamente para mejorar la UX. - Información sobre sismos y fallas: Al hacer clic sobre un sismo registrado (punto) o sobre una falla (línea), se muestra una ventana emergente (popup) con información sobre la misma.
- Filtrado cruzado: Integración de selectores múltiples (checkboxes) por grupos de magnitud combinados con el filtrado por rangos de fecha.
- Gráficos estadísticos dinámicos: Gráficos optimizados y responsivos que coexisten verticalmente sin comprometer el rendimiento de la pestaña.
- Menú lateral unificado (
sidebar): Un componente fijo (<aside>) presente en ambas páginas para un intercambio inmediato de vistas, con clases activas diferenciadas visualmente. - Cálculo dinámico de pantalla (Calculated CSS): Para evitar que el mapa de Leaflet se corte por el ancho de la barra lateral, se implementó posicionamiento absoluto y restas dinámicas basadas en Viewport Units (
width: calc(100vw - 240px)) para garantizar la accesibilidad completa a la leyenda, los deslizadores y el control de capas.
La evolución técnica de esta visualización se ha beneficiado del intercambio de ideas y el control de calidad por parte de pares académicos, y está bajo constante desarrollo. A continuación, se presenta una lista de sugerencias:
| Sugerido por | Sugerencia | Características |
|---|---|---|
| Mariangel Milano | Filtro desplegable por grupos de magnitud |
|
Para ejecutar este script localmente, asegúrate de tener instalado R o RStudio junto con las siguientes dependencias:
install.packages(c("jsonlite", "httr2", "lubridate", "tidyverse", "sf", "leaflet", "leaflet.extras2", "leaflegend", "htmlwidgets", "htmltools"))
El ensamblaje del mapa interactivo se ha rediseñado para conservar intacta la clase htmlwidget del mapa. Esto evita degradar el objeto a un tipo genérico shiny.tag y permite usar de forma nativa la función prependContent() de htmlwidgets para inyectar cabeceras, CSS y estructuras HTML antes de renderizar:
## Visualización en Leaflet ----
objeto_mapa <- leaflet(elementId = 'mapa-dashboard', width = '100%', height = '100%') |>
addProviderTiles('CyclOSM')) |>
# ... [Configuración de sismos, filtros y popups] ...
onRender(js_contador) |>
# Acoplar la lógica de filtrado por niveles de magnitud
onRender(js_filtro_magnitud)
## Metadatos ----
source('html/metadatos.R')
## Estilos CSS adicionales ----
source('css/estilos_css.R')
## Ensamblar página con el resto de elementos ----
mapa_con_meta <- objeto_mapa |>
# Adjuntar metadatos de cabecera (desde tu archivo metadatos.R)
prependContent(metadatos) |>
# Adjuntar CSS externo y estilos estructurales dinámicos
prependContent(
tags$head(
tags$link(rel = "stylesheet", href = "css/estadisticas_estilos.css"),
tags$style(HTML("
body {
display: block !important;
margin: 0;
padding: 0 0 0 240px !important;
background-color: #f8f9fa !important;
height: 100% !important;
width: 100% !important;
overflow: hidden !important;
}
/* Apuntamos directamente al ID del contenedor del mapa */
#mapa-dashboard {
width: calc(100vw - 240px) !important;
height: 100vh !important;
}
/* Ajuste responsivo directo para el mapa en dispositivos móviles */
@media (max-width: 768px) {
body {
padding: 0 !important;
overflow-y: auto !important;
}
#mapa-dashboard {
position: relative !important;
width: 100vw !important;
height: calc(100vh - 120px) !important;
}
}
"))
)
) |>
# Adjuntar la estructura HTML de la barra lateral (se renderiza antes del mapa en el body)
prependContent(html_sidebar)Los datos que alimentan esta visualización provienen de Terremoto Venezuela.
- Proveedor principal de datos: FUNVISIS (Fundación Venezolana de Investigaciones Sismológicas).
- Plataforma del dashboard: Alojado por Esri Venezuela a través de su Programa de Respuesta a Desastres (DRP).
- Enlace al dashboard original: Monitoreo Sísmico Venezuela.
Fundación Venezolana de Investigaciones Sismológicas (FUNVISIS). (2026). Monitoreo Sísmico Venezuela [ArcGIS Dashboard]. Distribuido por Esri Venezuela Programa de Respuesta a Desastres (DRP). Obtenido de https://disastersesriven.maps.arcgis.com/apps/dashboards/8457c6fde45c4b9e921aff896474bc47