Introducción

En este informe se analiza información proveniente de la aplicación Waze, recopilada de manera colaborativa por sus usuarios. Estos datos registran eventos relevantes para la movilidad, como reportes de peligros, congestión y cierres de vías. La información generada tiene un gran potencial para ser utilizada por las autoridades responsables de la gestión del tránsito, ya que puede integrarse con modelos de patrones puntuales para optimizar el flujo vehicular de manera ágil y segura.

Con el propósito de demostrar este potencial, se seleccionó un subconjunto específico de datos correspondientes a un día en particular, el 26 de septiembre. A partir de esta muestra, se implementaron distintas etapas de la metodología CRISP-DM para desarrollar un análisis estructurado que permita extraer conclusiones útiles para la mejora de la movilidad.

Carga de Datos y Librerías

Para realizar este análisis, se llevó a cabo la lectura de los datos provenientes de la API de Waze correspondientes al día 26-09-2024, con el objetivo de identificar los diferentes eventos reportados por los usuarios. Estos datos serán utilizados para desarrollar modelos predictivos basados en dichos eventos.

En primer lugar, se instalan y cargan las librerías necesarias. Posteriormente, se procede a leer y procesar los datos del archivo Excel que contiene la información. Durante el procesamiento inicial, se formatea la fecha y se traducen los nombres de los eventos al español para facilitar su interpretación y análisis.

library(readxl)            # readxl: Para la carga de datos desde archivos Excel.
library(dplyr)             # dplyr: Para la manipulación y transformación de datos.
library(lubridate)         # lubridate: Para el manejo y procesamiento de fechas y tiempos.
library(leaflet)           # leaflet: Para la creación de mapas interactivos.
library(sf)                # sf: Para trabajar con datos geoespaciales.
library(mapview)           # mapview: Para la visualización interactiva de mapas.
library(spatstat)          # spatstat: Para el análisis de patrones espaciales y análisis de densidad.
library(terra)             # terra: Para el manejo de datos raster y análisis espacial.
library(leaflet.extras)    # leaflet.extras: Para añadir funciones adicionales a los mapas de leaflet
library(ggplot2)           # ggplot2: Para la creación de gráficos y visualizaciones.
library(leafsync)          # leafsync: Para la sincronización de múltiples mapas interactivos.
# Cargar los datos de Waze
Trama_Waze = read_excel("C:/Users/vicod/Documents/Maestria/analisis de datos espaciales y geograficos/ACTIVIDAD 4/Trama Waze.xlsx")

# Convertir la columna de fechas a formato adecuado
Trama_Waze$fecha = as.Date(Trama_Waze$creation_Date, format ="%Y-%m-%d %H:%M")

# Cambiar los nombres de los tipos de eventos a español
Trama_Waze$tipo_evento <- recode(Trama_Waze$type,
                                 "ACCIDENT" = "ACCIDENTE",
                                 "HAZARD" = "PELIGRO",
                                 "JAM" = "CONGESTIÓN",
                                 "ROAD_CLOSED" = "VÍA CERRADA")

Distribución de los Eventos

Una vez cargados los datos, se procede a verificar la distribución de los mismos mediante una tabla de contingencia y un gráfico de barras, que se presentan en la siguiente sección. Este análisis permite identificar los eventos más reportados por los usuarios, lo que contribuye a una mejor comprensión del problema y a priorizar los aspectos más relevantes para su análisis y modelado.

# Cargar la librería lubridate
library(lubridate)

# Convertir la fecha y extraer la hora y el día
fecha_hora = ymd_hms(Trama_Waze$creation_Date)
hora = hour(fecha_hora)
dia = day(fecha_hora)

# Agregar la columna de hora a los datos
Trama_Waze$hora = hora

# Mostrar la tabla de frecuencia de tipos de eventos
table(Trama_Waze$tipo_evento)
## 
##   ACCIDENTE  CONGESTIÓN     PELIGRO VÍA CERRADA 
##         125        3205         719        1021
# Calcular la frecuencia de cada tipo de evento en Trama_Waze
frecuencia_eventos <- Trama_Waze %>%
  group_by(tipo_evento) %>%                 # Agrupar por tipo de evento
  summarise(Frecuencia = n()) %>%     # Contar la frecuencia de cada tipo
  arrange(desc(Frecuencia))           # Ordenar por frecuencia descendente

