Se realizará un estudio sobre el conteo de personas cuya comuna de origen se encuentra en la ciudad de Cali, con el propósito de identificar el número de personas que se movilizan desde Cali utilizando tres tipos de vehículos: bicicleta, motocicleta y automóvil. Los resultados se visualizarán en diferentes mapas temáticos, con el fin de analizar en qué comunas es más común el uso de cada tipo de vehículo y, en general, desde qué zonas de la ciudad se presenta mayor movimiento poblacional.
# 1. Carga archivo shapefile "Comunas.shp" de la ruta.
comunas <- st_read("/Users/jesusposso/Documents/Maestria/2025-2/SIG/M1U1/Actividad1/Actividad1/Datos/cali/Comunas.shp",
quiet = TRUE # Esto suprime los mensajes informativos
)
# 2. Carga archivo de Excel para ser transformado en archivo .shp
datos_excel <- read_excel("/Users/jesusposso/Documents/Maestria/2025-2/SIG/M1U1/Actividad1/Actividad1/Datos/EncuestaOrigenDestino.xlsx", sheet = "Hoja1")
# 3. Aplica la limpieza del nombre de las columnas después de cargar el Excel
datos_excel <- datos_excel %>% clean_names()
A continuación, se presentará un conteo general del archivo EncuestaOrigenDestino.xlsx, en el cual se filtrarán las personas cuyo origen corresponda a alguna comuna de la ciudad de Cali. Posteriormente, se realizará un conteo del número de personas por comuna de origen, con el fin de visualizar el movimiento poblacional dentro de la ciudad.
# 1. Realizar el conteo de registros por comuna
conteo_excel <- datos_excel %>%
# Agrupar por el nombre de la comuna
group_by(comuna_origen) %>%
# Contar cuántos registros hay en cada grupo (comuna)
summarise(
Total_Registros = n(), # La función n() cuenta el número de filas en cada grupo
.groups = 'drop' # Quita la agrupación al finalizar
)
# 2. Filtrar los valores deseados (el nombre númerico de las comunas de Cali)
## 2.1 Crear filtro númerico mediante expresión regular
conteo_excel_filtrar <- conteo_excel %>%
mutate(
num_comuna = str_extract(comuna_origen, "[0-9]+"),
num_comuna = as.numeric(num_comuna)
)
## 2.2 Fltrar columnas de tipo númerico
conteo_filtrado <- conteo_excel_filtrar %>%
# Filtrar para incluir solo las comunas cuyo número esté entre 1 y 22
filter(num_comuna >= 1 & num_comuna <= 22) %>%
# Quitar la columna auxiliar si ya no la necesitas
select(-comuna_origen)
# 3. Unir el shapefile con el dataframe de conteo
comunas_final <- comunas %>%
rename(num_comuna = comuna) %>% # Renombrar la columna del SHP para que coincida con la tabla de conteo
# Realizar la unión (join)
left_join(conteo_filtrado, by = "num_comuna")
# 4. Mapa 1: conteo de registros por comuna origen del dataset filtrando dentro de Cali
# 4.1. Calcular el centroide de cada comuna para posicionar la etiqueta
comunas_etiquetas <- comunas_final %>%
st_centroid() # Convierte cada polígono en un punto central (el centroide)
# 4.2. Definir los puntos de visualización de la escala (breaks)
breaks_a_mostrar <- comunas_final %>%
pull(Total_Registros) %>%
# Se ajusta valores para la visualización de la escala
quantile(probs = c(0, 0.25, 0.65, 0.82, 0.86, 0.92, 1), na.rm = TRUE)
# 4.2. Generar el mapa con la escala ajustada
ggplot(data = comunas_final) +
geom_sf(aes(fill = Total_Registros), color = "grey") +
# Capa de Etiquetas (los números de comuna)
geom_sf_text(
data = comunas_etiquetas, # Usamos el objeto con centroides
aes(label = num_comuna), # Mapeamos el texto al número de comuna
size = 3, # Tamaño de la fuente (ajusta según necesidad)
color = "white", # Color del texto
check_overlap = TRUE # Ayuda a evitar que las etiquetas se superpongan
) +
# Añade títulos y subtítulos (labs)
labs(
title = "Conteo de Registros por Comuna de Origen en Cali",
subtitle = "Distribución del Total de Registros",
fill = "Total Registros"
) +
theme_minimal() +
# Usar los 7 valores de visualización calculadas
scale_fill_gradient(
low = "lightblue",
high = "darkblue",
# Asigna las cuatro rupturas
breaks = breaks_a_mostrar,
# Formatea las etiquetas con comas (si son números grandes)
labels = scales::label_comma()
)
# 1. Reordenar el dataframe y luego ordenar por conteo
conteo_filtrado <- conteo_filtrado %>%
select(num_comuna, Total_Registros) %>% # Ordenar las columnas
arrange(desc(Total_Registros)) # desc() ordena de mayor a menor
# 2. Mostrar la tabla con el nuevo orden
kable(
conteo_filtrado, # Usamos el data frame ordenado
caption = "Tabla 1. TOP Comunas con Mayor Conteo de Registros",
format = "html",
align = c("l", "c"),
digits = 0,
row.names = FALSE
) %>%
kable_styling(
full_width = FALSE,
bootstrap_options = c("striped", "hover", "responsive"),
position = "center",
font_size = 12,
row_label_position = "c"
) %>%
column_spec(1, bold = TRUE) %>% # Hace la columna de la comuna en negrita
row_spec(0, bold = TRUE, color = "white", background = "#2C3E50") %>%
scroll_box(width = "100%", height = "400px") # Scroll vertical para tabla larga
num_comuna | Total_Registros |
---|---|
2 | 2968 |
19 | 2850 |
17 | 2377 |
3 | 2121 |
18 | 1536 |
4 | 1493 |
10 | 1401 |
13 | 1238 |
15 | 1171 |
22 | 1153 |
8 | 1124 |
6 | 998 |
16 | 993 |
9 | 952 |
11 | 925 |
21 | 818 |
1 | 794 |
7 | 734 |
20 | 733 |
14 | 685 |
5 | 664 |
12 | 348 |
Conclusión: Distribución Desigual de Registros por Comuna en Cali
El análisis del mapa coroplético que ilustra el “Conteo de Registros por Comuna de Origen en Cali” revela una marcada disparidad espacial en la distribución del fenómeno estudiado a lo largo de las divisiones administrativas de la ciudad.
Puntos Clave: Concentración en el Eje Central-Noroccidental: Los mayores volúmenes de registros se concentran fuertemente en las comunas ubicadas en el eje central y noroccidental de Cali. La Comuna 2 (con el máximo de 2.968 registros) y las Comunas 17 y 19 (con 2.850 y 2.377 de registros, respectivamente) son los principales focos de concentración.
Baja Densidad en la Periferia y Oriente: En contraste, las zonas con el menor número de registros se sitúan predominantemente en la periferia, especialmente en las comunas del extremo este y ciertas áreas periféricas occidentales, como la Comuna 5 y la Comuna 12, que presentan los mínimos (664 y 348 registros, respectivamente).
En resumen, la distribución de los registros no es homogénea, sino que está altamente concentrada en un número reducido de comunas. Esto indica que cualquier política o intervención relacionada con estos registros debe priorizar o diseñar estrategias diferenciadas para las áreas de alta concentración (Comunas 2, 17, 19) y las de baja concentración (Comunas 5, 12, 14), dado el amplio rango de variación en los conteos.
A continuación, se continuará con el análisis geográfico de la ciudad de Cali, enfocándose en las personas cuyo medio de transporte es la bicicleta.
# 1. Realizar el conteo de registros por comuna
conteo_excel_b <- datos_excel %>%
# Filtrar solo registros donde tipo_de_vehiculo sea 1 (Bicicleta)
filter(tipo_de_vehiculo == 1) %>%
# Agrupar por el nombre de la comuna
group_by(comuna_origen) %>%
# Contar cuántos registros hay en cada grupo (comuna)
summarise(
Total_Registros = n(), # La función n() cuenta el número de filas en cada grupo
.groups = 'drop' # Quita la agrupación al finalizar
)
# 2. Filtrar los valores deseados (el nombre númerico de las comunas de Cali)
## 2.1 Crear filtro númerico mediante expresión regular
conteo_excel_filtrar_b <- conteo_excel_b %>%
mutate(
num_comuna = str_extract(comuna_origen, "[0-9]+"),
num_comuna = as.numeric(num_comuna)
)
## 2.2 Fltrar columnas de tipo númerico
conteo_filtrado_b <- conteo_excel_filtrar_b %>%
# Filtrar para incluir solo las comunas cuyo número esté entre 1 y 22
filter(num_comuna >= 1 & num_comuna <= 22) %>%
# Quitar la columna auxiliar si ya no la necesitas
select(-comuna_origen)
# 3. Unir el shapefile con el dataframe de conteo
comunas_final_b <- comunas %>%
rename(num_comuna = comuna) %>% # Renombrar la columna del SHP para que coincida con la tabla de conteo
# Realizar la unión (join)
left_join(conteo_filtrado_b, by = "num_comuna")
# 4. Mapa 1: conteo de registros por comuna origen del dataset filtrando dentro de Cali
# 4.1. Calcular el centroide de cada comuna para posicionar la etiqueta
comunas_etiquetas <- comunas_final %>%
st_centroid() # Convierte cada polígono en un punto central (el centroide)
# 4.2. Definir los puntos de visualización de la escala (breaks)
breaks_a_mostrar_b <- comunas_final_b %>%
pull(Total_Registros) %>%
# Se ajusta valores para la visualización de la escala
quantile(probs = c(0, 0.25, 0.65, 0.82, 0.86, 0.92, 1), na.rm = TRUE)
# 4.3. Generar el mapa con la escala ajustada
ggplot(data = comunas_final_b) +
geom_sf(aes(fill = Total_Registros), color = "grey") +
# Capa de Etiquetas (los números de comuna)
geom_sf_text(
data = comunas_etiquetas, # Usamos el objeto con centroides
aes(label = num_comuna), # Mapeamos el texto al número de comuna
size = 3, # Tamaño de la fuente (ajusta según necesidad)
color = "white", # Color del texto
check_overlap = TRUE # Ayuda a evitar que las etiquetas se superpongan
) +
# Añade títulos y subtítulos (labs)
labs(
title = "Conteo de Registros por Comuna de Origen en Cali",
subtitle = "Distribución del Total de Registros, tipo de vehiculo bicicleta",
fill = "Total Registros"
) +
theme_minimal() +
# Usar los 7 valores de visualización calculadas
scale_fill_gradient(
low = "lightblue",
high = "darkblue",
# Asigna las cuatro rupturas
breaks = breaks_a_mostrar_b,
# Formatea las etiquetas con comas (si son números grandes)
labels = scales::label_comma()
)
# 1. Reordenar el dataframe y luego ordenar por conteo
conteo_filtrado_b <- conteo_filtrado_b %>%
select(num_comuna, Total_Registros) %>% # Ordenar las columnas
arrange(desc(Total_Registros)) # desc() ordena de mayor a menor
# 2. Mostrar la tabla con el nuevo orden
kable(
conteo_filtrado_b, # Usamos el data frame ordenado
caption = "Tabla 2. TOP Comunas con Mayor Conteo de Registros - Bicicleta",
format = "html",
align = c("l", "c"),
digits = 0,
row.names = FALSE
) %>%
kable_styling(
full_width = FALSE,
bootstrap_options = c("striped", "hover", "responsive"),
position = "center",
font_size = 12,
row_label_position = "c"
) %>%
column_spec(1, bold = TRUE) %>% # Hace la columna de la comuna en negrita
row_spec(0, bold = TRUE, color = "white", background = "#2C3E50") %>%
scroll_box(width = "100%", height = "400px") # Scroll vertical para tabla larga
num_comuna | Total_Registros |
---|---|
2 | 159 |
17 | 141 |
19 | 141 |
18 | 111 |
3 | 99 |
10 | 82 |
13 | 76 |
4 | 74 |
16 | 73 |
15 | 70 |
22 | 55 |
9 | 53 |
8 | 52 |
11 | 52 |
20 | 46 |
6 | 44 |
21 | 44 |
5 | 38 |
14 | 37 |
1 | 36 |
7 | 35 |
12 | 14 |
Conclusión: Distribución de Registros de Bicicletas por Comuna
El análisis de la distribución de registros relacionados con bicicletas revela un patrón de uso o incidencia que, aunque presenta ciertas coincidencias con la distribución general de registros, también muestra particularidades importantes.
Desigualdad y Concentración: Al igual que en el conteo general, la distribución es altamente desigual. La variación va desde un máximo de 159 registros hasta un mínimo de 14, lo que indica que el fenómeno relacionado con bicicletas se concentra fuertemente en unas pocas áreas.
Liderazgo en el Norte: La Comuna 2 se reafirma como el área con la mayor incidencia de registros, encabezando el listado con 159 registros de bicicleta. Esto sugiere que esta comuna es un punto neurálgico, tanto para el registro total como para el relacionado específicamente con bicicletas.
Emergencia de Zonas Sur y Suroccidental: A diferencia del conteo general donde la Comuna 19 era muy prominente, en los registros de bicicleta: La Comuna 17 y la Comuna 19 comparten el segundo lugar con 141 registros cada una, destacando la importancia del sur (17) y el occidente central (19). La Comuna 18 (suroccidente) aparece en cuarto lugar con 111 registros, una posición relativamente más alta que la que podría tener en el conteo total (que no se detalla en el mapa).
Coincidencias con el Patrón General: Las comunas que suelen estar en el rango medio-alto de la distribución general (como la Comuna 3 con 99 registros y la Comuna 10 con 82) mantienen posiciones prominentes también en el conteo de bicicletas, reforzando la concentración en el área central de la ciudad.
Baja Incidencia: Las comunas con la menor cantidad de registros de bicicleta incluyen la Comuna 7 (35 registros) y la Comuna 12 (el mínimo, con 14 registros).
En conclusión, los registros relacionados con bicicletas muestran una clara concentración en las Comunas 2, 17, 19 y 18. Esta distribución puede reflejar zonas de alta densidad poblacional y actividad, áreas con mayor infraestructura para bicicletas, o sectores con mayor incidencia de eventos relacionados con el uso de este vehículo. La Comuna 2 mantiene su posición como el área de mayor actividad, mientras que las Comunas 17 y 18 demuestran ser puntos clave para la bicicleta en las zonas sur y suroccidental de Cali.
A continuación, se continuará con el análisis geográfico de la ciudad de Cali, enfocándose en las personas cuyo medio de transporte es la moto.
# 1. Realizar el conteo de registros por comuna
conteo_excel_m <- datos_excel %>%
# Filtrar solo registros donde tipo_de_vehiculo sea 2 (Moto)
filter(tipo_de_vehiculo == 2) %>%
# Agrupar por el nombre de la comuna
group_by(comuna_origen) %>%
# Contar cuántos registros hay en cada grupo (comuna)
summarise(
Total_Registros = n(), # La función n() cuenta el número de filas en cada grupo
.groups = 'drop' # Quita la agrupación al finalizar
)
# 2. Filtrar los valores deseados (el nombre númerico de las comunas de Cali)
## 2.1 Crear filtro númerico mediante expresión regular
conteo_excel_filtrar_m <- conteo_excel_m %>%
mutate(
num_comuna = str_extract(comuna_origen, "[0-9]+"),
num_comuna = as.numeric(num_comuna)
)
## 2.2 Fltrar columnas de tipo númerico
conteo_filtrado_m <- conteo_excel_filtrar_m %>%
# Filtrar para incluir solo las comunas cuyo número esté entre 1 y 22
filter(num_comuna >= 1 & num_comuna <= 22) %>%
# Quitar la columna auxiliar si ya no la necesitas
select(-comuna_origen)
# 3. Unir el shapefile con el dataframe de conteo
comunas_final_m <- comunas %>%
rename(num_comuna = comuna) %>% # Renombrar la columna del SHP para que coincida con la tabla de conteo
# Realizar la unión (join)
left_join(conteo_filtrado_m, by = "num_comuna")
# 4. Mapa 1: conteo de registros por comuna origen del dataset filtrando dentro de Cali
# 4.1. Calcular el centroide de cada comuna para posicionar la etiqueta
comunas_etiquetas <- comunas_final %>%
st_centroid() # Convierte cada polígono en un punto central (el centroide)
# 4.2. Definir los puntos de visualización de la escala (breaks)
breaks_a_mostrar_m <- comunas_final_m %>%
pull(Total_Registros) %>%
# Se ajusta valores para la visualización de la escala
quantile(probs = c(0, 0.25, 0.65, 0.82, 0.86, 0.92, 1), na.rm = TRUE)
# 4.3. Generar el mapa con la escala ajustada
ggplot(data = comunas_final_m) +
geom_sf(aes(fill = Total_Registros), color = "grey") +
# Capa de Etiquetas (los números de comuna)
geom_sf_text(
data = comunas_etiquetas, # Usamos el objeto con centroides
aes(label = num_comuna), # Mapeamos el texto al número de comuna
size = 3, # Tamaño de la fuente (ajusta según necesidad)
color = "white", # Color del texto
check_overlap = TRUE # Ayuda a evitar que las etiquetas se superpongan
) +
# Añade títulos y subtítulos (labs)
labs(
title = "Conteo de Registros por Comuna de Origen en Cali",
subtitle = "Distribución del Total de Registros, tipo de vehiculo moto",
fill = "Total Registros"
) +
theme_minimal() +
# Usar los 7 valores de visualización calculadas
scale_fill_gradient(
low = "lightblue",
high = "darkblue",
# Asigna las cuatro rupturas
breaks = breaks_a_mostrar_m,
# Formatea las etiquetas con comas (si son números grandes)
labels = scales::label_comma()
)
# 1. Reordenar el dataframe y luego ordenar por conteo
conteo_filtrado_m <- conteo_filtrado_m %>%
select(num_comuna, Total_Registros) %>% # Ordenar las columnas
arrange(desc(Total_Registros)) # desc() ordena de mayor a menor
# 2. Mostrar la tabla con el nuevo orden
kable(
conteo_filtrado_m, # Usamos el data frame ordenado
caption = "Tabla 3. TOP Comunas con Mayor Conteo de Registros - Moto",
format = "html",
align = c("l", "c"),
digits = 0,
row.names = FALSE
) %>%
kable_styling(
full_width = FALSE,
bootstrap_options = c("striped", "hover", "responsive"),
position = "center",
font_size = 12,
row_label_position = "c"
) %>%
column_spec(1, bold = TRUE) %>% # Hace la columna de la comuna en negrita
row_spec(0, bold = TRUE, color = "white", background = "#2C3E50") %>%
scroll_box(width = "100%", height = "400px") # Scroll vertical para tabla larga
num_comuna | Total_Registros |
---|---|
2 | 1414 |
19 | 1280 |
17 | 1136 |
3 | 970 |
18 | 746 |
4 | 720 |
10 | 675 |
13 | 554 |
8 | 552 |
15 | 536 |
22 | 515 |
6 | 473 |
16 | 450 |
11 | 431 |
9 | 413 |
21 | 378 |
1 | 375 |
7 | 350 |
20 | 339 |
5 | 319 |
14 | 310 |
12 | 176 |
Conclusión: Distribución de Registros de Motocicletas por Comuna
La distribución de los registros de motocicletas muestra un patrón de concentración muy alto que es el principal impulsor de la distribución general observada en el primer mapa, pero con algunas diferencias notables en el orden de las comunas principales.
Alto Impacto de las Motos en el Conteo Total: Al comparar las cifras de la Tabla 3 (motos) con la Tabla del Mapa 1 (conteo total), se observa que los registros de motos son una proporción muy grande del total. Por ejemplo: La Comuna 2 tiene 1,414 registros de moto, lo cual es casi la mitad del total de su categoría (máx. 2,968). Las Comunas 19 y 17, con más de 1,100 registros de moto cada una, son las principales responsables de que estas comunas figuren en los niveles más altos del conteo general.
Coincidencia con Áreas Centrales y de Servicios: Las comunas que tradicionalmente albergan grandes centros comerciales, zonas de servicios y vías arteriales clave (como la Comuna 3 con 970 registros, la Comuna 18 con 746 y la Comuna 4 con 720) demuestran ser cruciales para el uso o la incidencia de registros relacionados con motocicletas.
Distribución Geográfica del Rango Medio: El rango medio de registros (aproximadamente entre 720 y 515) incluye comunas del sur (22), el norte (4), y el centro-oriental (8, 15, 13), lo que sugiere que la actividad de las motocicletas se dispersa más ampliamente, aunque con menor intensidad, en estas zonas de crecimiento urbano.
Baja Incidencia: Las comunas con la menor cantidad de registros de moto siguen siendo las áreas más periféricas o menos densas, con la Comuna 12 registrando el mínimo de 176 registros.
En resumen, los registros de motocicleta son el principal motor del patrón de concentración observado en el estudio geográfico general. La Comuna 2, la Comuna 19 y la Comuna 17 son los puntos de mayor actividad o incidencia de registros de motos. Cualquier estudio o política de movilidad, seguridad o infraestructura en Cali debe tomar en cuenta que el fenómeno de las motocicletas está hiperconcentrado en estas tres divisiones administrativas.
A continuación, se continuará con el análisis geográfico de la ciudad de Cali, enfocándose en las personas cuyo medio de transporte es el carro.
# 1. Realizar el conteo de registros por comuna
conteo_excel_c <- datos_excel %>%
# Filtrar solo registros donde tipo_de_vehiculo sea 3 (Carro)
filter(tipo_de_vehiculo == 3) %>%
# Agrupar por el nombre de la comuna
group_by(comuna_origen) %>%
# Contar cuántos registros hay en cada grupo (comuna)
summarise(
Total_Registros = n(), # La función n() cuenta el número de filas en cada grupo
.groups = 'drop' # Quita la agrupación al finalizar
)
# 2. Filtrar los valores deseados (el nombre númerico de las comunas de Cali)
## 2.1 Crear filtro númerico mediante expresión regular
conteo_excel_filtrar_c <- conteo_excel_c %>%
mutate(
num_comuna = str_extract(comuna_origen, "[0-9]+"),
num_comuna = as.numeric(num_comuna)
)
## 2.2 Fltrar columnas de tipo númerico
conteo_filtrado_c <- conteo_excel_filtrar_c %>%
# Filtrar para incluir solo las comunas cuyo número esté entre 1 y 22
filter(num_comuna >= 1 & num_comuna <= 22) %>%
# Quitar la columna auxiliar si ya no la necesitas
select(-comuna_origen)
# 3. Unir el shapefile con el dataframe de conteo
comunas_final_c <- comunas %>%
rename(num_comuna = comuna) %>% # Renombrar la columna del SHP para que coincida con la tabla de conteo
# Realizar la unión (join)
left_join(conteo_filtrado_c, by = "num_comuna")
# 4. Mapa 1: conteo de registros por comuna origen del dataset filtrando dentro de Cali
# 4.1. Calcular el centroide de cada comuna para posicionar la etiqueta
comunas_etiquetas <- comunas_final %>%
st_centroid() # Convierte cada polígono en un punto central (el centroide)
# 4.2. Definir los puntos de visualización de la escala (breaks)
breaks_a_mostrar_c <- comunas_final_c %>%
pull(Total_Registros) %>%
# Se ajusta valores para la visualización de la escala
quantile(probs = c(0, 0.25, 0.65, 0.82, 0.86, 0.92, 1), na.rm = TRUE)
# 4.3. Generar el mapa con la escala ajustada
ggplot(data = comunas_final_c) +
geom_sf(aes(fill = Total_Registros), color = "grey") +
# Capa de Etiquetas (los números de comuna)
geom_sf_text(
data = comunas_etiquetas, # Usamos el objeto con centroides
aes(label = num_comuna), # Mapeamos el texto al número de comuna
size = 3, # Tamaño de la fuente (ajusta según necesidad)
color = "white", # Color del texto
check_overlap = TRUE # Ayuda a evitar que las etiquetas se superpongan
) +
# Añade títulos y subtítulos (labs)
labs(
title = "Conteo de Registros por Comuna de Origen en Cali",
subtitle = "Distribución del Total de Registros, tipo de vehiculo carro",
fill = "Total Registros"
) +
theme_minimal() +
# Usar los 7 valores de visualización calculadas
scale_fill_gradient(
low = "lightblue",
high = "darkblue",
# Asigna las cuatro rupturas
breaks = breaks_a_mostrar_c,
# Formatea las etiquetas con comas (si son números grandes)
labels = scales::label_comma()
)
# 1. Reordenar el dataframe y luego ordenar por conteo
conteo_filtrado_c <- conteo_filtrado_c %>%
select(num_comuna, Total_Registros) %>% # Ordenar las columnas
arrange(desc(Total_Registros)) # desc() ordena de mayor a menor
# 2. Mostrar la tabla con el nuevo orden
kable(
conteo_filtrado_c, # Usamos el data frame ordenado
caption = "Tabla 4. TOP Comunas con Mayor Conteo de Registros - Carro",
format = "html",
align = c("l", "c"),
digits = 0,
row.names = FALSE
) %>%
kable_styling(
full_width = FALSE,
bootstrap_options = c("striped", "hover", "responsive"),
position = "center",
font_size = 12,
row_label_position = "c"
) %>%
column_spec(1, bold = TRUE) %>% # Hace la columna de la comuna en negrita
row_spec(0, bold = TRUE, color = "white", background = "#2C3E50") %>%
scroll_box(width = "100%", height = "400px") # Scroll vertical para tabla larga
num_comuna | Total_Registros |
---|---|
19 | 1165 |
2 | 1121 |
17 | 899 |
3 | 854 |
18 | 559 |
4 | 551 |
10 | 529 |
22 | 489 |
13 | 486 |
15 | 456 |
8 | 420 |
6 | 389 |
16 | 385 |
9 | 382 |
11 | 361 |
21 | 328 |
1 | 301 |
7 | 283 |
14 | 272 |
20 | 272 |
5 | 241 |
12 | 123 |
Conclusión: Distribución de Registros de Automóviles (Carros) por Comuna La distribución de los registros de automóviles, si bien es desigual, presenta un patrón de concentración que enfatiza las zonas socioeconómicas y residenciales consolidadas, y difiere en el orden de importancia respecto a los registros de motocicleta.
Emergencia de Zonas Residenciales del Sur: Se destaca la Comuna 22 con 489 registros, ubicándose en el octavo lugar. La Comuna 22, que corresponde al extremo sur (zonas de expansión urbana y desarrollo residencial de alto nivel), muestra una mayor relevancia en el registro de automóviles en comparación con su posición en las listas de bicicleta y moto, lo que es coherente con un mayor uso de vehículos particulares en esa zona.
Baja Incidencia: Al igual que en las tablas anteriores, la Comuna 12 registra el número más bajo de registros de carro, con solo 123. Las comunas orientales y periféricas, como la Comuna 5 y 14, también se encuentran consistentemente en los puestos inferiores.
En resumen, los registros de automóviles reflejan una concentración ligeramente diferente a la de las motocicletas, con un enfoque principal en la Comuna 19, seguida de cerca por la Comuna 2. El patrón de distribución refuerza la importancia de las comunas centrales, suroccidentales y las zonas de expansión de alto nivel (Comuna 22) para este tipo de vehículo. Esta información es crucial para planificar la infraestructura vial y de estacionamiento en las áreas centrales de la ciudad.
A continuación, se presentará un conteo general del archivo EncuestaOrigenDestino.xlsx, en el cual se filtrarán las personas cuyo destino corresponda a alguna comuna de la ciudad de Cali. Posteriormente, se realizará un conteo del número de personas por comuna de destino, con el fin de visualizar el movimiento poblacional dentro de la ciudad.
# 1. Realizar el conteo de registros por comuna
conteo_excel2 <- datos_excel %>%
# Agrupar por el nombre de la comuna
group_by(comuna_destino) %>%
# Contar cuántos registros hay en cada grupo (comuna)
summarise(
Total_Registros = n(), # La función n() cuenta el número de filas en cada grupo
.groups = 'drop' # Quita la agrupación al finalizar
)
# 2. Filtrar los valores deseados (el nombre númerico de las comunas de Cali)
## 2.1 Crear filtro númerico mediante expresión regular
conteo_excel_filtrar2 <- conteo_excel2 %>%
mutate(
num_comuna = str_extract(comuna_destino, "[0-9]+"),
num_comuna = as.numeric(num_comuna)
)
## 2.2 Fltrar columnas de tipo númerico
conteo_filtrado2 <- conteo_excel_filtrar2 %>%
# Filtrar para incluir solo las comunas cuyo número esté entre 1 y 22
filter(num_comuna >= 1 & num_comuna <= 22) %>%
# Quitar la columna auxiliar si ya no la necesitas
select(-comuna_destino)
# 3. Unir el shapefile con el dataframe de conteo
comunas_final2 <- comunas %>%
rename(num_comuna = comuna) %>% # Renombrar la columna del SHP para que coincida con la tabla de conteo
# Realizar la unión (join)
left_join(conteo_filtrado2, by = "num_comuna")
# 4. Mapa 1: conteo de registros por comuna origen del dataset filtrando dentro de Cali
# 4.1. Calcular el centroide de cada comuna para posicionar la etiqueta
comunas_etiquetas2 <- comunas_final2 %>%
st_centroid() # Convierte cada polígono en un punto central (el centroide)
# 4.2. Definir los puntos de visualización de la escala (breaks)
breaks_a_mostrar2 <- comunas_final2 %>%
pull(Total_Registros) %>%
# Se ajusta valores para la visualización de la escala
quantile(probs = c(0, 0.65, 0.75, 0.87, 0.91, 0.96, 1), na.rm = TRUE)
# 4.2. Generar el mapa con la escala ajustada
ggplot(data = comunas_final2) +
geom_sf(aes(fill = Total_Registros), color = "grey") +
# Capa de Etiquetas (los números de comuna)
geom_sf_text(
data = comunas_etiquetas2, # Usamos el objeto con centroides
aes(label = num_comuna), # Mapeamos el texto al número de comuna
size = 3, # Tamaño de la fuente (ajusta según necesidad)
color = "white", # Color del texto
check_overlap = TRUE # Ayuda a evitar que las etiquetas se superpongan
) +
# Añade títulos y subtítulos (labs)
labs(
title = "Conteo de Registros por Comuna de Destino en Cali",
subtitle = "Distribución del Total de Registros",
fill = "Total Registros"
) +
theme_minimal() +
# Usar los 7 valores de visualización calculadas
scale_fill_gradient(
low = "lightblue",
high = "darkblue",
# Asigna las cuatro rupturas
breaks = breaks_a_mostrar2,
# Formatea las etiquetas con comas (si son números grandes)
labels = scales::label_comma()
)
# 1. Reordenar el dataframe y luego ordenar por conteo
conteo_filtrado2 <- conteo_filtrado2 %>%
select(num_comuna, Total_Registros) %>% # Ordenar las columnas
arrange(desc(Total_Registros)) # desc() ordena de mayor a menor
# 2. Mostrar la tabla con el nuevo orden
kable(
conteo_filtrado2, # Usamos el data frame ordenado
caption = "Tabla 5. TOP Comunas con Mayor Conteo de Registros",
format = "html",
align = c("l", "c"),
digits = 0,
row.names = FALSE
) %>%
kable_styling(
full_width = FALSE,
bootstrap_options = c("striped", "hover", "responsive"),
position = "center",
font_size = 12,
row_label_position = "c"
) %>%
column_spec(1, bold = TRUE) %>% # Hace la columna de la comuna en negrita
row_spec(0, bold = TRUE, color = "white", background = "#2C3E50") %>%
scroll_box(width = "100%", height = "400px") # Scroll vertical para tabla larga
num_comuna | Total_Registros |
---|---|
2 | 4810 |
3 | 3859 |
19 | 3158 |
17 | 2164 |
22 | 1860 |
4 | 1856 |
9 | 1279 |
8 | 1025 |
10 | 927 |
7 | 748 |
16 | 743 |
6 | 716 |
13 | 673 |
18 | 662 |
15 | 579 |
11 | 564 |
5 | 522 |
21 | 515 |
14 | 379 |
20 | 351 |
12 | 246 |
1 | 230 |
Conclusión: Distribución General de Registros por Comuna de Destino El análisis de los registros de destino revela una centralización extrema de las actividades en unas pocas comunas, las cuales funcionan como los grandes atrayentes de la movilidad diaria de la ciudad.
El volumen de registros de destino en estas tres comunas es muy superior al resto, señalando que el centro geográfico y financiero/de servicios de Cali (Comunas 2 y 3) y el centro ampliado/suroccidente (Comuna 19) son, con gran diferencia, los mayores receptores de viajes.
En resumen, la movilidad en Cali está fuertemente orientada hacia un “triángulo” de destinos compuesto principalmente por la Comuna 2, 3 y 19, las cuales concentran la mayor parte de las actividades. La Comuna 22 emerge como un polo de destino importante en el sur de la ciudad.
A continuación, se continuará con el análisis geográfico de la ciudad de Cali, enfocándose en las personas cuyo medio de transporte es la bicicleta.
# 1. Realizar el conteo de registros por comuna
conteo_excel_b2 <- datos_excel %>%
# Filtrar solo registros donde tipo_de_vehiculo sea 1 (Bicicleta)
filter(tipo_de_vehiculo == 1) %>%
# Agrupar por el nombre de la comuna
group_by(comuna_destino) %>%
# Contar cuántos registros hay en cada grupo (comuna)
summarise(
Total_Registros = n(), # La función n() cuenta el número de filas en cada grupo
.groups = 'drop' # Quita la agrupación al finalizar
)
# 2. Filtrar los valores deseados (el nombre númerico de las comunas de Cali)
## 2.1 Crear filtro númerico mediante expresión regular
conteo_excel_filtrar_b2 <- conteo_excel_b2 %>%
mutate(
num_comuna = str_extract(comuna_destino, "[0-9]+"),
num_comuna = as.numeric(num_comuna)
)
## 2.2 Fltrar columnas de tipo númerico
conteo_filtrado_b2 <- conteo_excel_filtrar_b2 %>%
# Filtrar para incluir solo las comunas cuyo número esté entre 1 y 22
filter(num_comuna >= 1 & num_comuna <= 22) %>%
# Quitar la columna auxiliar si ya no la necesitas
select(-comuna_destino)
# 3. Unir el shapefile con el dataframe de conteo
comunas_final_b2 <- comunas %>%
rename(num_comuna = comuna) %>% # Renombrar la columna del SHP para que coincida con la tabla de conteo
# Realizar la unión (join)
left_join(conteo_filtrado_b2, by = "num_comuna")
# 4. Mapa 1: conteo de registros por comuna origen del dataset filtrando dentro de Cali
# 4.1. Calcular el centroide de cada comuna para posicionar la etiqueta
comunas_etiquetas <- comunas_final %>%
st_centroid() # Convierte cada polígono en un punto central (el centroide)
# 4.2. Definir los puntos de visualización de la escala (breaks)
breaks_a_mostrar_b2 <- comunas_final_b2 %>%
pull(Total_Registros) %>%
# Se ajusta valores para la visualización de la escala
quantile(probs = c(0, 0.5, 0.73, 0.82, 0.9, 0.94, 1), na.rm = TRUE)
# 4.3. Generar el mapa con la escala ajustada
ggplot(data = comunas_final_b2) +
geom_sf(aes(fill = Total_Registros), color = "grey") +
# Capa de Etiquetas (los números de comuna)
geom_sf_text(
data = comunas_etiquetas, # Usamos el objeto con centroides
aes(label = num_comuna), # Mapeamos el texto al número de comuna
size = 3, # Tamaño de la fuente (ajusta según necesidad)
color = "white", # Color del texto
check_overlap = TRUE # Ayuda a evitar que las etiquetas se superpongan
) +
# Añade títulos y subtítulos (labs)
labs(
title = "Conteo de Registros por Comuna de Origen en Cali",
subtitle = "Distribución del Total de Registros, tipo de vehiculo bicicleta",
fill = "Total Registros"
) +
theme_minimal() +
# Usar los 7 valores de visualización calculadas
scale_fill_gradient(
low = "lightblue",
high = "darkblue",
# Asigna las cuatro rupturas
breaks = breaks_a_mostrar_b2,
# Formatea las etiquetas con comas (si son números grandes)
labels = scales::label_comma()
)
# 1. Reordenar el dataframe y luego ordenar por conteo
conteo_filtrado_b2 <- conteo_filtrado_b2 %>%
select(num_comuna, Total_Registros) %>% # Ordenar las columnas
arrange(desc(Total_Registros)) # desc() ordena de mayor a menor
# 2. Mostrar la tabla con el nuevo orden
kable(
conteo_filtrado_b2, # Usamos el data frame ordenado
caption = "Tabla 6. TOP Comunas con Mayor Conteo de Registros - Bicicleta",
format = "html",
align = c("l", "c"),
digits = 0,
row.names = FALSE
) %>%
kable_styling(
full_width = FALSE,
bootstrap_options = c("striped", "hover", "responsive"),
position = "center",
font_size = 12,
row_label_position = "c"
) %>%
column_spec(1, bold = TRUE) %>% # Hace la columna de la comuna en negrita
row_spec(0, bold = TRUE, color = "white", background = "#2C3E50") %>%
scroll_box(width = "100%", height = "400px") # Scroll vertical para tabla larga
num_comuna | Total_Registros |
---|---|
2 | 218 |
3 | 189 |
19 | 147 |
17 | 115 |
22 | 100 |
4 | 85 |
9 | 65 |
8 | 54 |
10 | 43 |
5 | 41 |
7 | 41 |
16 | 35 |
6 | 34 |
13 | 33 |
18 | 31 |
11 | 29 |
21 | 26 |
20 | 25 |
14 | 22 |
15 | 20 |
12 | 15 |
1 | 12 |
Conclusión: Polos de Destino para Movilidad en Bicicleta El análisis del destino en bicicleta refuerza el patrón de centralización de la movilidad, destacando qué áreas concentran el empleo y los servicios a los que los ciclistas se dirigen, y cómo este patrón difiere ligeramente del destino general.
Emergencia de la Comuna 4 La Comuna 4 (norte) se ubica en el sexto lugar (85 registros), una posición relevante para la movilidad en bicicleta, lo que podría indicar la presencia de centros de trabajo o estudio a los que se accede fácilmente en este medio de transporte desde las comunas del norte.
Baja Atracción General y Periférica Los valores totales de destino en bicicleta son, por naturaleza, mucho menores que los de moto o carro. La mayoría de las comunas registraron menos de 50 destinos. Las comunas con la menor capacidad de atracción en bicicleta son las Comunas 1 (12 registros) y 12 (15 registros), las cuales están en los extremos de la ciudad.
En resumen, los viajes en bicicleta confirman la Comuna 2, la Comuna 3 y la Comuna 19 como los principales destinos de actividad. Es crucial notar la baja capacidad atractora de ciertas comunas residenciales como la Comuna 18, lo que indica que los ciclistas de esa área se desplazan principalmente hacia los centros urbanos (2, 3, 19) para cumplir sus propósitos (trabajo/estudio).
A continuación, se continuará con el análisis geográfico de la ciudad de Cali, enfocándose en las personas cuyo medio de transporte es la motos.
# 1. Realizar el conteo de registros por comuna
conteo_excel_m2 <- datos_excel %>%
# Filtrar solo registros donde tipo_de_vehiculo sea 2 (Motos)
filter(tipo_de_vehiculo == 2) %>%
# Agrupar por el nombre de la comuna
group_by(comuna_destino) %>%
# Contar cuántos registros hay en cada grupo (comuna)
summarise(
Total_Registros = n(), # La función n() cuenta el número de filas en cada grupo
.groups = 'drop' # Quita la agrupación al finalizar
)
# 2. Filtrar los valores deseados (el nombre númerico de las comunas de Cali)
## 2.1 Crear filtro númerico mediante expresión regular
conteo_excel_filtrar_m2 <- conteo_excel_m2 %>%
mutate(
num_comuna = str_extract(comuna_destino, "[0-9]+"),
num_comuna = as.numeric(num_comuna)
)
## 2.2 Fltrar columnas de tipo númerico
conteo_filtrado_m2 <- conteo_excel_filtrar_m2 %>%
# Filtrar para incluir solo las comunas cuyo número esté entre 1 y 22
filter(num_comuna >= 1 & num_comuna <= 22) %>%
# Quitar la columna auxiliar si ya no la necesitas
select(-comuna_destino)
# 3. Unir el shapefile con el dataframe de conteo
comunas_final_m2 <- comunas %>%
rename(num_comuna = comuna) %>% # Renombrar la columna del SHP para que coincida con la tabla de conteo
# Realizar la unión (join)
left_join(conteo_filtrado_m2, by = "num_comuna")
# 4. Mapa 1: conteo de registros por comuna origen del dataset filtrando dentro de Cali
# 4.1. Calcular el centroide de cada comuna para posicionar la etiqueta
comunas_etiquetas <- comunas_final %>%
st_centroid() # Convierte cada polígono en un punto central (el centroide)
# 4.2. Definir los puntos de visualización de la escala (breaks)
breaks_a_mostrar_m2 <- comunas_final_m2 %>%
pull(Total_Registros) %>%
# Se ajusta valores para la visualización de la escala
quantile(probs = c(0, 0.55, 0.73, 0.87, 0.9, 0.96, 1), na.rm = TRUE)
# 4.3. Generar el mapa con la escala ajustada
ggplot(data = comunas_final_m2) +
geom_sf(aes(fill = Total_Registros), color = "grey") +
# Capa de Etiquetas (los números de comuna)
geom_sf_text(
data = comunas_etiquetas, # Usamos el objeto con centroides
aes(label = num_comuna), # Mapeamos el texto al número de comuna
size = 3, # Tamaño de la fuente (ajusta según necesidad)
color = "white", # Color del texto
check_overlap = TRUE # Ayuda a evitar que las etiquetas se superpongan
) +
# Añade títulos y subtítulos (labs)
labs(
title = "Conteo de Registros por Comuna de Origen en Cali",
subtitle = "Distribución del Total de Registros, tipo de vehiculo motos",
fill = "Total Registros"
) +
theme_minimal() +
# Usar los 7 valores de visualización calculadas
scale_fill_gradient(
low = "lightblue",
high = "darkblue",
# Asigna las cuatro rupturas
breaks = breaks_a_mostrar_m2,
# Formatea las etiquetas con comas (si son números grandes)
labels = scales::label_comma()
)
# 1. Reordenar el dataframe y luego ordenar por conteo
conteo_filtrado_m2 <- conteo_filtrado_m2 %>%
select(num_comuna, Total_Registros) %>% # Ordenar las columnas
arrange(desc(Total_Registros)) # desc() ordena de mayor a menor
# 2. Mostrar la tabla con el nuevo orden
kable(
conteo_filtrado_m2, # Usamos el data frame ordenado
caption = "Tabla 7. TOP Comunas con Mayor Conteo de Registros - Motos",
format = "html",
align = c("l", "c"),
digits = 0,
row.names = FALSE
) %>%
kable_styling(
full_width = FALSE,
bootstrap_options = c("striped", "hover", "responsive"),
position = "center",
font_size = 12,
row_label_position = "c"
) %>%
column_spec(1, bold = TRUE) %>% # Hace la columna de la comuna en negrita
row_spec(0, bold = TRUE, color = "white", background = "#2C3E50") %>%
scroll_box(width = "100%", height = "400px") # Scroll vertical para tabla larga
num_comuna | Total_Registros |
---|---|
2 | 2177 |
3 | 1734 |
19 | 1421 |
17 | 927 |
22 | 911 |
4 | 846 |
9 | 608 |
8 | 470 |
10 | 419 |
7 | 353 |
13 | 346 |
16 | 327 |
6 | 323 |
18 | 302 |
15 | 271 |
11 | 254 |
21 | 243 |
5 | 215 |
14 | 188 |
20 | 151 |
12 | 128 |
1 | 112 |
Conclusión: Polos de Destino para Movilidad en Motocicleta El análisis de destino para motocicletas muestra que este tipo de movilidad está fuertemente orientada hacia los mismos grandes centros de actividad económica y servicios, consolidando la primacía de los polos centrales.
Comunas que son Generadoras, no Atractoras Al igual que con las bicicletas, algunas comunas que son importantes en el origen de viajes, caen en el ranking de destino. Por ejemplo, la Comuna 18 tiene solo 302 registros de destino (puesto 14), lo que reitera su rol principal como zona residencial generadora de viajes que se dirigen a los centros de actividad (Comunas 2, 3, 19).
Baja Atracción Periférica Las comunas periféricas y menos desarrolladas en términos de empleo (Comunas 1, 12, 14, 20) presentan los menores números de destino, siendo la Comuna 1 la de menor atracción con 112 registros.
En resumen, la Comuna 2, Comuna 3 y Comuna 19 son los puntos focales de la movilidad en motocicleta en Cali, actuando como los principales destinos de trabajo y estudio. El alto volumen de registros de moto en estas comunas y en el polo sur (Comuna 22) exige la priorización de políticas de movilidad y seguridad vial en estos corredores y destinos clave.
A continuación, se continuará con el análisis geográfico de la ciudad de Cali, enfocándose en las personas cuyo medio de transporte son los carros.
# 1. Realizar el conteo de registros por comuna
conteo_excel_c2 <- datos_excel %>%
# Filtrar solo registros donde tipo_de_vehiculo sea 3 (Carros)
filter(tipo_de_vehiculo == 3) %>%
# Agrupar por el nombre de la comuna
group_by(comuna_destino) %>%
# Contar cuántos registros hay en cada grupo (comuna)
summarise(
Total_Registros = n(), # La función n() cuenta el número de filas en cada grupo
.groups = 'drop' # Quita la agrupación al finalizar
)
# 2. Filtrar los valores deseados (el nombre númerico de las comunas de Cali)
## 2.1 Crear filtro númerico mediante expresión regular
conteo_excel_filtrar_c2 <- conteo_excel_c2 %>%
mutate(
num_comuna = str_extract(comuna_destino, "[0-9]+"),
num_comuna = as.numeric(num_comuna)
)
## 2.2 Fltrar columnas de tipo númerico
conteo_filtrado_c2 <- conteo_excel_filtrar_c2 %>%
# Filtrar para incluir solo las comunas cuyo número esté entre 1 y 22
filter(num_comuna >= 1 & num_comuna <= 22) %>%
# Quitar la columna auxiliar si ya no la necesitas
select(-comuna_destino)
# 3. Unir el shapefile con el dataframe de conteo
comunas_final_c2 <- comunas %>%
rename(num_comuna = comuna) %>% # Renombrar la columna del SHP para que coincida con la tabla de conteo
# Realizar la unión (join)
left_join(conteo_filtrado_c2, by = "num_comuna")
# 4. Mapa 1: conteo de registros por comuna origen del dataset filtrando dentro de Cali
# 4.1. Calcular el centroide de cada comuna para posicionar la etiqueta
comunas_etiquetas <- comunas_final %>%
st_centroid() # Convierte cada polígono en un punto central (el centroide)
# 4.2. Definir los puntos de visualización de la escala (breaks)
breaks_a_mostrar_c2 <- comunas_final_c2 %>%
pull(Total_Registros) %>%
# Se ajusta valores para la visualización de la escala
quantile(probs = c(0, 0.65, 0.78, 0.86, 0.9, 0.96, 1), na.rm = TRUE)
# 4.3. Generar el mapa con la escala ajustada
ggplot(data = comunas_final_c2) +
geom_sf(aes(fill = Total_Registros), color = "grey") +
# Capa de Etiquetas (los números de comuna)
geom_sf_text(
data = comunas_etiquetas, # Usamos el objeto con centroides
aes(label = num_comuna), # Mapeamos el texto al número de comuna
size = 3, # Tamaño de la fuente (ajusta según necesidad)
color = "white", # Color del texto
check_overlap = TRUE # Ayuda a evitar que las etiquetas se superpongan
) +
# Añade títulos y subtítulos (labs)
labs(
title = "Conteo de Registros por Comuna de Origen en Cali",
subtitle = "Distribución del Total de Registros, tipo de vehiculo carros",
fill = "Total Registros"
) +
theme_minimal() +
# Usar los 7 valores de visualización calculadas
scale_fill_gradient(
low = "lightblue",
high = "darkblue",
# Asigna las cuatro rupturas
breaks = breaks_a_mostrar_c2,
# Formatea las etiquetas con comas (si son números grandes)
labels = scales::label_comma()
)
# 1. Reordenar el dataframe y luego ordenar por conteo
conteo_filtrado_c2 <- conteo_filtrado_c2 %>%
select(num_comuna, Total_Registros) %>% # Ordenar las columnas
arrange(desc(Total_Registros)) # desc() ordena de mayor a menor
# 2. Mostrar la tabla con el nuevo orden
kable(
conteo_filtrado_c2, # Usamos el data frame ordenado
caption = "Tabla 8. TOP Comunas con Mayor Conteo de Registros - Carros",
format = "html",
align = c("l", "c"),
digits = 0,
row.names = FALSE
) %>%
kable_styling(
full_width = FALSE,
bootstrap_options = c("striped", "hover", "responsive"),
position = "center",
font_size = 12,
row_label_position = "c"
) %>%
column_spec(1, bold = TRUE) %>% # Hace la columna de la comuna en negrita
row_spec(0, bold = TRUE, color = "white", background = "#2C3E50") %>%
scroll_box(width = "100%", height = "400px") # Scroll vertical para tabla larga
num_comuna | Total_Registros |
---|---|
2 | 2006 |
3 | 1557 |
19 | 1302 |
17 | 959 |
4 | 757 |
22 | 694 |
9 | 489 |
8 | 403 |
10 | 384 |
16 | 321 |
7 | 286 |
18 | 276 |
6 | 275 |
15 | 245 |
11 | 239 |
13 | 226 |
5 | 225 |
21 | 198 |
20 | 144 |
14 | 138 |
1 | 86 |
12 | 85 |
Conclusión:Polos de Destino para Movilidad en Automóvil El análisis de destino para automóviles confirma la alta concentración en los centros de actividad, pero subraya la importancia de las zonas de infraestructura y centros empresariales para este modo de transporte.
Reafirmación del Liderazgo de la Comuna 2 A diferencia de los registros de origen de carro (donde la Comuna 19 lideraba), en los registros de destino, la Comuna 2 retoma el primer puesto como el principal atractor de automóviles con 2.006 registros. Esto es consistente con ser el centro de negocios y servicios más grande de la ciudad, requiriendo un gran flujo de vehículos particulares.
Concentración Central Dominante El patrón de concentración sigue siendo fuerte en los tres polos centrales:
Destaca que la Comuna 18 tiene solo 276 registros de destino, mientras que su conteo de origen de carro era de 559. Esto refuerza su rol como una comuna netamente generadora de viajes (residencial) en automóvil, cuyos ocupantes se dirigen en gran medida hacia las comunas 2, 3 y 19.
En resumen, la movilidad en automóvil se dirige predominantemente a la Comuna 2, la Comuna 3 y la Comuna 19, con la Comuna 2 consolidada como el destino más significativo. La planificación de la infraestructura de tráfico y parqueo debe enfocarse en estas áreas, reconociendo el alto volumen de vehículos que atraen. Además, las comunas 18 y 22 muestran una diferencia clara entre el origen (residencia) y el destino (actividad) de los viajes en carro.
Conclusión Final: Movilidad y Usos del Suelo en Cali. El estudio combinado de los patrones de origen (presumiblemente residencia) y destino (presumiblemente trabajo/estudio) con la información sobre los sectores económicos y residenciales de Cali revela una estructura urbana policéntrica de la movilidad, pero fuertemente centralizada en la actividad.
En conclusión, la estructura de Cali se define por un fuerte eje de atracción de actividad (Comunas 2, 3, 19, y en menor medida 17/22) al cual se dirigen los flujos desde las comunas predominantemente residenciales y periféricas (como la 18 y 22, esta última con un doble rol). Cualquier planificación de infraestructura de transporte o desarrollo urbano debe priorizar la gestión de estos flujos masivos de destino y considerar estrategias de transporte público eficiente y micromovilidad hacia y dentro de los tres grandes atractores centrales.