knitr::opts_chunk$set(echo = TRUE, comment = NA)
# 1. Cargar librerĆas
#library(rnaturalearth) # Para obtener mapas a distintas escalas.
library(mapview) # Para la visualización interactiva y rÔpida.
library(leafsync) # Para la sincronización de múltiples mapas.
library(geoR)
library(readxl)
library(raster)
library(gstat)
library(sf) # EstƔndar moderno para datos vectoriales (reemplaza a 'sp').
library(terra) # EstƔndar moderno y eficiente para datos rƔster (reemplaza a 'raster').
library(leaflet) # Para la creación de mapas interactivos.
library(ggplot2)
library(tidyterra)
library(patchwork) # Para combinar grƔficos
library(RColorBrewer)
library(knitr)
library(kableExtra)
library(dplyr) # Para la función %>% (pipe)
library(tidyverse)
library(lubridate) # Para manejar fechas mƔs fƔcilmente
geo_datos = read_delim(
"/Users/jesusposso/Documents/Maestria/2025-2/Proyecto_Aplicado_II/callevent.csv",
delim = "|", # Especifica que el separador es el tabulador
locale = locale(dec = ".",encoding = 'UTF-16') # Especifica que el decimal es la coma
)
# 1. Definir la lista de causas que quieres incluir y el rango de fechas
causas_a_filtrar = c('Desconocida',
'Incidente Cancelado',
'Exc_Vendaval',
'Alta vegetación',
'Descargas atmosfericas')
# Definir el rango de fechas (ejemplo: todo enero de 2024)
fecha_inicio = ymd('2025-01-01') # ymd() es de lubridate
fecha_fin = ymd('2025-12-31') # ymd() es de lubridate
# 2. Pre-procesar la columna de tiempo (Similar al pd.to_datetime)
# AsegĆŗrate de que 'EVENT_TIME' sea un objeto de fecha y hora
geo_datos = geo_datos %>%
mutate(
# Convierte la columna a formato datetime. El argumento 'tz' es opcional.
EVENT_TIME = ymd_hms(EVENT_TIME) # Ajusta la función (ymd, ymd_hms, etc.)
)
# 3. Aplicar el Filtrado y la Selección en una sola cadena de operaciones (pipe)
callevent_Map = geo_datos %>%
# Paso 1: Filtrar todas las condiciones
filter(
# Condición 1: CAUSE en la lista
CAUSE %in% causas_a_filtrar,
# Condición 2 y 3: LATITUDE y LONGITUDE diferentes de 0
LATITUDE != 0,
LONGITUDE != 0,
# Condición 4: EVENT_TIME dentro del rango de fechas
EVENT_TIME >= fecha_inicio,
EVENT_TIME <= fecha_fin
) %>%
# Paso 2: Seleccionar las columnas finales
select(LATITUDE, LONGITUDE, CAUSE)
# El resultado 'callevent_Map' contiene el marco de datos filtrado y con solo las 3 columnas.
# 2. Se grafica del archivo excel todos los registros de latitud y longitud mediante leaflet
# 1. Crear la paleta de colores (ejecutar antes de leaflet)
pal <- colorFactor(
palette = 'Dark2',
domain = callevent_Map$CAUSE
)
# 2. Se grafica el mapa con colores y leyenda
leaflet(callevent_Map) %>%
addTiles() %>%
addCircleMarkers(
# Aplicar la paleta 'pal' a la columna 'CAUSE'
color = pal(callevent_Map$CAUSE),
lng = ~LONGITUDE, # Notación tidyeval (opcional pero recomendada)
lat = ~LATITUDE, # Notación tidyeval (opcional pero recomendada)
radius = 2, # AumentƩ ligeramente el radio para que se vea el color
stroke = FALSE, # Elimina el borde negro
fillOpacity = 0.8 # Hace los cĆrculos ligeramente transparentes
) %>%
# 3. AƱadir la Leyenda
addLegend(
pal = pal,
values = ~CAUSE,
title = "Causa del Evento",
opacity = 1
)