# Crear un gráfico de barras con ggplot2 usando los datos de Trama_Waze
ggplot(frecuencia_eventos, aes(x = tipo_evento, y = Frecuencia, fill = tipo_evento)) +
  geom_bar(stat = "identity") +
  theme_minimal() +
  labs(title = "Distribución de Tipos de Eventos en Trama Waze", 
       x = "Tipo de Evento", y = "Frecuencia") +
  theme(axis.text.x = element_text(angle = 45, hjust = 1)) +  # Rotar etiquetas para mejor visualización
  scale_fill_brewer(palette = "Set2")  # Utilizar una paleta de colores predefinida

Filtrado por Tipos de Evento

Una vez identificados los tipos de eventos y la cantidad de reportes correspondientes al día 26, se procede a filtrar cada uno de estos eventos para realizar análisis separados. Esto permite reducir el número de datos a estudiar y facilita un análisis detallado de cada tipo de evento y sus ubicaciones espaciales.

Eventos de Tipo PELIGRO

En primer lugar, se realiza una separación de todos los eventos clasificados como Peligro, con el objetivo de identificar las zonas de la ciudad donde los conductores enfrentan mayores riesgos. Este análisis es crucial para optimizar la asignación de recursos de vigilancia y asistencia, mejorando la seguridad vial en las áreas identificadas como críticas.

# Identificar eventos PELIGRO del día 26
pos <- which(Trama_Waze$tipo_evento == "PELIGRO" & dia == 26)
peligro26 <- Trama_Waze[pos,]

Visualización de Eventos Peligro

Una vez filtrados los eventos clasificados como Peligro, estos se visualizan en un mapa mediante clusters. Esta representación facilita su interpretación y geolocalización, permitiendo identificar de manera clara las áreas con mayor concentración de reportes.

# Cargar librerías necesarias para visualización
library(mapview)
library(leaflet)

# Ajustar las coordenadas de latitud y longitud
peligro26$lat <- peligro26$location_y / 10^(nchar(peligro26$location_y) - 1)
peligro26$long <- peligro26$location_x / 10^(nchar(peligro26$location_x) - 3)

# Filtrar eventos dentro del rango geográfico adecuado
peligro26 <- peligro26[peligro26$lat > 4 & peligro26$lat < 5,]

# Crear un mapa interactivo con leaflet
m26_peligro <- leaflet() %>%
  addTiles() %>%
  addCircleMarkers(lng = peligro26$long, lat = peligro26$lat,
                   clusterOptions = markerClusterOptions(),
                   label = peligro26$hora) %>%
  addControl(html = "<h3>Mapa de Riesgos</h3>", position = "topleft")

# Mostrar el mapa
m26_peligro

Análisis Espacial de Riesgo

Se lleva a cabo un análisis espacial de los eventos Peligro reportados el día 26, utilizando herramientas avanzadas como spatstat y terra. El objetivo principal es examinar la distribución geográfica de estos eventos y generar mapas de calor que resalten las áreas de mayor riesgo.

Este análisis permite identificar patrones de concentración y zonas críticas, proporcionando información valiosa para la gestión del tráfico y la planificación urbana.

# Cargar las librerías necesarias
library(leaflet)
library(dplyr)
library(leaflet.extras)

# Filtrar datos relevantes de peligro26
peligro26 <- peligro26 %>%
  filter(lat > 4 & lat < 5, long > -75 & long < -73)  # Ajustar las coordenadas de interés

# Crear un mapa interactivo con leaflet y addHeatmap
leaflet(peligro26) %>%
  addProviderTiles("OpenStreetMap") %>%  # Añadir la capa base del mapa
  addHeatmap(
    lng = ~long, lat = ~lat,               # Especificar las columnas de longitud y latitud
    intensity = ~hora,                     # Intensidad opcional basada en la hora (o cualquier otra variable)
    blur = 20,                             # Nivel de desenfoque del mapa de calor
    max = 0.08,                            # Ajustar el valor máximo para la intensidad
    radius = 15                            # Radio de cada punto en el mapa de calor
  ) %>%
  addLegend("bottomright",                 # Añadir leyenda
            title = "Mapa de Calor de Riesgos",
            colors = c("blue", "green", "yellow", "red"),
            labels = c("Bajo", "Moderado", "Alto", "Muy Alto"))

Mapa de Densidad de Cierres de Vías

Se genera un mapa de densidad para analizar la distribución espacial de los eventos de cierre de vías (Vía Cerrada) reportados el día 26. Este análisis destaca las zonas más afectadas, facilitando la identificación de áreas críticas para planificar desvíos y mejorar la movilidad urbana.

