Es necesario elaborar mapas que representen el uso de medios de transporte, así como los puntos de origen y destino dentro de la ciudad de Cali.
## Loading required package: sp
## Linking to GEOS 3.9.3, GDAL 3.5.2, PROJ 8.2.1; sf_use_s2() is TRUE
Una vez cargadas las librerias realizamos la carga de archivos
##Carga de Archivos
ComunasUp <- shapefile("comunas_up.shp")
ComunasUp
## class : SpatialPolygonsDataFrame
## features : 22
## extent : -76.59284, -76.46125, 3.331802, 3.505871 (xmin, xmax, ymin, ymax)
## crs : +proj=longlat +datum=WGS84 +no_defs
## variables : 8
## names : casos, comuna, nombre, zona_recol, area, perimetro, covid, viajes
## min values : 1, 1, Comuna 1, NA, 2329397.941, 7983.949, 5, 348
## max values : 39, 22, Comuna 9, NA, 12555929.024, 26480.361, 54, 2968
Se graficó el shape de comuna.shp y se descubrio que la ciudad de cali posee 22 comunas.
#plot(ComunasUp)
library(sf)
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.2.3
ComunasUp_sf <- st_as_sf(ComunasUp)
ComunasUp_sf$color <- as.factor(ComunasUp_sf$comuna) # Usar una columna para diferenciar los colores, por ejemplo ID
# Graficar el mapa con colores
ggplot(data = ComunasUp_sf) +
geom_sf(aes(fill = color)) +
scale_fill_viridis_d(option = "plasma") + # Puedes elegir una paleta de colores diferente si lo prefieres
theme_minimal() +
labs(title = "Mapa de las Comunas de Cali",
fill = "Comuna")
Se cargar los datos de la hoja 4 de excel:
EncuestaOrigen <- read.xlsx("EncuestaOrigenDestino.xlsx", sheet = "Sheet4")
Comunas_Origen <- EncuestaOrigen
Comunas_Origen_Cali <- ComunasUp
ComunasUp$comuna
## [1] 6 4 5 7 8 9 21 13 1 3 19 12 10 20 16 15 17 18 14 11 2 22
Origen <- Comunas_Origen$Comunas_Origen
Numero_Casos <- table(Origen)
Se obtuvieron algunos valores como “0” y “Fueradecali” que no coinciden con el valor de las demás comunas.
Comunas_Origen_Cali$Total=NA
Origen=Comunas_Origen$comunaorigen
casos=table(Origen)
Comunas_Origen_2=table(Origen)
ComunasUp$comuna[1]
## [1] 6
which(ComunasUp$comuna[1]==as.numeric(names(Comunas_Origen_2)))
## [1] 7
ordenorig=match(ComunasUp$comuna,as.numeric(names(Comunas_Origen_2)))
casos[ordenorig]
## Origen
## 06 04 05 07 08 09 21 13 01 03 19 12 10 20 16 15
## 998 1493 664 734 1124 952 818 1238 794 2121 2850 348 1401 733 993 1171
## 17 18 14 11 02 22
## 2377 1536 685 925 2968 1153
Comunas_Origen_Cali$Total=as.numeric(casos[ordenorig])
Comunas_Origen_Cali
## class : SpatialPolygonsDataFrame
## features : 22
## extent : -76.59284, -76.46125, 3.331802, 3.505871 (xmin, xmax, ymin, ymax)
## crs : +proj=longlat +datum=WGS84 +no_defs
## variables : 9
## names : casos, comuna, nombre, zona_recol, area, perimetro, covid, viajes, Total
## min values : 1, 1, Comuna 1, NA, 2329397.941, 7983.949, 5, 348, 348
## max values : 39, 22, Comuna 9, NA, 12555929.024, 26480.361, 54, 2968, 2968
spplot(Comunas_Origen_Cali[,"Total"])
Se puede visualizar en el gráfico por comuna el total de traslados desde cada una de las comunas origen.
Comunas_Origen_Cali$Total_Bicicletas_Origen=NA
Origen_bicicleta <- table(Comunas_Origen$comunaorigen, Comunas_Origen$TIPODEVEHÍCULO == 1)
Origen_bicicleta2=Origen_bicicleta[,2]
casosbici=table(Origen_bicicleta2)
ComunasUp$comuna[1]
## [1] 6
which(ComunasUp$comuna[1]==as.numeric(names(Origen_bicicleta2)))
## [1] 7
ordenorig=match(ComunasUp$comuna,as.numeric(names(Origen_bicicleta2)))
Origen_bicicleta2[ordenorig]
## 06 04 05 07 08 09 21 13 01 03 19 12 10 20 16 15 17 18 14 11
## 44 74 38 35 52 53 44 76 36 99 141 14 82 46 73 70 141 111 37 52
## 02 22
## 159 55
Comunas_Origen_Cali$Total_Bicicletas_Origen=as.numeric(Origen_bicicleta2[ordenorig])
Comunas_Origen_Cali
## class : SpatialPolygonsDataFrame
## features : 22
## extent : -76.59284, -76.46125, 3.331802, 3.505871 (xmin, xmax, ymin, ymax)
## crs : +proj=longlat +datum=WGS84 +no_defs
## variables : 10
## names : casos, comuna, nombre, zona_recol, area, perimetro, covid, viajes, Total, Total_Bicicletas_Origen
## min values : 1, 1, Comuna 1, NA, 2329397.941, 7983.949, 5, 348, 348, 14
## max values : 39, 22, Comuna 9, NA, 12555929.024, 26480.361, 54, 2968, 2968, 159
lbls <- as.character(Comunas_Origen_Cali$comuna)
spl <- list('sp.text', coordinates(Comunas_Origen_Cali), lbls, cex=.6)
spl[[2]][10,]=spl[[2]][10,]+0.005
Bicicleta_Origen <- spplot(Comunas_Origen_Cali[,10],
col.regions = colorRampPalette(c("lightblue", "darkblue"))(20),
sp.layout = spl)
Bicicleta_Origen
Comunas_Origen_Cali$Total_Moto_Origen=NA
Origen_Moto <- table(Comunas_Origen$comunaorigen, Comunas_Origen$TIPODEVEHÍCULO == 2)
Origen_Moto2=Origen_Moto[,2]
casos_Moto=table(Origen_Moto2)
ComunasUp$comuna[1]
## [1] 6
which(ComunasUp$comuna[1]==as.numeric(names(Origen_Moto2)))
## [1] 7
ordenorig=match(ComunasUp$comuna,as.numeric(names(Origen_Moto2)))
Origen_Moto2[ordenorig]
## 06 04 05 07 08 09 21 13 01 03 19 12 10 20 16 15
## 473 720 319 350 552 413 378 554 375 970 1280 176 675 339 450 536
## 17 18 14 11 02 22
## 1136 746 310 431 1414 515
Comunas_Origen_Cali$Total_Moto_Origen=as.numeric(Origen_Moto2[ordenorig])
Comunas_Origen_Cali
## class : SpatialPolygonsDataFrame
## features : 22
## extent : -76.59284, -76.46125, 3.331802, 3.505871 (xmin, xmax, ymin, ymax)
## crs : +proj=longlat +datum=WGS84 +no_defs
## variables : 11
## names : casos, comuna, nombre, zona_recol, area, perimetro, covid, viajes, Total, Total_Bicicletas_Origen, Total_Moto_Origen
## min values : 1, 1, Comuna 1, NA, 2329397.941, 7983.949, 5, 348, 348, 14, 176
## max values : 39, 22, Comuna 9, NA, 12555929.024, 26480.361, 54, 2968, 2968, 159, 1414
lbls = as.character(Comunas_Origen_Cali$comuna)
spl = list('sp.text', coordinates(Comunas_Origen_Cali), lbls, cex=.6)
spl[[2]][11,]=spl[[2]][11,]+0.005
Moto_Origen <- spplot(Comunas_Origen_Cali[,11],
col.regions = colorRampPalette(c("pink", "red"))(20),
sp.layout = spl)
Moto_Origen
### Carro-Origen
Comunas_Origen_Cali$Total_Carro_Origen=NA
OrigenCarr <- table(Comunas_Origen$comunaorigen, Comunas_Origen$TIPODEVEHÍCULO == 3)
OrigenCarr2=OrigenCarr[,2]
casosCarr=table(OrigenCarr2)
ComunasUp$comuna[1]
## [1] 6
which(ComunasUp$comuna[1]==as.numeric(names(OrigenCarr2)))
## [1] 7
ordenorig=match(ComunasUp$comuna,as.numeric(names(OrigenCarr2)))
OrigenCarr2[ordenorig]
## 06 04 05 07 08 09 21 13 01 03 19 12 10 20 16 15
## 389 551 241 283 420 382 328 486 301 854 1165 123 529 272 385 456
## 17 18 14 11 02 22
## 899 559 272 361 1121 489
Comunas_Origen_Cali$Total_Carro_Origen=as.numeric(OrigenCarr2[ordenorig])
Comunas_Origen_Cali
## class : SpatialPolygonsDataFrame
## features : 22
## extent : -76.59284, -76.46125, 3.331802, 3.505871 (xmin, xmax, ymin, ymax)
## crs : +proj=longlat +datum=WGS84 +no_defs
## variables : 12
## names : casos, comuna, nombre, zona_recol, area, perimetro, covid, viajes, Total, Total_Bicicletas_Origen, Total_Moto_Origen, Total_Carro_Origen
## min values : 1, 1, Comuna 1, NA, 2329397.941, 7983.949, 5, 348, 348, 14, 176, 123
## max values : 39, 22, Comuna 9, NA, 12555929.024, 26480.361, 54, 2968, 2968, 159, 1414, 1165
lbls = as.character(Comunas_Origen_Cali$comuna)
spl = list('sp.text', coordinates(Comunas_Origen_Cali), lbls, cex=.6)
spl[[2]][12,]=spl[[2]][12,]+0.005
Carro_Origen <- spplot(Comunas_Origen_Cali[,12],
col.regions = colorRampPalette(c("lightyellow", "darkorange"))(20),
sp.layout = spl)
Carro_Origen
Se realiza el agrupamiento de personas a partir del destino
ComunasUpDestino <- ComunasUp
Comunas_destino <- Comunas_Origen
ComunasUpDestino$TotaltrasDes=NA
tablaDes=Comunas_destino$comunadestino
casos=table(tablaDes)
comunadestino=table(tablaDes)
ComunasUp$comuna[1]
## [1] 6
which(ComunasUp$comuna[1]==as.numeric(names(comunadestino)))
## [1] 7
ordendest=match(ComunasUp$comuna,as.numeric(names(comunadestino)))
casos[ordendest]
## tablaDes
## 06 04 05 07 08 09 21 13 01 03 19 12 10 20 16 15
## 716 1856 522 748 1025 1279 515 673 230 3859 3158 246 927 351 743 579
## 17 18 14 11 02 22
## 2164 662 379 564 4810 1860
ComunasUpDestino$TotaltrasDes=as.numeric(casos[ordendest])
ComunasUpDestino
## class : SpatialPolygonsDataFrame
## features : 22
## extent : -76.59284, -76.46125, 3.331802, 3.505871 (xmin, xmax, ymin, ymax)
## crs : +proj=longlat +datum=WGS84 +no_defs
## variables : 9
## names : casos, comuna, nombre, zona_recol, area, perimetro, covid, viajes, TotaltrasDes
## min values : 1, 1, Comuna 1, NA, 2329397.941, 7983.949, 5, 348, 230
## max values : 39, 22, Comuna 9, NA, 12555929.024, 26480.361, 54, 2968, 4810
spplot(ComunasUpDestino[,9])
ComunasUpDestino$Total_Bicicleta_Destino=NA
tabla_Destino_bicicleta <- table(Comunas_Origen$comunadestino, Comunas_destino$TIPODEVEHÍCULO == 1)
tabla_Destino_bicicleta2=tabla_Destino_bicicleta[,2]
casosbici=table(tabla_Destino_bicicleta2)
ComunasUp$comuna[1]
## [1] 6
which(ComunasUp$comuna[1]==as.numeric(names(tabla_Destino_bicicleta2)))
## [1] 7
ordendest=match(ComunasUp$comuna,as.numeric(names(tabla_Destino_bicicleta2)))
tabla_Destino_bicicleta2[ordendest]
## 06 04 05 07 08 09 21 13 01 03 19 12 10 20 16 15 17 18 14 11
## 34 85 41 41 54 65 26 33 12 189 147 15 43 25 35 20 115 31 22 29
## 02 22
## 218 100
ComunasUpDestino$Total_Bicicleta_Destino=as.numeric(tabla_Destino_bicicleta2[ordendest])
ComunasUpDestino
## class : SpatialPolygonsDataFrame
## features : 22
## extent : -76.59284, -76.46125, 3.331802, 3.505871 (xmin, xmax, ymin, ymax)
## crs : +proj=longlat +datum=WGS84 +no_defs
## variables : 10
## names : casos, comuna, nombre, zona_recol, area, perimetro, covid, viajes, TotaltrasDes, Total_Bicicleta_Destino
## min values : 1, 1, Comuna 1, NA, 2329397.941, 7983.949, 5, 348, 230, 12
## max values : 39, 22, Comuna 9, NA, 12555929.024, 26480.361, 54, 2968, 4810, 218
lbls = as.character(ComunasUpDestino$comuna)
spl = list('sp.text', coordinates(ComunasUpDestino), lbls, cex=.6)
spl[[2]][10,]=spl[[2]][10,]+0.005
Bicicleta_Destino <- spplot(ComunasUpDestino[,10],
col.regions = colorRampPalette(c("lightblue", "darkblue"))(20),
sp.layout = spl)
Bicicleta_Destino
ComunasUpDestino$TotalMotoDes=NA
tabla_Destino_Moto <- table(Comunas_destino$comunadestino, Comunas_destino$TIPODEVEHÍCULO == 2)
tabla_Destino_Moto2=tabla_Destino_Moto[,2]
casos_Moto=table(tabla_Destino_Moto2)
ComunasUp$comuna[1]
## [1] 6
which(ComunasUp$comuna[1]==as.numeric(names(tabla_Destino_Moto2)))
## [1] 7
ordendest=match(ComunasUp$comuna,as.numeric(names(tabla_Destino_Moto2)))
tabla_Destino_Moto2[ordendest]
## 06 04 05 07 08 09 21 13 01 03 19 12 10 20 16 15
## 323 846 215 353 470 608 243 346 112 1734 1421 128 419 151 327 271
## 17 18 14 11 02 22
## 927 302 188 254 2177 911
ComunasUpDestino$TotalMotoDes=as.numeric(tabla_Destino_Moto2[ordendest])
ComunasUpDestino
## class : SpatialPolygonsDataFrame
## features : 22
## extent : -76.59284, -76.46125, 3.331802, 3.505871 (xmin, xmax, ymin, ymax)
## crs : +proj=longlat +datum=WGS84 +no_defs
## variables : 11
## names : casos, comuna, nombre, zona_recol, area, perimetro, covid, viajes, TotaltrasDes, Total_Bicicleta_Destino, TotalMotoDes
## min values : 1, 1, Comuna 1, NA, 2329397.941, 7983.949, 5, 348, 230, 12, 112
## max values : 39, 22, Comuna 9, NA, 12555929.024, 26480.361, 54, 2968, 4810, 218, 2177
lbls = as.character(ComunasUpDestino$comuna)
spl = list('sp.text', coordinates(ComunasUpDestino), lbls, cex=.6)
spl[[2]][11,]=spl[[2]][11,]+0.005
MotoDes <- spplot(ComunasUpDestino[,11],
col.regions = colorRampPalette(c("pink", "red"))(20),
sp.layout = spl)
MotoDes
ComunasUpDestino$TotalCarro_Destino=NA
tabla_Destino_Carro <- table(Comunas_destino$comunadestino, Comunas_destino$TIPODEVEHÍCULO == 3)
tabla_Destino_Carro2=tabla_Destino_Carro[,2]
casosCarr=table(tabla_Destino_Carro2)
ComunasUp$comuna[1]
## [1] 6
which(ComunasUp$comuna[1]==as.numeric(names(tabla_Destino_Carro2)))
## [1] 7
ordendest=match(ComunasUp$comuna,as.numeric(names(tabla_Destino_Carro2)))
tabla_Destino_Carro2[ordendest]
## 06 04 05 07 08 09 21 13 01 03 19 12 10 20 16 15
## 275 757 225 286 403 489 198 226 86 1557 1302 85 384 144 321 245
## 17 18 14 11 02 22
## 959 276 138 239 2006 694
ComunasUpDestino$TotalCarro_Destino=as.numeric(tabla_Destino_Carro2[ordendest])
ComunasUpDestino
## class : SpatialPolygonsDataFrame
## features : 22
## extent : -76.59284, -76.46125, 3.331802, 3.505871 (xmin, xmax, ymin, ymax)
## crs : +proj=longlat +datum=WGS84 +no_defs
## variables : 12
## names : casos, comuna, nombre, zona_recol, area, perimetro, covid, viajes, TotaltrasDes, Total_Bicicleta_Destino, TotalMotoDes, TotalCarro_Destino
## min values : 1, 1, Comuna 1, NA, 2329397.941, 7983.949, 5, 348, 230, 12, 112, 85
## max values : 39, 22, Comuna 9, NA, 12555929.024, 26480.361, 54, 2968, 4810, 218, 2177, 2006
lbls = as.character(ComunasUpDestino$comuna)
spl = list('sp.text', coordinates(ComunasUpDestino), lbls, cex=.6)
spl[[2]][12,]=spl[[2]][12,]+0.005
Carro_Destino <- spplot(ComunasUpDestino[,11],
col.regions = colorRampPalette(c("lightyellow", "darkorange"))(20),
sp.layout = spl)
Carro_Destino
Teniendo en cuenta el origen el mayor movimiento se ve en las comunas El aguacatal(2), Valle de Lili (17) y El ingenio (19), si lo agrupamos por el número de personas que usan bicicleta y moto continuan siendo estas mismas comunas liderando, y en el caso del carro continua el mismo movimiento salvo por valle de Lili.
Teniendo en cuenta el Destino el mayor movimiento se ve en las comunas El aguacatal(2), San Antonio (3) y Valle de Lili (17), al agruparlo teniendo en cuenta el número de personas que usan bicicleta, moto y carro tenemos El aguacatal(2), San Antonio (3) y El ingenio (19).