Se pretende analizar como se comporta la movilidad en las 22 comunas de la ciudad de Cali, a partir de una encuesta realizada en el año 2015.
Para este caso, se tomarán como referencia el origen y destino de los trayectos realizados en el area urbana de la ciudad utilizando como medios de transporte bicicleta, moto y automovil respectivamente.options("sp_evolution_status"=2)
library(sp)
library(rgdal)
library(raster)
library(readxl)
library(dplyr)
library(RColorBrewer)
library(ggplot2)
library(gridExtra)
Se carga la base de datos correspondiente a la Encuesta Origen - Destino realizada en el año 2015.
# Cargue de la base de datos de la Encuesta Origen - Destino
BD_Encuesta <- read_excel("C:/Users/User/Desktop/EncuestaOrigenDestino.xlsx",
sheet = "Sheet4")
## 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`
Adicionalmente, se carga el archivo .shp que contiene la información geoespacial de las 22 comunas de la ciudad.
# Cargue de la base de datos geográfica Comunas.shp
comunas = shapefile("C:/Users/User/Desktop/cali/Comunas.shp")
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
comunas@data
## OBJECTID gid comuna nombre
## 1 1 107 2 Comuna 2
## 2 2 108 1 Comuna 1
## 3 3 109 3 Comuna 3
## 4 4 110 19 Comuna 19
## 5 5 103 15 Comuna 15
## 6 6 104 17 Comuna 17
## 7 7 105 18 Comuna 18
## 8 8 106 22 Comuna 22
## 9 9 89 6 Comuna 6
## 10 10 90 4 Comuna 4
## 11 11 91 5 Comuna 5
## 12 12 92 7 Comuna 7
## 13 13 93 8 Comuna 8
## 14 14 94 9 Comuna 9
## 15 15 95 21 Comuna 21
## 16 16 96 13 Comuna 13
## 17 17 97 12 Comuna 12
## 18 18 98 14 Comuna 14
## 19 19 99 11 Comuna 11
## 20 20 100 10 Comuna 10
## 21 21 101 20 Comuna 20
## 22 22 102 16 Comuna 16
# Se crea una copia del set de datos para el procesamiento
BD_Encuesta2 <- BD_Encuesta
# Se eliminan los registros correspondientes a viajes fuera de la ciudad o no clasificados dentro de las 22 comunas
BD_Encuesta2 = subset(BD_Encuesta2,comunaorigen!='FueradeCali')
BD_Encuesta2 = subset(BD_Encuesta2,comunadestino!='FueradeCali')
BD_Encuesta2 = subset(BD_Encuesta2,comunaorigen!='0')
BD_Encuesta2 = subset(BD_Encuesta2,comunadestino!='0')
# Se seleccionan solamente las columnas o variables del set de datos que se utilizarán para el análisis
BD_Encuesta3 = BD_Encuesta2[c("comunaorigen", "comunadestino", "TIPODEVEHICULO")]
# Se convierten a valores numéricos los datos correspondientes a las columnas "comuna origen" y "comuna destino"
BD_Encuesta3$comunaorigen =as.numeric(as.character(BD_Encuesta3$comunaorigen))
BD_Encuesta3$comunadestino =as.numeric(as.character(BD_Encuesta3$comunadestino))
En primera medida, se analizarán los desplazamientos según la comuna de origen.
# Conteo de los viajes según la Comuna de origen.
conteo <- table(BD_Encuesta3$comunaorigen)
conteos_origen <- data.frame(comuna = names(conteo), conteo = as.vector(conteo))
conteos_origen
## comuna conteo
## 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
# Se realiza el conteo para la categoría de Origen
conteos_origen_shp <- merge(comunas, conteos_origen, by="comuna")
# Se definen los colores para el mapa
pallete_ = brewer.pal(n=9, name = "OrRd")
# Se construye el mapa
p =spplot(conteos_origen_shp[,5],
main = "Comuna de origen",
sub = "Número de Viajes - Persona",
col.regions = pallete_, cuts = 6)
p
Como se observa en el mapa anterior, las comunas desde donde se originan el mayor número de viajes independientemente del medio de transporte que utilizan estás personas son: Comuna 2 (2.250), seguido de la Comuna 19 (2.241), Comuna 17 (1.762) y la Comuna 3 (1.610).
En contraste, la comuna donde se origina el menor número de viajes es la 12 con solo 257 viajes.# Para el caso de la comuna de Origen se construye el filtro de Bicicleta
origen_bici <- which(BD_Encuesta3$TIPODEVEHICULO==1)
conteos_bc <- table(BD_Encuesta3$comunaorigen[origen_bici])
conteos_cobc <- data.frame(comuna = names(conteos_bc), conteo = as.vector(conteos_bc))
conteos_cobc
## comuna conteo
## 1 1 32
## 2 2 122
## 3 3 84
## 4 4 58
## 5 5 28
## 6 6 29
## 7 7 30
## 8 8 46
## 9 9 36
## 10 10 71
## 11 11 42
## 12 12 10
## 13 13 62
## 14 14 32
## 15 15 55
## 16 16 65
## 17 17 103
## 18 18 85
## 19 19 113
## 20 20 33
## 21 21 35
## 22 22 52
# Para el caso de la comuna de Origen se construye el filtro de Motocicleta
origen_moto <- which(BD_Encuesta3$TIPODEVEHICULO==2)
conteos_mt <- table(BD_Encuesta3$comunaorigen[origen_moto])
conteos_moto <- data.frame(comuna = names(conteos_mt), conteo = as.vector(conteos_mt))
conteos_moto
## comuna conteo
## 1 1 296
## 2 2 1063
## 3 3 702
## 4 4 571
## 5 5 260
## 6 6 377
## 7 7 272
## 8 8 421
## 9 9 317
## 10 10 535
## 11 11 339
## 12 12 133
## 13 13 453
## 14 14 258
## 15 15 455
## 16 16 383
## 17 17 853
## 18 18 593
## 19 19 995
## 20 20 278
## 21 21 323
## 22 22 430
# Para el caso de la comuna de Origen se construye el filtro de Automóvil
origen_auto <- which(BD_Encuesta3$TIPODEVEHICULO==3)
conteos_ocr <- table(BD_Encuesta3$comunaorigen[origen_auto])
conteos_cocr <- data.frame(comuna = names(conteos_ocr), conteo = as.vector(conteos_ocr))
conteos_cocr
## comuna conteo
## 1 1 234
## 2 2 860
## 3 3 679
## 4 4 443
## 5 5 185
## 6 6 314
## 7 7 229
## 8 8 319
## 9 9 295
## 10 10 404
## 11 11 268
## 12 12 88
## 13 13 412
## 14 14 236
## 15 15 377
## 16 16 320
## 17 17 662
## 18 18 433
## 19 19 923
## 20 20 228
## 21 21 272
## 22 22 424
# Se realiza el conteo para la categoría de Origen de cada medio de transporte
conteos_origen_bici_shp <- merge(comunas, conteos_cobc, by="comuna")
conteos_origen_moto_shp <- merge(comunas, conteos_moto, by="comuna")
conteos_origen_auto_shp <- merge(comunas, conteos_cocr, by="comuna")
# Se definen los colores para cada categoria
pallete_bici = brewer.pal(n=9, name = "Greens")
pallete_moto = brewer.pal(n=9, name = "Blues")
pallete_auto = brewer.pal(n=9, name = "Spectral")
# Se construyen los mapas
b1 =spplot(conteos_origen_bici_shp[,5],
main = "Bicicleta",
sub = "No.Viajes - Persona",
cuts = 6, col.regions = pallete_bici)
m1 =spplot(conteos_origen_moto_shp[,5],
main = "Moto",
sub = "No.Viajes - Persona",
col.regions = pallete_moto, cuts = 6)
a1 =spplot(conteos_origen_auto_shp[,5],
main = "Automóvil",
sub = "No.Viajes - Persona",
col.regions = pallete_auto, cuts = 6)
grid.arrange(b1, m1, a1, ncol = 3, nrow = 1)
En contraposición a continuación se analizarán los desplazamientos según la comuna de destino.
# Conteo de los viajes según la Comuna de destino
conteo1 <- table(BD_Encuesta3$comunadestino)
conteos_destino <- data.frame(comuna = names(conteo1), conteo = as.vector(conteo1))
conteos_destino
## comuna conteo
## 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
# Se realiza el conteo para la categoría de Destino
conteos_destino_shp <- merge(comunas, conteos_destino, by="comuna")
# Se definen los colores para el mapa
pallete_ = brewer.pal(n=7, name = "OrRd")
# Se construye el mapa
spplot(conteos_destino_shp[,5],
main = "Comuna de destino",
sub = "Número de Viajes - Persona",
col.regions = pallete_, cuts = 6)
Según el mapa anterior, las comunas hacia donde se dirigen o tienen como destino el mayor número de viajes realizados son: Comuna 2 (3.773), seguido de la Comuna 3 (2.887), Comuna 19 (2.441), Comuna 17 (1.616) y por último la Comuna 22 (1.561).
En contraste, las comunas con el menor número de viajes de destino son la1, 12, 20, 14, 15, 11 y 5 siendo las menos sombreadas en el mapa.# Para el caso de la comuna de Destino se construye el filtro de Bicicleta
destino_bici <- which(BD_Encuesta3$TIPODEVEHICULO==1)
conteos_dest_bc <- table(BD_Encuesta3$comunadestino[destino_bici])
conteos_dest_cobc <- data.frame(comuna = names(conteos_dest_bc), conteo = as.vector(conteos_dest_bc))
conteos_dest_cobc
## comuna conteo
## 1 1 9
## 2 2 194
## 3 3 169
## 4 4 80
## 5 5 38
## 6 6 31
## 7 7 36
## 8 8 46
## 9 9 56
## 10 10 34
## 11 11 26
## 12 12 13
## 13 13 28
## 14 14 20
## 15 15 17
## 16 16 31
## 17 17 95
## 18 18 28
## 19 19 131
## 20 20 22
## 21 21 24
## 22 22 95
# Para el caso de la comuna de destino se construye el filtro de Motocicleta
destino_moto <- which(BD_Encuesta3$TIPODEVEHICULO==2)
conteos_dest_mt <- table(BD_Encuesta3$comunadestino[destino_moto])
conteos_dest_moto <- data.frame(comuna = names(conteos_dest_mt), conteo = as.vector(conteos_dest_mt))
conteos_dest_moto
## comuna conteo
## 1 1 90
## 2 2 1734
## 3 3 1333
## 4 4 678
## 5 5 183
## 6 6 255
## 7 7 279
## 8 8 382
## 9 9 512
## 10 10 353
## 11 11 217
## 12 12 106
## 13 13 285
## 14 14 150
## 15 15 232
## 16 16 290
## 17 17 744
## 18 18 240
## 19 19 1152
## 20 20 124
## 21 21 202
## 22 22 766
# Para el caso de la comuna de destino se construye el filtro de Automóvil
destino_auto <- which(BD_Encuesta3$TIPODEVEHICULO==3)
conteos_dest_ocr <- table(BD_Encuesta3$comunadestino[destino_auto])
conteos_dest_cocr <- data.frame(comuna = names(conteos_dest_ocr), conteo = as.vector(conteos_dest_ocr))
conteos_dest_cocr
## comuna conteo
## 1 1 73
## 2 2 1518
## 3 3 1098
## 4 4 596
## 5 5 181
## 6 6 208
## 7 7 224
## 8 8 325
## 9 9 382
## 10 10 291
## 11 11 204
## 12 12 71
## 13 13 189
## 14 14 120
## 15 15 199
## 16 16 275
## 17 17 650
## 18 18 216
## 19 19 926
## 20 20 131
## 21 21 164
## 22 22 564
# Se realiza el conteo para la categoría de Destino de cada medio de transporte
conteos_destino_bici_shp <- merge(comunas, conteos_dest_cobc, by="comuna")
conteos_destino_moto_shp <- merge(comunas, conteos_dest_moto, by="comuna")
conteos_destino_auto_shp <- merge(comunas, conteos_dest_cocr, by="comuna")
# Se definen los colores para cada categoria
pallete_bici_dest = brewer.pal(n=9, name = "Greens")
pallete_moto_dest = brewer.pal(n=9, name = "Blues")
pallete_auto_dest = brewer.pal(n=9, name = "Spectral")
# Se construyen los mapas
b2 =spplot(conteos_destino_bici_shp[,5],
main = "Bicicleta",
sub = "No.Viajes - Persona",
cuts = 6, col.regions = pallete_bici_dest)
m2 =spplot(conteos_destino_moto_shp[,5],
main = "Moto",
sub = "No.Viajes - Persona",
col.regions = pallete_moto_dest, cuts = 6)
a2 =spplot(conteos_destino_auto_shp[,5],
main = "Automóvil",
sub = "No.Viajes - Persona",
col.regions = pallete_auto_dest, cuts = 6)
grid.arrange(b2, m2, a2, ncol = 3, nrow = 1)
La comuna más representativa tanto en los viajes de origen como destino es la Comuna 2, siendo una zona de gran influencia de comercio y servicios como los financieros, adicionalmente por la presencia de centros educativos, hospitales y una amplia zona hotelera de la ciudad.
En cuanto al origen de los viajes son las comunas 2, 19, 17 y 3 las de mayor número de viajes, con respecto al medio de transporte en el caso de la bicicleta y motocicleta las comunas desde donde salen la mayor cantidad de viajes son la 2 y la 19; mientras que en automóvil el mayor número de viajes se origina en la comuna 19.
Frente al destino de los viajes, las comunas hacia donde se moviliza la mayor proporción de la población caleña son las comunas 2, 3, 19, 17 y 22. En cuanto a los 3 medios de transporte estudiados, en estos coinciden en el orden de las comunas con mayor destino de estos viajes que son comuna 2, 3 y 19.
Con este análisis geográfico se puede identificar regiones especificas que por su dinámica económica o dotación de bienes públicos para la salud o la educación, incluso como la localización de la población permiten determina desde y hacia donde ocurren la mayor cantidad de desplazamientos en la ciudad.