El mapa ofrece una visualización clara de los puntos con mayor incidencia de cierres, proporcionando información clave para que las autoridades optimicen la gestión del tráfico en dichas áreas.

# Filtrar eventos VÍA CERRADA del día 26
pos <- which(Trama_Waze$tipo_evento == "VÍA CERRADA" & dia == 26)
via_cerrada_26 <- Trama_Waze[pos,]

# Ajustar las coordenadas de latitud y longitud
via_cerrada_26$lat <- via_cerrada_26$location_y / 10^(nchar(via_cerrada_26$location_y) - 1)
via_cerrada_26$long <- via_cerrada_26$location_x / 10^(nchar(via_cerrada_26$location_x) - 3)

# Filtrar eventos dentro del rango geográfico adecuado
via_cerrada_26 <- via_cerrada_26[via_cerrada_26$lat > 4 & via_cerrada_26$lat < 5,]

Mapa Interactivo de Cierres de Vías

Se presenta un mapa interactivo, desarrollado con leaflet, que muestra los eventos de cierre de vías (Vía Cerrada) reportados el día 26. Cada marcador en el mapa permite acceder a detalles como la hora y las coordenadas del evento.

Esta herramienta facilita la exploración geográfica de las áreas afectadas, ofreciendo un recurso visual práctico para apoyar la planificación y gestión eficiente del tráfico urbano.

# Cargar librería leaflet
require(leaflet)

# Crear el mapa interactivo
m26_via_cerrada = leaflet(via_cerrada_26) %>%
  addTiles() %>%
  addCircleMarkers(lng = ~long, lat = ~lat,
                   clusterOptions = markerClusterOptions(),
                   label = ~hora) %>%
  addControl(html = "<h3>Mapa de Cierre de Vías<h3>", position = "topleft")

# Mostrar el mapa interactivo
m26_via_cerrada

Análisis Espacial de Cierres de Vías

Se realiza un análisis espacial de los eventos de cierre de vías reportados el día 26, utilizando herramientas como spatstat y terra. Este estudio examina la distribución geográfica y los posibles patrones de concentración de estos eventos.

El análisis proporciona información clave para identificar áreas críticas, facilitando intervenciones inmediatas y una mejor planificación a largo plazo de la movilidad urbana.

# Cargar las librerías necesarias
library(spatstat)

# Definir la zona de interés
zona <- owin(xrange = c(-74.04331, -73.9929), yrange = c(4.885736, 4.948562))

# Crear un patrón de puntos espaciales a partir de los eventos VÍA CERRADA
patron_via_cerrada <- ppp(x = via_cerrada_26$long, y = via_cerrada_26$lat, window = zona)

# Graficar el test de cuadrantes
plot(quadratcount(patron_via_cerrada), main = "Patrón de Puntos y Test de Cuadrantes")

# Superponer los puntos sobre los cuadrantes
points(patron_via_cerrada, col = "red")

# Gráfico independiente: Función K-Estimación
plot(Kest(patron_via_cerrada), main = "Función K-Estimación")

Mapa de Densidad Cierres de Vías

Se crea un mapa de densidad centrado en las áreas con mayor incidencia de eventos de cierre de vías (Vía Cerrada). Este análisis resalta las zonas más afectadas, proporcionando una visión más precisa de las áreas críticas.

El mapa es una herramienta esencial para evaluar el impacto de estos cierres en la movilidad urbana y planificar soluciones eficaces para mitigar su efecto.

# Cargar las librerías necesarias
library(terra)
library(leaflet)
library(spatstat)

# Asegurarse de que el objeto patron_via_cerrada esté correctamente definido
# Crear un patrón de puntos espaciales utilizando los datos correctos (via_cerrada_26)
zona <- owin(xrange = c(-74.04331, -73.9929), yrange = c(4.885736, 4.948562))
patron_via_cerrada <- ppp(x = via_cerrada_26$long, y = via_cerrada_26$lat, window = zona)

# Calcular la densidad espacial
im1 <- density(patron_via_cerrada, sigma = 0.01)  # Ajusta sigma según sea necesario

# Convertir la densidad a un objeto raster usando terra
mapa_via_cerrada <- rast(im1)

# Convertir el raster a data.frame para leaflet
df_via_cerrada <- as.data.frame(mapa_via_cerrada, xy = TRUE)
colnames(df_via_cerrada) <- c("long", "lat", "intensity")

# Normalizar los valores de intensidad entre 0 y 1
df_via_cerrada$intensity <- (df_via_cerrada$intensity - min(df_via_cerrada$intensity)) / 
  (max(df_via_cerrada$intensity) - min(df_via_cerrada$intensity))

