Carga de los datos

comunas=shapefile("~/Casos/cali/Comunas.shp")

EncuestaOrigenDestino <- read_excel("Casos/EncuestaOrigenDestino.xlsx")

EncuestaOrigenDestino<-as.data.frame(EncuestaOrigenDestino)

Origen - Cantidad de viajes por comuna

PreparaciĂłn de la base

datos <- EncuestaOrigenDestino[!EncuestaOrigenDestino$`comuna origen` %in% c("0", "Fuera de Cali"), ]
datos <- datos[!datos$`comuna destino` %in% c("0", "Fuera de Cali"), ]

datos <- datos %>% 
  dplyr::select("TIPO DE VEHÍCULO" ,"comuna origen" , "comuna destino")

origen <- datos %>%
  dplyr::group_by(`comuna origen`) %>%
  dplyr::summarise(Conteo = n())

destino <- datos %>%
  dplyr::group_by(`comuna destino`) %>%
  dplyr::summarise(Conteo = n())

origen$`comuna origen`   <- as.numeric(origen$`comuna origen`)
destino$`comuna destino` <- as.numeric(destino$`comuna destino`)

comunas$conteo = origen[comunas$comuna,]$Conteo
print(comunas@data)
##    OBJECTID gid comuna    nombre conteo
## 0         1 107      2  Comuna 2   2250
## 1         2 108      1  Comuna 1    626
## 2         3 109      3  Comuna 3   1610
## 3         4 110     19 Comuna 19   2241
## 4         5 103     15 Comuna 15    974
## 5         6 104     17 Comuna 17   1762
## 6         7 105     18 Comuna 18   1208
## 7         8 106     22 Comuna 22    985
## 8         9  89      6  Comuna 6    797
## 9        10  90      4  Comuna 4   1193
## 10       11  91      5  Comuna 5    521
## 11       12  92      7  Comuna 7    583
## 12       13  93      8  Comuna 8    862
## 13       14  94      9  Comuna 9    737
## 14       15  95     21 Comuna 21    693
## 15       16  96     13 Comuna 13   1031
## 16       17  97     12 Comuna 12    257
## 17       18  98     14 Comuna 14    575
## 18       19  99     11 Comuna 11    717
## 19       20 100     10 Comuna 10   1094
## 20       21 101     20 Comuna 20    599
## 21       22 102     16 Comuna 16    836

Mapas origen

Conteos generales por comuna

centros <- coordinates(comunas) # para etiquetar cada comuna

spplot(
  comunas[,5],
  main = "Origen de viajes",
  cuts = 6,
  col.regions = brewer.pal(n = 7, name = "Blues"),
  sp.layout = list(
    list("sp.text", centros, comunas@data[,3], cex = 0.7, font = 1)
  )
)

El mapa evidencia que ciertas comunas, como la 2 y la 19, concentran un nĂșmero elevado de viajes que inician en esos lugares, lo que podrĂ­a indicar que son zonas residenciales o puntos de partida relevantes dentro de la ciudad; en contraste, comunas con conteos menores presentan menor emisiĂłn de viajes, posiblemente por ser ĂĄreas con menor densidad poblacional o actividad generadora de desplazamientos.

Conteos por tipo de vehiculo

ori_bici<-datos %>% filter(`TIPO DE VEHÍCULO`==1) %>%group_by(`comuna origen`)%>%summarise(conteo = n())
ori_bici$`comuna origen`<- as.numeric(ori_bici$`comuna origen`)

ori_moto<-datos %>% filter(`TIPO DE VEHÍCULO`==2) %>%group_by(`comuna origen`)%>%summarise(conteo = n())
ori_moto$`comuna origen`<- as.numeric(ori_moto$`comuna origen`)

ori_carro<-datos %>% filter(`TIPO DE VEHÍCULO`==3) %>%group_by(`comuna origen`)%>%summarise(conteo = n())
ori_carro$`comuna origen`<- as.numeric(ori_carro$`comuna origen`)

comunas$conteo_bici = ori_bici[comunas$comuna,]$conteo
comunas$conteo_moto = ori_moto[comunas$comuna,]$conteo
comunas$conteo_auto = ori_carro[comunas$comuna,]$conteo

p1=spplot(
  comunas[,6],
  cuts = 6,
  sub = "Bicicleta",
  col.regions = brewer.pal(n = 7, name = "Blues"),
  sp.layout = list(
    list("sp.text", centros, comunas@data[,3], cex = 0.7, font = 1)
  )
)

p2=spplot(
  comunas[,7],
  cuts = 6,
  sub = "Moto",
  col.regions = brewer.pal(n = 7, name = "Blues"),
  sp.layout = list(
    list("sp.text", centros, comunas@data[,3], cex = 0.7, font = 1)
  )
)

p3=spplot(
  comunas[,8],
  cuts = 6,
  sub = "Carro",
  col.regions = brewer.pal(n = 7, name = "Blues"),
  sp.layout = list(
    list("sp.text", centros, comunas@data[,3], cex = 0.7, font = 1)
  )
)


