Carga de shape de comunas

comunas <- st_read("Casos/cali/Comunas.shp")
## Reading layer `Comunas' from data source 
##   `D:\Documentos\Maestria_Ciencia_de_datos\Analisis_espacial\Unidad 1\Casos\cali\Comunas.shp' 
##   using driver `ESRI Shapefile'
## Simple feature collection with 22 features and 4 fields
## Geometry type: POLYGON
## Dimension:     XY
## Bounding box:  xmin: 1053868 ymin: 860190.2 xmax: 1068492 ymax: 879441.5
## Projected CRS: MAGNA_Colombia_Cali
comunas
## Simple feature collection with 22 features and 4 fields
## Geometry type: POLYGON
## Dimension:     XY
## Bounding box:  xmin: 1053868 ymin: 860190.2 xmax: 1068492 ymax: 879441.5
## Projected CRS: MAGNA_Colombia_Cali
## First 10 features:
##    OBJECTID gid comuna    nombre                       geometry
## 1         1 107      2  Comuna 2 POLYGON ((1059648 874236.3,...
## 2         2 108      1  Comuna 1 POLYGON ((1054094 875172.8,...
## 3         3 109      3  Comuna 3 POLYGON ((1061757 874615.5,...
## 4         4 110     19 Comuna 19 POLYGON ((1057817 873269.4,...
## 5         5 103     15 Comuna 15 POLYGON ((1065485 869864.1,...
## 6         6 104     17 Comuna 17 POLYGON ((1061675 868320.9,...
## 7         7 105     18 Comuna 18 POLYGON ((1059061 867223.6,...
## 8         8 106     22 Comuna 22 POLYGON ((1059486 864976.4,...
## 9         9  89      6  Comuna 6 POLYGON ((1065143 879409.5,...
## 10       10  90      4  Comuna 4 POLYGON ((1063833 877507.1,...

Carga de datos de trayectos

OrigenDestino <- read_excel("Casos/OrigenDestino.xlsx")
OrigenDestino
## # A tibble: 20,127 × 3
##    vehiculo  comuna_origen comuna_destino
##    <chr>             <dbl>          <dbl>
##  1 Moto                  2             22
##  2 Moto                  6              2
##  3 Automovil             6              4
##  4 Automovil             3              2
##  5 Automovil             4              2
##  6 Automovil             6              2
##  7 Moto                  4              2
##  8 Moto                  2              3
##  9 Moto                 13              2
## 10 Automovil             6             19
## # ℹ 20,117 more rows
comunas_etiquetas <- comunas %>%
  st_point_on_surface()
## Warning: st_point_on_surface assumes attributes are constant over geometries

Mapa 1: Total de comuna_origen

origen_totales <- OrigenDestino %>%
  group_by(comuna_origen) %>%
  summarise(total_origen = n())

mapa1_data <- comunas %>%
  left_join(origen_totales, by = c("comuna" = "comuna_origen"))

ggplot(mapa1_data) +
  geom_sf(aes(fill = total_origen)) +
  geom_sf_text(data = comunas_etiquetas, aes(label = comuna), color = "white", size = 3) +
  scale_fill_viridis_c(na.value = "white") +
  labs(title = "Total de comuna_origen por comuna")

tabla1_raw <- OrigenDestino %>%
  group_by(comuna_origen) %>%
  summarise(total = n()) %>%
  arrange(desc(total))

tabla1 <- tabla1_raw %>%
  pivot_wider(names_from = comuna_origen, values_from = total, values_fill = 0)

kable(tabla1, caption = "Tabla 1: Total de viajes por comuna de origen")
Tabla 1: Total de viajes por comuna de origen
2 19 17 3 18 4 10 13 22 15 8 16 6 11 9 21 1 20 7 14 5 12
2045 2030 1618 1464 1111 1072 1010 927 900 887 786 768 720 649 648 630 562 539 531 526 473 231

Los trayectos se originan principalmente en las comunas 2, 19 y 17, mientras que las comunas 12 y 5 son de donde menos registros de inicio de trayectoria se reportan.

Mapa 2: Total de comuna_destino

destino_totales <- OrigenDestino %>%
  group_by(comuna_destino) %>%
  summarise(total_destino = n())

mapa2_data <- comunas %>%
  left_join(destino_totales, by = c("comuna" = "comuna_destino"))

ggplot(mapa2_data) +
  geom_sf(aes(fill = total_destino)) +
  geom_sf_text(data = comunas_etiquetas, aes(label = comuna), color = "white", size = 3) +
  scale_fill_viridis_c(na.value = "white") +
  labs(title = "Total de comuna_destino por comuna")

