# Librerías
library(here)
library(raster)
library(rgdal)
library(sp)
library(readxl)
library(dplyr)
library(janitor)
# Ruta de archivos
ruta <- here()
# Importar archivo de comunas
comunas <- shapefile(paste(ruta, "Casos (1)/Casos/cali/Comunas.shp", sep = "/"))
## Warning in sp::CRS(...): sf required for evolution_status==2L
# Ver el archivo shapefile
print(comunas)
## class : SpatialPolygonsDataFrame
## features : 22
## extent : 1053868, 1068492, 860190.2, 879441.5 (xmin, xmax, ymin, ymax)
## crs : +proj=tmerc +lat_0=3.441883333 +lon_0=-76.5205625 +k=1 +x_0=1061900.18 +y_0=872364.63 +a=6379137 +rf=298.257222101 +units=m +no_defs
## variables : 4
## names : OBJECTID, gid, comuna, nombre
## min values : 1, 89, 1, Comuna 1
## max values : 22, 110, 22, Comuna 9
# Ver la tabla de datos dentro del archivo shape
comunas@data
# Ver el mapa
plot(comunas)
## Warning in is.projected(p4str): Package sf not available
# Importar data frame de viajes en la ciudad de Cali
viajes_cali <- read_xlsx(paste(ruta, "Casos (1)/Casos/EncuestaOrigenDestino.xlsx", sep = "/"), sheet = "Hoja1")
## New names:
## • `MUNICIPIO` -> `MUNICIPIO...7`
## • `DEPARTAMENTO / LOCALIDAD / COMUNA / DISTRITO / BARRIO / VEREDA / HITO /
## DIRECCIÓN` -> `DEPARTAMENTO / LOCALIDAD / COMUNA / DISTRITO / BARRIO / VEREDA
## / HITO / DIRECCIÓN...8`
## • `MUNICIPIO` -> `MUNICIPIO...11`
## • `DEPARTAMENTO / LOCALIDAD / COMUNA / DISTRITO / BARRIO / VEREDA / HITO /
## DIRECCIÓN` -> `DEPARTAMENTO / LOCALIDAD / COMUNA / DISTRITO / BARRIO / VEREDA
## / HITO / DIRECCIÓN...12`
## • `OTRO ¿CUÁL?` -> `OTRO ¿CUÁL?...17`
## • `OTRO ¿CUÁL?` -> `OTRO ¿CUÁL?...24`
head(viajes_cali)
# Limpieza nombres de la base de datos
viajes_cali <- viajes_cali %>%
clean_names()
# Conteo de viajes origen por comuna
viajes_origen <-
viajes_cali %>%
count(comuna_origen) %>%
mutate(comuna_origen = as.double(comuna_origen)) %>%
filter(comuna_origen != 0 & !is.na(comuna_origen)) %>%
rename(viajes_origen = n)
# Adición del conteo de viajes por comunas de origen al shapefile
comunas@data <- comunas@data %>%
left_join(viajes_origen,
by = c("comuna" = "comuna_origen"))
# Visualización de la cloropleta No.1
mapa_viajes_general <- spplot(comunas[,"viajes_origen"], main="Viajes Origen: General")
mapa_viajes_general
# Conteo de viajes en bicicleta por comuna origen
viajes_origen_bicicleta <-
viajes_cali %>%
filter(tipo_de_vehiculo == 1) %>%
count(comuna_origen) %>%
mutate(comuna_origen = as.double(comuna_origen)) %>%
filter(comuna_origen != 0 & !is.na(comuna_origen)) %>%
rename(viajes_origen_bicicleta = n)
# Adición del conteo de viajes en bicicleta por comuna de origen al shapefile
comunas@data <- comunas@data %>%
left_join(viajes_origen_bicicleta,
by = c("comuna" = "comuna_origen"))
# Visualización de la cloropleta No.2
mapa_viajes_bicicleta_origen <- spplot(comunas[,"viajes_origen_bicicleta"], main="Viajes Origen Bicicleta")
mapa_viajes_bicicleta_origen
# Conteo de viajes por comuna en moto (tipo 2)
viajes_origen_moto <-
viajes_cali %>%
filter(tipo_de_vehiculo == 2) %>%
count(comuna_origen) %>%
mutate(comuna_origen = as.double(comuna_origen)) %>%
filter(comuna_origen != 0 & !is.na(comuna_origen)) %>%
rename(viajes_origen_moto = n)
# Adición del conteo de viajes en bicicleta por comuna de origen al shapefile
comunas@data <- comunas@data %>%
left_join(viajes_origen_moto,
by = c("comuna" = "comuna_origen"))
# Visualización de la cloropleta No.3
mapa_viajes_moto_origen <- spplot(comunas[,"viajes_origen_moto"], main="Viajes Origen Motocicleta")
mapa_viajes_moto_origen
# Conteo de viajes por comuna en automóvil (tipo 3)
viajes_origen_carro <-
viajes_cali %>%
filter(tipo_de_vehiculo == 3) %>%
count(comuna_origen) %>%
mutate(comuna_origen = as.double(comuna_origen)) %>%
filter(comuna_origen != 0 & !is.na(comuna_origen)) %>%
rename(viajes_origen_carro = n)
# Adición del conteo de viajes en bicicleta por comuna de origen al shapefile
comunas@data <- comunas@data %>%
left_join(viajes_origen_carro,
by = c("comuna" = "comuna_origen"))
# Visualización de la cloropleta No.4
mapa_viajes_carro_origen <- spplot(comunas[,"viajes_origen_carro"], main="Viajes Origen Carro")
mapa_viajes_carro_origen
# Conteo de viajes destino por comuna
viajes_destino <-
viajes_cali %>%
count(comuna_destino) %>%
mutate(comuna_destino = as.double(comuna_destino)) %>%
filter(comuna_destino != 0 & !is.na(comuna_destino)) %>%
rename(viajes_destino = n)
# Adición del conteo de viajes por comunas de destino al shapefile
comunas@data <- comunas@data %>%
left_join(viajes_destino,
by = c("comuna" = "comuna_destino"))
# Visualización de la cloropleta No.5
mapa_viajes_general_destino <- spplot(comunas[,"viajes_destino"], main="Viajes Destino General")
mapa_viajes_general_destino
# Conteo de viajes por comuna destino en bicicleta (tipo 1)
viajes_destino_bicicleta <-
viajes_cali %>%
filter(tipo_de_vehiculo == 1) %>%
count(comuna_destino) %>%
mutate(comuna_destino = as.double(comuna_destino)) %>%
filter(comuna_destino != 0 & !is.na(comuna_destino)) %>%
rename(viajes_destino_bicicleta = n)
# Adición del conteo de viajes en bicicleta por comuna de destino al shapefile
comunas@data <- comunas@data %>%
left_join(viajes_destino_bicicleta,
by = c("comuna" = "comuna_destino"))
# Visualización de la cloropleta No.6
mapa_viajes_bicicleta_destino <- spplot(comunas[,"viajes_destino_bicicleta"], main="Viajes Destino Bicicleta")
mapa_viajes_bicicleta_destino
# Conteo de viajes por comuna destino en moto (tipo 2)
viajes_destino_moto <-
viajes_cali %>%
filter(tipo_de_vehiculo == 2) %>%
count(comuna_destino) %>%
mutate(comuna_destino = as.double(comuna_destino)) %>%
filter(comuna_destino != 0 & !is.na(comuna_destino)) %>%
rename(viajes_destino_moto = n)
# Adición del conteo de viajes en moto por comuna de destino al shapefile
comunas@data <- comunas@data %>%
left_join(viajes_destino_moto,
by = c("comuna" = "comuna_destino"))
# Visualización de la cloropleta No.7
mapa_viajes_moto_destino <- spplot(comunas[,"viajes_destino_moto"], main="Viajes Destino Moto")
mapa_viajes_moto_destino
# Conteo de viajes por comuna destino en automóvil (tipo 3)
viajes_destino_carro <-
viajes_cali %>%
filter(tipo_de_vehiculo == 3) %>%
count(comuna_destino) %>%
mutate(comuna_destino = as.double(comuna_destino)) %>%
filter(comuna_destino != 0 & !is.na(comuna_destino)) %>%
rename(viajes_destino_carro = n)
# Adición del conteo de viajes en carro por comuna de destino al shapefile
comunas@data <- comunas@data %>%
left_join(viajes_destino_carro,
by = c("comuna" = "comuna_destino"))
# Visualización de la cloropleta No.8
mapa_viajes_carro_destino <- spplot(comunas[,"viajes_destino_carro"], main="Viajes Destino Carro")
mapa_viajes_carro_destino
La comuna 2 emerge como un nodo crucial en términos de movilidad urbana, ya que lidera en todas las categorías examinadas: número total de orígenes, viajes de origen en bicicleta, en moto y en auto. Con un total de 2250 viajes originados desde esta comuna, es innegable su importancia en la red de transporte de la ciudad. Este volumen de actividad puede sugerir una densidad poblacional alta o tal vez una concentración de servicios y empleos que atraen a la gente hacia o desde la comuna. Es interesante notar que, dentro de esos viajes, 122 se realizaron en bicicleta y 1063 en moto, lo que podría indicar una preferencia o necesidad de medios de transporte más ágiles ante posibles congestiones vehiculares. Los 860 viajes en auto, aunque notables, son menores en comparación con los viajes en moto, lo cual podría reflejar una elección consciente por medios de transporte más sostenibles, la existencia de desafíos relacionados con el tráfico o el estacionamiento o la existencia de barreras de orden económico para adquirir un carro. En resumen, la comuna 2 no solo es un epicentro de actividad, sino que también refleja tendencias y posibles problemáticas en la movilidad urbana que podrían requerir atención de planificadores y autoridades.
Por: David Pinedo