# Crear un mapa interactivo usando leaflet
leaflet(df_via_cerrada) %>%
  addProviderTiles("OpenStreetMap") %>%  # Añadir la capa base
  addHeatmap(
    lng = ~long, lat = ~lat,              # Coordenadas de longitud y latitud
    intensity = ~intensity,               # Intensidad normalizada
    blur = 20,                            # Nivel de desenfoque
    max = 1,                              # Valor máximo de la intensidad normalizada
    radius = 15                           # Radio para reflejar la densidad
  ) %>%
  addLegend("bottomright",                # Añadir la leyenda
            title = "Mapa de Calor de Cierres de Vías",
            colors = c("blue", "green", "yellow", "red"),
            labels = c("Bajo", "Moderado", "Alto", "Muy Alto"))

Análisis de Accidentes

Se realiza un análisis específico de los accidentes reportados el día 26, filtrando exclusivamente estos eventos para estudiar su distribución espacial y su impacto en la movilidad.

Este análisis es fundamental para identificar zonas peligrosas y proponer medidas de seguridad vial, como mejorar la infraestructura o añadir señalización en áreas críticas.

# Filtrar eventos de accidentes del día 26
pos <- which(Trama_Waze$tipo_evento == "ACCIDENTE" & dia == 26)
accidente_26 <- Trama_Waze[pos,]

# Ajustar las coordenadas de latitud y longitud
accidente_26$lat <- accidente_26$location_y / 10^(nchar(accidente_26$location_y) - 1)
accidente_26$long <- accidente_26$location_x / 10^(nchar(accidente_26$location_x) - 3)

# Filtrar eventos dentro del rango geográfico adecuado
accidente_26 <- accidente_26[accidente_26$lat > 4 & accidente_26$lat < 5,]

Mapa Interactivo de Accidentes

Se presenta un mapa interactivo que visualiza los accidentes reportados el día 26, utilizando leaflet. Los usuarios pueden hacer clic en los marcadores para obtener detalles de cada evento.

Este mapa es una herramienta útil para analizar la distribución espacial de los accidentes, ayudando a identificar áreas con mayor concentración de incidentes y a planificar mejoras en la seguridad vial.

# Cargar librerías necesarias
library(leaflet)

# Crear el mapa interactivo
m26_accidente <- leaflet(accidente_26) %>%
  addTiles() %>%
  addCircleMarkers(lng = ~long, lat = ~lat,
                   clusterOptions = markerClusterOptions(),
                   label = ~hora) %>%
  addControl(html = "<h3>Mapa de Accidentes</h3>", position = "topleft")

# Mostrar el mapa interactivo
m26_accidente

Análisis Espacial de Accidentes

Se examina la distribución geográfica de los accidentes reportados el día 26 utilizando herramientas como spatstat y terra. Este análisis busca identificar patrones espaciales en su ocurrencia.

Los resultados permiten detectar áreas con mayor incidencia de accidentes, brindando información clave para implementar estrategias de mitigación, como mejoras en la señalización o ajustes en la infraestructura vial para reducir riesgos.

# Cargar las librerías necesarias
require(spatstat)

# Definir la zona de interés
zona = owin(xrange = c(-74.04331, -73.9929), yrange = c(4.885736, 4.948562))

# Crear un patrón de puntos espaciales a partir de los eventos ACCIDENTE
patron_accidente = ppp(x = accidente_26$long, y = accidente_26$lat, window = zona)

# Gráfico combinado: Test de Cuadrantes y Patrón de Puntos
par(mfrow = c(1, 1))  # Asegurarse de que solo haya una gráfica

# Graficar el test de cuadrantes
plot(quadratcount(patron_accidente), main = "Patrón de Puntos y Test de Cuadrantes")

# Superponer los puntos sobre los cuadrantes
points(patron_accidente, col = "red" )

# Calcular la función K-estimación
plot(Kest(patron_accidente))

Mapa de Densidad de Accidentes

Se genera un mapa de densidad para mostrar la distribución de los accidentes ocurridos el día 26, destacando las áreas con mayor concentración. Esto permite identificar zonas de alto riesgo en la ciudad.

El mapa de densidad es esencial para visualizar las áreas más afectadas por accidentes, facilitando la planificación de intervenciones de seguridad vial y revelando patrones espaciales que no se perciben fácilmente en tablas de datos.

# Cargar las librerías necesarias
library(terra)
library(leaflet)
library(spatstat)

