Este informe presenta la información de una encuesta de movilidad realizada en la ciudad de Cali sobre los hábitos de transporte de los ciudadanos, qué medios utilizan, hacia dónde se movilizan y cuáles son los motivos. Utilizando esta información y técnicas de análisis de datos geográficos se identificaron las comunas de origen y destino de los encuestados, información que puede ser útil a los tomadores de decisiones en escenarios de planeación urbana y proyección de las vías de la ciudad. El informe se divide en tres partes, la primera muestra los mapas de las comunas de origen y destino de quienes se movilizan en la ciudad de Cali, la segunda parte presenta los datos discriminados según el medio de transporte. La tercera parte presenta algunas conclusiones sobre el análisis de los datos.
Antes de empezar se importan los datos que se van a utilizar, el shapefile de las comunas de Cali y el data set de la encuesta de movilidad.
#Cargar el Shapefile de las comunas de Cali
comunas=shapefile("cali/Comunas.shp")
plot(comunas)
#Explorar el shapefile y acomodar los datos
tabla_comunas=comunas@data
tabla_comunas = tabla_comunas %>% arrange(comuna)
Para trabajar con el data set de la encuesta se excluyen los datos nulos de las columnas a utilizar, puntualmente “comunaorigen” y ”comunadestino”. Igualmente se eliminan los valores iguales a 0 pues no existe la comuna cero en la ciudad.
##Cargar data set de viajes en CSV
tabla_origendestino = read.csv("encuestaorigendestino.csv", header = TRUE, sep = ";")
##Limpiar dataset
tabla_origendestino <- tabla_origendestino %>%
filter(!is.na(comunaorigen)) %>%
filter(!is.na(comunadestino)) %>%
filter(comunaorigen != "FueradeCali") %>%
filter(comunadestino != "FueradeCali")
tabla_origendestino <- tabla_origendestino%>%
mutate(comunaorigen = as.numeric(as.character(comunaorigen))) %>%
mutate(comunadestino = as.numeric(as.character(comunadestino)))
glimpse(tabla_origendestino)
## Rows: 23,373
## Columns: 28
## $ FECHA <chr> …
## $ IDESTACIÓN <dbl> …
## $ ESTACIÓN <chr> …
## $ ACCESO <chr> …
## $ MOVIMIENTO <chr> …
## $ HoradeEncuesta <chr> …
## $ MUNICIPIO <chr> …
## $ DEPARTAMENTO.LOCALIDAD.COMUNA.DISTRITO.BARRIO.VEREDA.HITO.DIRECCIÓN <chr> …
## $ CodigoOrigen_SDG <chr> …
## $ X.QUEESTABAHACIENDOENESELUGAR. <chr> …
## $ MUNICIPIO.1 <chr> …
## $ DEPARTAMENTO.LOCALIDAD.COMUNA.DISTRITO.BARRIO.VEREDA.HITO.DIRECCIÓN.1 <chr> …
## $ CodigoDestino_SDG <chr> …
## $ X.QUEVAHACERAESELUGAR. <int> …
## $ ESTRATOENSUVIVIENDA <int> …
## $ X.DISPONIADEUNVEHÍCULOPARAREALIZARESTEDESPLAZAMIENTO. <int> …
## $ OTRO.CUÁL. <chr> …
## $ ANTES <int> …
## $ DESPUES <int> …
## $ EDAD <int> …
## $ SEXO <int> …
## $ PERSONASENELVEHÍCULO <int> …
## $ TIPODEVEHÍCULO <int> …
## $ OTRO.CUÁL..1 <chr> …
## $ TIPODEVIAJERO <int> …
## $ comunaorigen <dbl> …
## $ comunadestino <dbl> …
## $ Intracomuna <int> …
#Omitir los valores iguales a 0
tabla_origendestino <- tabla_origendestino%>%
filter(comunaorigen != 0,
comunadestino != 0)
Para saber el número de personas según las comunas de origen y destino se generan tablas de frecuencia para cada caso.
##Conteo de Comunas de origen y destino
frecuencia_comunaorigen <- tabla_origendestino %>%
count(comunaorigen, name = "frecuencia")
frecuencia_comunaorigen
## comunaorigen frecuencia
## 1 1 626
## 2 2 2250
## 3 3 1610
## 4 4 1193
## 5 5 521
## 6 6 797
## 7 7 583
## 8 8 862
## 9 9 737
## 10 10 1094
## 11 11 717
## 12 12 257
## 13 13 1031
## 14 14 575
## 15 15 974
## 16 16 836
## 17 17 1762
## 18 18 1208
## 19 19 2241
## 20 20 599
## 21 21 693
## 22 22 985
frecuencia_comunadestino <- tabla_origendestino %>%
count(comunadestino, name = "frecuencia")
frecuencia_comunadestino
## comunadestino frecuencia
## 1 1 187
## 2 2 3773
## 3 3 2887
## 4 4 1497
## 5 5 440
## 6 6 570
## 7 7 598
## 8 8 830
## 9 9 1055
## 10 10 741
## 11 11 483
## 12 12 207
## 13 13 560
## 14 14 316
## 15 15 481
## 16 16 645
## 17 17 1616
## 18 18 526
## 19 19 2441
## 20 20 303
## 21 21 434
## 22 22 1561
Una vez contamos con la información de base se genera una unión con el Shape File de las Comunas, con el objetivo de generar un mapa de calor que muestre las comunas de origen más frecuentes, al igual con las de destino.
##Mapa de calor para comunaorigen
# Convertir el shapefile a la clase sf
comunas <- st_as_sf(comunas)
comunas_origen <- comunas %>%
left_join(frecuencia_comunaorigen, by = c("comuna" = "comunaorigen"))
mapa_comunaorigen = ggplot(comunas_origen) +
geom_sf(aes(fill = frecuencia), color = NA) +
scale_fill_viridis_c(option = "magma", direction = -1, name = "Frecuencia") +
geom_sf_text(aes(label = comuna), color = "lightgrey", size = 3) +
labs(title = "Mapa comunas de origen en Cali",
subtitle = "Frecuencia de viajes por comuna") +
theme_minimal()
mapa_comunaorigen
En el primer mapa de las comunas de origen de quienes se movilizan en la Ciudad encontramos que las comunas de donde salen los habitantes de la ciudad son la 2 y la 19 con más de dos mil personas que se movilizan, mientras que la comuna 12 representa el menor número con menos de 500 ciudadanos.
##Mapa de calor para comuna destino
comunas_destino <- comunas %>%
left_join(frecuencia_comunadestino, by = c("comuna" = "comunadestino"))
mapa_comunadestino = ggplot(comunas_destino) +
geom_sf(aes(fill = frecuencia), color = NA) +
scale_fill_viridis_c(option = "magma", direction = -1, name = "Frecuencia") +
geom_sf_text(aes(label = comuna), color = "lightgrey", size = 3) +
labs(title = "Mapa comunas de destino en Cali",
subtitle = "Frecuencia de viajes por comuna") +
theme_minimal()
mapa_comunadestino
En el caso de las comunas de destino encontramos que la más frecuentada es la número 2, con más de tres mil personas, seguida de la número 3 con más de dos mil. Estos valores más elevados que las comunas de origen pueden explicarse porque de la base original se excluyeron los trayectos de fuera de la ciudad y Cali, al ser ciudad capital, atrae gran número de trabajadores de afuera, lo que también explica por qué son las comunas 2 y 3 las más frecuentadas, pues estas son áreas industriales y de negocios.
A continuación, se presentan los dos mapas lado a lado para una mejor visualización del fenómeno de desplazamiento.
grid.arrange(mapa_comunaorigen, mapa_comunadestino, ncol = 2)
Para realizar la visualización de los mapas según el medio de transporte de cada usuario se realizan nuevas tablas de frecuencia, esta vez según el medio de transporte de los encuestados. En seguida, se realiza una nueva unión con el Shape File de las Comunas para posteriormente tener la visualización.
#Datos de comuna origen según medio de transporte
comunaorigen_bici <- tabla_origendestino %>%
filter(TIPODEVEHÍCULO == 1) %>%
count(comunaorigen, name = "frecuencia")
comunaorigen_moto <- tabla_origendestino %>%
filter(TIPODEVEHÍCULO == 2) %>%
count(comunaorigen, name = "frecuencia")
comunaorigen_automovil <- tabla_origendestino %>%
filter(TIPODEVEHÍCULO == 3) %>%
count(comunaorigen, name = "frecuencia")
#Datos de comuna destino según medio de transporte
comunadestino_bici <- tabla_origendestino %>%
filter(TIPODEVEHÍCULO == 1) %>%
count(comunadestino, name = "frecuencia")
comunadestino_moto <- tabla_origendestino %>%
filter(TIPODEVEHÍCULO == 2) %>%
count(comunadestino, name = "frecuencia")
comunadestino_automovil <- tabla_origendestino %>%
filter(TIPODEVEHÍCULO == 3) %>%
count(comunadestino, name = "frecuencia")
##Mapas origen según medio de transporte
##En bici
comunas_origen_bici <- comunas %>%
left_join(comunaorigen_bici, by = c("comuna" = "comunaorigen"))
mapa_comunaorigen_bici = ggplot(comunas_origen_bici) +
geom_sf(aes(fill = frecuencia), color = NA) +
scale_fill_viridis_c(option = "magma", direction = -1, name = "Frecuencia") +
geom_sf_text(aes(label = comuna), color = "lightgrey", size = 3) +
labs(title = "Mapa comunas origen Cali",
subtitle = "Frecuencia de viajes en Bicicleta") +
theme_minimal()
mapa_comunaorigen_bici
EL primer mapa corresponde a la movilización en bicicleta, que coincide con los datos del mapa general, siendo las comunas 2 y 19 de donde más se movilizan las personas y la 12 la que menos volumen de movilización tiene. Además, este medio de transporte es posiblemente el menos usado, con valores máximos alrededor de las 120 personas.
##En moto
comunas_origen_moto = comunas %>%
left_join(comunaorigen_moto, by = c("comuna" = "comunaorigen"))
mapa_comunaorigen_moto = ggplot(comunas_origen_moto) +
geom_sf(aes(fill = frecuencia), color = NA) +
scale_fill_viridis_c(option = "magma", direction = -1, name = "Frecuencia") +
geom_sf_text(aes(label = comuna), color = "lightgrey", size = 3) +
labs(title = "Mapa comunas origen Cali",
subtitle = "Frecuencia de viajes en Moto") +
theme_minimal()
mapa_comunaorigen_moto
Para el segundo mapa se tuvo en cuenta la movilización en motocicleta, que tiene notablemente más usuarios, sin embargo, el patrón se repite, siendo las mismas comunas aquellas con más y menos usuarios.
##En Automovil
comunas_origen_automovil = comunas %>%
left_join(comunaorigen_automovil, by = c("comuna" = "comunaorigen"))
mapa_comunaorigen_automovil = ggplot(comunas_origen_automovil) +
geom_sf(aes(fill = frecuencia), color = NA) +
scale_fill_viridis_c(option = "magma", direction = -1, name = "Frecuencia") +
geom_sf_text(aes(label = comuna), color = "lightgrey", size = 3) +
labs(title = "Mapa comunas origen Cali",
subtitle = "Frecuencia de viajes en Automovil") +
theme_minimal()
mapa_comunaorigen_automovil
El tercer mapa presenta un panorama muy similar, sin embargo, al conocer los tres mapas podemos asegurar que la moto es el medio de transporte más utilizado en la ciudad.
A continuación, se presentan los 4 mapas correspondientes a las comunas de origen en cuanto a la movilización de la población caleña.
grid.arrange(mapa_comunaorigen, mapa_comunaorigen_bici, mapa_comunaorigen_moto,
mapa_comunaorigen_automovil, ncol = 2)
Ahora bien, se realiza el mismo ejercicio con los mapas para las comunas de destino.
##Mapas destino según medio de transporte
##En bici
comunas_destino_bici <- comunas %>%
left_join(comunadestino_bici, by = c("comuna" = "comunadestino"))
mapa_comunadestino_bici = ggplot(comunas_destino_bici) +
geom_sf(aes(fill = frecuencia), color = NA) +
scale_fill_viridis_c(option = "magma", direction = -1, name = "Frecuencia") +
geom_sf_text(aes(label = comuna), color = "lightgrey", size = 3) +
labs(title = "Mapa comunas origen Cali",
subtitle = "Frecuencia de viajes en Bicicleta") +
theme_minimal()
mapa_comunadestino_bici
Según el mapa de las comunas de destino de aquellas personas que se movilizan en bicicleta, se observa que la más frecuentada es la comuna 2, sin embargo, puede apreciarse que el sur de la ciudad también tiene un buen número de personas que se desplazan en este medio de transporte. Nuevamente, el número de personas es superior el presentado en la tabla de origen, porque no se tuvieron en cuenta las personas que vienen de fuera de la ciudad.
##En moto
comunas_destino_moto <- comunas %>%
left_join(comunadestino_moto, by = c("comuna" = "comunadestino"))
mapa_comunadestino_moto = ggplot(comunas_destino_moto) +
geom_sf(aes(fill = frecuencia), color = NA) +
scale_fill_viridis_c(option = "magma", direction = -1, name = "Frecuencia") +
geom_sf_text(aes(label = comuna), color = "lightgrey", size = 3) +
labs(title = "Mapa comunas origen Cali",
subtitle = "Frecuencia de viajes en Moto") +
theme_minimal()
mapa_comunadestino_moto
Para el caso de quienes se movilizan en moto, nuevamente, es evidente que hay una preferencia por este medio de transporte, en tanto más de mil seiscientas personas se desplazaron en este medio sólo hacia la comuna 2, y alrededor de mil trecientas a la comuna 3.
##En Automovil
comunas_destino_automovil <- comunas %>%
left_join(comunadestino_automovil, by = c("comuna" = "comunadestino"))
mapa_comunadestino_automovil = ggplot(comunas_destino_automovil) +
geom_sf(aes(fill = frecuencia), color = NA) +
scale_fill_viridis_c(option = "magma", direction = -1, name = "Frecuencia") +
geom_sf_text(aes(label = comuna), color = "lightgrey", size = 3) +
labs(title = "Mapa comunas origen Cali",
subtitle = "Frecuencia de viajes en Automovil") +
theme_minimal()
mapa_comunadestino_automovil
Finalmente, el caso de los automóviles para las comunas de destino es considerablemente diferente al de las de origen, en tanto el número de carros es superior en el primer escenario, nuevamente, eso tiene que ver con los desplazamientos que se realizan a la ciudad desde afuera.
A continuación, los cuatro gráficos de la movilización de destino de los ciudadanos de Cali para una mejor visualización.
grid.arrange(mapa_comunadestino, mapa_comunadestino_bici, mapa_comunadestino_moto,
mapa_comunadestino_automovil, ncol = 2)
Las comunas de destino muestran que la comuna 2 es el área más frecuentada, seguida de la comuna 3, lo cual se relaciona con la atracción que Cali ejerce como capital y centro económico. Esto es particularmente visible en la afluencia de personas de municipios cercanos, lo cual incrementa notablemente la movilidad hacia estas áreas. La presencia de zonas industriales y comerciales en estas comunas sugiere que la mayoría de los viajes están motivados por actividades laborales o comerciales, lo cual es clave para planificar servicios de transporte y vías de acceso.
En cuanto a los medios de transporte, se observa que la motocicleta es el medio más utilizado, especialmente en las comunas con mayor número de desplazamientos de origen y destino. Este fenómeno resalta la importancia de este medio en la movilidad urbana, y sugiere una demanda por infraestructura vial adecuada y políticas que mejoren la seguridad vial para motociclistas. Los datos también muestran un uso limitado de la bicicleta, lo que indica la necesidad de fomentar su adopción, especialmente en las áreas con menos congestión, promoviendo alternativas sostenibles que puedan descongestionar el tráfico en las zonas más transitadas.