tabla2_raw <- OrigenDestino %>%
  group_by(comuna_destino) %>%
  summarise(total = n()) %>%
  arrange(desc(total))

tabla2 <- tabla2_raw %>%
  pivot_wider(names_from = comuna_destino, values_from = total, values_fill = 0)

kable(tabla2, caption = "Tabla 2: Total de viajes por comuna de destino")
Tabla 2: Total de viajes por comuna de destino
2 3 19 17 22 4 9 8 10 16 7 13 6 18 15 11 5 21 14 20 12 1
3445 2597 2206 1488 1425 1354 950 753 678 596 539 502 494 484 448 447 402 390 290 277 190 172

Los trayectos finalizan principalmente en las comunas 2, 3 y 19, mientras que las comunas 1 y 12 son es donde menos registros de finalización de trayectoria se reportan.

Mapa 3: Origen en Bicicleta

origen_bici <- OrigenDestino %>%
  filter(vehiculo == "Bicicleta") %>%
  group_by(comuna_origen) %>%
  summarise(total = n())

mapa3_data <- comunas %>%
  left_join(origen_bici, by = c("comuna" = "comuna_origen"))

ggplot(mapa3_data) +
  geom_sf(aes(fill = total)) +
  geom_sf_text(data = comunas_etiquetas, aes(label = comuna), color = "white", size = 3) +
  scale_fill_viridis_c(na.value = "white") +
  labs(title = "Origen en Bicicleta")

Mapa 4: Origen en Moto

origen_moto <- OrigenDestino %>%
  filter(vehiculo == "Moto") %>%
  group_by(comuna_origen) %>%
  summarise(total = n())

mapa4_data <- comunas %>%
  left_join(origen_moto, by = c("comuna" = "comuna_origen"))

ggplot(mapa4_data) +
  geom_sf(aes(fill = total)) +
  geom_sf_text(data = comunas_etiquetas, aes(label = comuna), color = "white", size = 3) +
  scale_fill_viridis_c(na.value = "white") +
  labs(title = "Origen en Moto")

Mapa 5: Origen en Automóvil

origen_auto <- OrigenDestino %>%
  filter(vehiculo == "Automovil") %>%
  group_by(comuna_origen) %>%
  summarise(total = n())

mapa5_data <- comunas %>%
  left_join(origen_auto, by = c("comuna" = "comuna_origen"))

ggplot(mapa5_data) +
  geom_sf(aes(fill = total)) +
  geom_sf_text(data = comunas_etiquetas, aes(label = comuna), color = "white", size = 3) +
  scale_fill_viridis_c(na.value = "white") +
  labs(title = "Origen en Automóvil")

Mapa 6: Destino en Bicicleta

destino_bici <- OrigenDestino %>%
  filter(vehiculo == "Bicicleta") %>%
  group_by(comuna_destino) %>%
  summarise(total = n())

mapa6_data <- comunas %>%
  left_join(destino_bici, by = c("comuna" = "comuna_destino"))

ggplot(mapa6_data) +
  geom_sf(aes(fill = total)) +
  geom_sf_text(data = comunas_etiquetas, aes(label = comuna), color = "white", size = 3) +
  scale_fill_viridis_c(na.value = "white") +
  labs(title = "Destino en Bicicleta")

Mapa 7: Destino en Moto

destino_moto <- OrigenDestino %>%
  filter(vehiculo == "Moto") %>%
  group_by(comuna_destino) %>%
  summarise(total = n())

mapa7_data <- comunas %>%
  left_join(destino_moto, by = c("comuna" = "comuna_destino"))

ggplot(mapa7_data) +
  geom_sf(aes(fill = total)) +
  geom_sf_text(data = comunas_etiquetas, aes(label = comuna), color = "white", size = 3) +
  scale_fill_viridis_c(na.value = "white") +
  labs(title = "Destino en Moto")

Mapa 8: Destino en Automóvil

destino_auto <- OrigenDestino %>%
  filter(vehiculo == "Automovil") %>%
  group_by(comuna_destino) %>%
  summarise(total = n())

mapa8_data <- comunas %>%
  left_join(destino_auto, by = c("comuna" = "comuna_destino"))

ggplot(mapa8_data) +
  geom_sf(aes(fill = total)) +
  geom_sf_text(data = comunas_etiquetas, aes(label = comuna), color = "white", size = 3) +
  scale_fill_viridis_c(na.value = "white") +
  labs(title = "Destino en Automóvil")

Conclusiones