# Asegurarse de que el objeto patron_accidente esté correctamente definido
# Usar las coordenadas correctas de los accidentes
zona <- owin(xrange = c(-74.04331, -73.9929), yrange = c(4.885736, 4.948562))
patron_accidente <- ppp(x = accidente_26$long, y = accidente_26$lat, window = zona)

# Calcular la densidad espacial
im1 <- density(patron_accidente)

# Convertir la densidad a un objeto raster usando terra
mapa_accidente <- rast(im1)

# Convertir el raster a data.frame para leaflet
df_accidente <- as.data.frame(mapa_accidente, xy = TRUE)
colnames(df_accidente) <- c("long", "lat", "intensity")

# Normalizar los valores de intensidad entre 0 y 1
df_accidente$intensity <- (df_accidente$intensity - min(df_accidente$intensity)) / 
  (max(df_accidente$intensity) - min(df_accidente$intensity))

# Crear un mapa interactivo usando leaflet
leaflet(df_accidente) %>%
  addProviderTiles("OpenStreetMap") %>%  # Añadir la capa base
  addHeatmap(
    lng = ~long, lat = ~lat,              # Coordenadas de longitud y latitud
    intensity = ~intensity,               # Intensidad normalizada
    blur = 15,                            # Nivel de desenfoque
    max = 0.5,                              # Valor máximo de la intensidad normalizada
    radius = 10                           # Ajustar el radio de los puntos
  ) %>%
  addLegend("bottomright",                # Añadir la leyenda para interpretar el mapa de calor
            title = "Mapa de Calor de Accidentes",
            colors = c("blue", "green", "yellow", "red"),
            labels = c("Bajo", "Moderado", "Alto", "Muy Alto"))

Análisis de Congestión el Día 26

Se analiza la congestión reportada el día 26, filtrando los eventos de congestión para enfocarse exclusivamente en esos reportes. El estudio examina su distribución espacial y temporal.

Este análisis es fundamental para la planificación del tráfico, ya que permite identificar las áreas con mayor densidad de tráfico y los horarios con mayores problemas de movilidad. Estos datos son útiles para optimizar la gestión de semáforos y las rutas alternas.

# Filtrar eventos de congestión del día 26
pos <- which(Trama_Waze$tipo_evento == "CONGESTIÓN" & dia == 26)
congestion_26 <- Trama_Waze[pos,]

# Ajustar las coordenadas de latitud y longitud
congestion_26$lat <- congestion_26$location_y / 10^(nchar(congestion_26$location_y) - 1)
congestion_26$long <- congestion_26$location_x / 10^(nchar(congestion_26$location_x) - 3)

# Filtrar eventos dentro del rango geográfico adecuado
congestion_26 <- congestion_26[congestion_26$lat > 4 & congestion_26$lat < 5,]

Mapa Interactivo de Congestión

Se presenta un mapa interactivo de los eventos de congestión reportados el día 26, utilizando leaflet. Los puntos de congestión se muestran en un mapa, y los usuarios pueden interactuar con los marcadores para obtener más detalles sobre cada evento.

Este mapa es una herramienta útil para explorar visualmente las áreas más afectadas por el tráfico, proporcionando datos valiosos para los planificadores urbanos y las autoridades responsables de la gestión del tráfico.

# Cargar las librerías necesarias
library(leaflet)

# Crear el mapa interactivo
m26_congestion <- leaflet(congestion_26) %>%
  addTiles() %>%
  addCircleMarkers(lng = ~long, lat = ~lat,
                   clusterOptions = markerClusterOptions(),
                   label = ~hora) %>%
  addControl(html = "<h3>Mapa de Congestión</h3>", position = "topleft")

# Mostrar el mapa interactivo
m26_congestion

Análisis Espacial de Congestión

Se realiza un análisis espacial de los eventos de congestión reportados el día 26, utilizando herramientas como spatstat y terra. El objetivo es estudiar la distribución geográfica de estos eventos y detectar patrones recurrentes en ciertas áreas.

Este análisis es clave para identificar las zonas más congestionadas de la ciudad, lo que facilita a las autoridades la toma de decisiones sobre mejoras en la infraestructura o ajustes en las rutas de tráfico para reducir la congestión.

# Cargar las librerías necesarias
library(spatstat)

# Definir la zona de interés
zona <- owin(xrange = c(-74.04331, -73.9929), yrange = c(4.885736, 4.948562))