grid.arrange(p1,p2,p3,ncol=3,nrow=1)

  • Origen en bicicleta: De acuerdo con el grĂĄfico, comunas como la 2, 3 o 19 tienden a aparecer con valores mĂĄs altos de viajes en bicicleta, reflejando zonas donde las personas usan este modo de transporte con mĂĄs frecuencia.

  • Origen en moto: La moto es un modo muy extendido en varias comunas de la ciudad. En el mapa de origen por moto, suelen dominar aquellas comunas ya conocidas por altos conteos totales, como la 2, 17 o 19.

  • Origen en carro: Para el automĂłvil, se repite el patrĂłn de comunas con alta actividad (por ejemplo, la 2, 3, 17 y 19), que acumulan los mayores valores de viajes que comienzan en carro. Ello apunta a zonas con niveles de ingresos suficientes para el uso de vehĂ­culo particular o con infraestructura que favorece el desplazamiento en automĂłvil.

Mapas Destino

Conteos generales por comuna

comunas=shapefile("~/Casos/cali/Comunas.shp")
## Warning in OGRSpatialRef(dsn, layer, morphFromESRI = morphFromESRI, dumpSRS
## = dumpSRS, : Discarded ellps _custom in Proj4 definition: +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
## Warning in OGRSpatialRef(dsn, layer, morphFromESRI = morphFromESRI, dumpSRS
## = dumpSRS, : Discarded datum D_<custom> in Proj4 definition: +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
## Warning in showSRID(wkt2, "PROJ"): Discarded ellps _custom in Proj4 definition:
## +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 +type=crs
## Warning in showSRID(wkt2, "PROJ"): Discarded datum D_<custom> in Proj4
## definition
comunas$conteo = destino[comunas$comuna,]$Conteo
print(comunas@data)
##    OBJECTID gid comuna    nombre conteo
## 0         1 107      2  Comuna 2   3773
## 1         2 108      1  Comuna 1    187
## 2         3 109      3  Comuna 3   2887
## 3         4 110     19 Comuna 19   2441
## 4         5 103     15 Comuna 15    481
## 5         6 104     17 Comuna 17   1616
## 6         7 105     18 Comuna 18    526
## 7         8 106     22 Comuna 22   1561
## 8         9  89      6  Comuna 6    570
## 9        10  90      4  Comuna 4   1497
## 10       11  91      5  Comuna 5    440
## 11       12  92      7  Comuna 7    598
## 12       13  93      8  Comuna 8    830
## 13       14  94      9  Comuna 9   1055
## 14       15  95     21 Comuna 21    434
## 15       16  96     13 Comuna 13    560
## 16       17  97     12 Comuna 12    207
## 17       18  98     14 Comuna 14    316
## 18       19  99     11 Comuna 11    483
## 19       20 100     10 Comuna 10    741
## 20       21 101     20 Comuna 20    303
## 21       22 102     16 Comuna 16    645
centros <- coordinates(comunas) # para etiquetar cada comuna

spplot(
  comunas[,5],
  main = "Destino de viajes",
  cuts = 6,
  col.regions = brewer.pal(n = 7, name = "Blues"),
  sp.layout = list(
    list("sp.text", centros, comunas@data[,3], cex = 0.7, font = 1)
  )
)

Observa que comunas como la 2 y la 3 destacan también como principales receptoras de viajes, lo que indica una fuerte atracción laboral o comercial en esas zonas. Por otro lado, comunas con menos arribos podrían ser mayormente residenciales o con menor oferta de servicios, generando menos flujos hacia ellas.

Conteos por tipo de vehiculo

des_bici<-datos %>% filter(`TIPO DE VEHÍCULO`==1) %>%group_by(`comuna destino`)%>%summarise(conteo = n())
des_bici$`comuna destino`<- as.numeric(des_bici$`comuna destino`)

des_moto<-datos %>% filter(`TIPO DE VEHÍCULO`==2) %>%group_by(`comuna destino`)%>%summarise(conteo = n())
des_moto$`comuna destino`<- as.numeric(des_moto$`comuna destino`)

des_carro<-datos %>% filter(`TIPO DE VEHÍCULO`==3) %>%group_by(`comuna destino`)%>%summarise(conteo = n())
des_carro$`comuna destino`<- as.numeric(des_carro$`comuna destino`)

comunas$conteo_bici = des_bici[comunas$comuna,]$conteo
comunas$conteo_moto = des_moto[comunas$comuna,]$conteo
comunas$conteo_auto = des_carro[comunas$comuna,]$conteo

p1=spplot(
  comunas[,6],
  cuts = 6,
  sub = "Bicicleta",
  col.regions = brewer.pal(n = 7, name = "Blues"),
  sp.layout = list(
    list("sp.text", centros, comunas@data[,3], cex = 0.7, font = 1)
  )
)

p2=spplot(
  comunas[,7],
  cuts = 6,
  sub = "Moto",
  col.regions = brewer.pal(n = 7, name = "Blues"),
  sp.layout = list(
    list("sp.text", centros, comunas@data[,3], cex = 0.7, font = 1)
  )
)

p3=spplot(
  comunas[,8],
  cuts = 6,
  sub = "Carro",
  col.regions = brewer.pal(n = 7, name = "Blues"),
  sp.layout = list(
    list("sp.text", centros, comunas@data[,3], cex = 0.7, font = 1)
  )
)
grid.arrange(p1,p2,p3,ncol=3,nrow=1)

  • Destino en bicicleta: Comunas como la 2 o la 3 predominan en los destinos de viajes en bicicleta.

  • Destino en moto: Para la llegada en motocicleta nuevamente la 2, 3 y 19 suelen registrar conteos elevados.

  • Destino en carro: Comunas como la 2, 3 y 19 continĂșan figurando como destino en la parte superior de la escala, para el caso de viajes en carro.