# Crear un patrón de puntos espaciales a partir de los eventos CONGESTIÓN
patron_congestion <- ppp(x = congestion_26$long, y = congestion_26$lat, window = zona)

# Visualizar el patrón de puntos
par(mfrow = c(1, 1))  # Asegurarse de que solo haya una gráfica

# Graficar el test de cuadrantes
plot(quadratcount(patron_congestion), main = "Patrón de Puntos y Test de Cuadrantes")

# Superponer los puntos sobre los cuadrantes
points(patron_congestion, col = "red")

# Calcular la función K-estimación
plot(Kest(patron_congestion))

Mapa de Densidad de Congestión

Se genera un mapa de densidad para mostrar los eventos de congestión reportados el día 26, destacando las áreas con mayor densidad de tráfico. Esto proporciona una visualización clara de los puntos críticos de congestión en la ciudad.

Este mapa es una herramienta valiosa para los planificadores urbanos y las autoridades de tránsito, permitiendo identificar las zonas más problemáticas y evaluar soluciones para mejorar la fluidez del tráfico.

# Cargar las librerías necesarias
library(leaflet)
library(terra)

# Definir el patrón de puntos
zona <- owin(xrange = c(-74.04331, -73.9929), yrange = c(4.885736, 4.948562))
patron_congestion <- ppp(x = congestion_26$long, y = congestion_26$lat, window = zona)

# Calcular la densidad espacial del patrón de puntos
im1 <- density(patron_congestion)

# Convertir la densidad en un raster utilizando terra
mapa_congestion <- rast(im1)

# Convertir el objeto raster a un data.frame para usarlo en leaflet
df_congestion <- as.data.frame(mapa_congestion, xy = TRUE)
colnames(df_congestion) <- c("long", "lat", "intensity")

# Normalizar los valores de intensidad entre 0 y 1
df_congestion$intensity <- (df_congestion$intensity - min(df_congestion$intensity)) / 
  (max(df_congestion$intensity) - min(df_congestion$intensity))

# Crear un mapa interactivo usando leaflet
leaflet(df_congestion) %>%
  addProviderTiles("OpenStreetMap") %>%  # Añadir la capa base
  addHeatmap(
    lng = ~long, lat = ~lat,              # Coordenadas de longitud y latitud
    intensity = ~intensity,               # Intensidad normalizada
    blur = 35,                            # Incrementar el desenfoque para suavizar el mapa
    max = max(df_congestion$intensity) * 2,  # Ajustar el valor máximo de intensidad
    radius = 25                           # Aumentar el radio para que se vea más suave
  ) %>%
  addLegend("bottomright",                # Añadir la leyenda para interpretar el mapa de calor
            title = "Mapa de Calor de Congestión",
            colors = c("blue", "green", "yellow", "red"),
            labels = c("Bajo", "Moderado", "Alto", "Muy Alto"))

Consolidación de Mapas de Riesgo, Accidentes, Congestión y Cierres Viales

En esta sección, se consolidan los mapas interactivos de eventos de Peligro, Accidentes, Congestión y Cierres de Vías en una sola vista. Esta integración permite comparar los diferentes tipos de eventos en una interfaz única.

La sincronización de estos mapas ofrece a los usuarios una visión completa de los problemas de tráfico y riesgos en la ciudad, facilitando la planificación de soluciones integrales que aborden múltiples eventos de forma coordinada.

# Sincronizar los mapas interactivos de distintos tipos de eventos
leafsync::sync(m26_peligro, m26_accidente, m26_congestion, m26_via_cerrada)

Conclusión

El análisis de los datos de Waze del día 26 proporciona una visión integral de los eventos que afectan la movilidad urbana, como peligros en las vías, congestión, accidentes y cierres de vías. Utilizando herramientas de análisis espacial y mapas interactivos, se identificaron patrones clave en la distribución de estos eventos.

Puntos clave:

  • Frecuencia de eventos: Los trancones y peligros son los eventos más comunes, lo que resalta la necesidad de mejorar la gestión del tráfico y aplicar medidas preventivas en zonas específicas.

  • Zonas críticas: Los mapas de densidad indican áreas con alta concentración de accidentes y cierres de vías, sugiriendo que estas zonas requieren mejoras en infraestructura vial.

  • Congestión: El análisis de la congestión revela áreas con tráfico persistente en horas pico, lo que resalta la necesidad de optimizar semáforos y crear rutas alternativas.

  • Riesgos en las vías: La visualización de eventos de peligro muestra áreas de alto riesgo, lo que sugiere la necesidad de intervenciones en infraestructura y campañas de concientización.