Bahía Blanca: Movilidad Ciclista
Análisis de movilidad en bicicleta — Datos GPS Mov3s, Strava y OpenStreetMap
Introducción
Este estudio analiza la movilidad en bicicleta en Bahía Blanca utilizando datos de la plataforma Mov3s (viajes GPS registrados) y Strava (segmentos públicos). Se generaron tres mapas interactivos que permiten visualizar distintas dimensiones del uso de bicicleta en la ciudad, con el objetivo de evaluar la infraestructura ciclista existente y fundamentar propuestas de extensión.
Fuentes de datos
- Mov3s: Base de datos SQL con 3,650 viajes totales, de los cuales 3,188 son en bicicleta.
- Strava: Segmentos de Metroview exportados para los años 2023, 2024 y 2025.
- Ciclovías: 26 segmentos extraídos del sitio web del Municipio de Bahía Blanca.
- Puntos de Interés: 295 puntos obtenidos de Overpass API (OpenStreetMap), filtrados a 350m de las ciclovías (105 relevantes).
Base de datos espacial
930 calles obtenidas de OpenStreetMap con geometrías completas, cubriendo el 99.8% de los puntos GPS del dataset.
Mapa 1: Heatmap de Densidad de Viajes
Densidad de puntos GPS proyectados sobre calles. Los colores indican intensidad de uso: azul claro (baja), amarillo (media), rojo (alto). Las ciclovías aparecen en azul sólido.
Lógica de obtención — Mapa 1
Fuente: Archivo SQL con viajes de Mov3s extraídos con Python.
Procesamiento de coordenadas (WKB Hex)
Las coordenadas GPS de cada viaje están almacenadas en formato WKB (Well-Known Binary) en hexadecimal, con prefijo SRID de 4 bytes:
Filtros aplicados
Transporte
Solo viajes en bicicleta: 3,188 de 3,650.
Deduplicación
Se eliminan puntos repetidos dentro de cada viaje.
Bounding box
Solo puntos dentro del área de estudio de Bahía Blanca.
Mínimo de puntos
Viajes con menos de 2 puntos válidos descartados.
Hotspots
Se eliminan puntos con más de 60 apariciones en la misma ubicación. Se detectaron 3 hotspots. Resultado: 1,510 viajes válidos.
Método de asignación GPS → Calles (NN + Proyección)
Los puntos GPS tienen ruido y no caen exactamente sobre las calles. Se utiliza un método de Vecino Más Cercano con Proyección:
Proyección UTM
Puntos y calles se proyectan a UTM zona 21S (EPSG:32721) para trabajar en metros.
Índice espacial STRtree
Se construye un árbol espacial con las 930 calles para consultas eficientes.
Búsqueda de candidatos
Para cada punto GPS, se buscan calles dentro de un radio de 50 metros.
Selección y proyección
Se selecciona la calle más cercana y el punto se proyecta sobre ella mediante interpolación: distancia = line.project(point), punto_asignado = line.interpolate(distancia).
Conversión inversa
El punto asignado se convierte de vuelta a WGS84. Cobertura: 99.8% de los 19,049 puntos GPS.
Teoría detrás del heatmap
Un heatmap de kernel density estimation (KDE) estima la densidad de puntos en el espacio. Cada punto GPS contribuye con un kernel gaussiano que se suma al acumulado de sus vecinos:
- Baja densidad (azul claro): zonas con pocos puntos o dispersos.
- Media densidad (amarillo): zonas con uso moderado.
- Alta densidad (rojo): zonas de alta concentración de actividad ciclista.
Conclusiones del Mapa 1
2. Calles troncales sin ciclovías concentran alto tráfico ciclista — candidatas para nueva infraestructura.
3. Los viajes son predominantemente urbanos y cortos, típicos de movilidad diaria.
Mapa 2: Evolución Strava + Ciclovías + Puntos de Interés
Segmentos Strava coloreados por intensidad de uso (verde: bajo, naranja: medio, rojo: alto). Ciclovías punteadas en azul. 105 puntos de interés cercanos categorizados por tipo.
Lógica de obtención — Mapa 2
Fuente: Datos Strava exportados para 2023, 2024 y 2025.
Clasificación por intensidad de uso
Se calculan estadísticas globales (media y desviación estándar) sobre el total de viajes de todos los segmentos de todos los años:
global_std = 1,094.9 viajes/segmento
Fórmula de clasificación
if trips > mean + std: # > 1,338.9
return ROJO # Flujo alto
elif trips > mean: # > 244.0
return NARANJA # Flujo medio
else: # ≤ 244.0
return VERDE # Flujo bajo
Nota: El desvío estándar es muy alto (1,094.9) comparado con la media (244.0), lo que indica una distribución altamente sesgada: la mayoría de segmentos tienen bajo flujo, pero unos pocos concentran miles de viajes.
Puntos de Interés (105 dentro de 350m de ciclovías)
De los 295 puntos obtenidos de Overpass API, se seleccionaron los que están dentro de un radio de 350 metros (fórmula haversine) de algún segmento de ciclovía.
| Tipo | Cantidad |
|---|---|
| Farmacias | 23 |
| Restaurantes | 22 |
| Cafés | 20 |
| Minimercados | 16 |
| Escuelas | 7 |
| Supermercados | 5 |
| Clínicas | 5 |
| Policía | 3 |
| Bancos | 2 |
| Hospitales | 1 |
| Casas de bicis | 1 |
| Total | 105 |
Teoría detrás de la clasificación
La clasificación por percentiles estadísticos (media y desvío estándar) es un método robusto para datos con distribución sesgada:
- Comparabilidad temporal: Los mismos umbrales se aplican a todos los años.
- Detección de outliers: Los segmentos rojos (> mean + std) son anomalías de alta demanda.
- Identificación de tendencias: El crecimiento de segmentos naranjas/rojos entre años indica expansión del uso.
Conclusiones del Mapa 2
2. Unos pocos corredores concentran la mayor parte del flujo ciclista.
3. Corredores de medio/alto flujo sin ciclovías = candidatos a nueva infraestructura.
4. Puntos de Interés importantes (escuelas, hospitales, comercios) cerca de ciclovías validan su utilidad.
Mapa 3: Origen-Destino de Viajes en Bicicleta
Arcos de viajes O/D del 2025. Verde: origen, rojo: destino. Vista 3D con inclinación para visualizar la estructura de flujos. Los puntos más grandes indican mayor concentración de viajes.
Lógica de obtención — Mapa 3
Fuente: Registro de Mov3s — 1,266 viajes en bicicleta del año 2025.
Extracción de pares Origen/Destino
Cada registro contiene campos origin y destination como coordenadas. Solo se conservan viajes donde origen ≠ destino: 536 arcos de los 1,266 viajes.
Clusterización espacial (Vecindario de 20m)
Algoritmo: Clustering greedy por distancia euclídea (haversine):
Crear nuevo cluster
Agregar todos los puntos no visitados j tal que:
haversine(i, j) ≤ 20 metros
Calcular centroide = promedio de coordenadas del cluster
Función haversine
a = sin²(Δφ/2) + cos(φ₁)·cos(φ₂)·sin²(Δλ/2)
d = R · 2 · atan2(√a, √(1-a))
| Tipo | Clusters | Máx viajes | Promedio |
|---|---|---|---|
| Origen | 403 | 156 | 3.1 |
| Destino | 600 | 101 | 2.1 |
Interpretación: Los orígenes son más concentrados (menos clusters, mayor promedio) porque la gente sale de pocos lugares conocidos (hogar, trabajo). Los destinos son más dispersos porque se reparten en más ubicaciones.
Arcos resultantes: Después de snapping a clusters y filtrar origen ≠ destino: 1,028 arcos.
Capas del mapa
- Arcos O/D (ArcLayer): Color origen (verde) → destino (rojo), grosor 1.5px.
- Puntos de origen (ScatterplotLayer): Verde, radio 5m, tooltip "N viaje(s) (origen)".
- Puntos de destino (ScatterplotLayer): Rojo, radio 5m, tooltip "N viaje(s) (destino)".
- Vista 3D: Pitch 45°, Bearing -30° — permite visualizar la estructura espacial de los flujos.
Teoría detrás del clustering
El clustering por umbral de distancia (20m) es un método de agrupación espacial simple pero efectivo:
- Agrupar puntos GPS cercanos: Los dispositivos GPS tienen precisión de ~5-10m, por lo que puntos del mismo lugar aparecen ligeramente desplazados.
- Identificar centros de actividad: Los centroides representan ubicaciones reales de inicio/fin de viajes.
- Reducir ruido espacial: Convierte cientos de puntos dispersos en clusters representativos.
Conclusiones del Mapa 3
2. Flujo hacia el centro: el casco central es el principal polo de atracción.
3. Arcos que no siguen ciclovías = corridors de demanda no atendidos.
4. Zonas con alta concentración O/D sin ciclovías = candidatas prioritarias.
Estimación de Ciclistas Reales
Los datos de Mov3s y Strava representan una fracción de los ciclistas reales de Bahía Blanca. No todos los ciclistas usan apps de seguimiento, y Strava tiene una base de usuarios más reducida y sesgada hacia ciclistas recreativos/deportivos.
Supuestos
- Mov3s: App de movilidad sostenible con adopción local limitada. Captura alrededor del 5% de los ciclistas activos.
- Strava: App popular entre ciclistas deportivos, pero no representativa del ciclista promedio urbano. Captura aproximadamente el 10% de los ciclistas activos.
Implicancias
- La demanda real es mayor de lo visible: Los mapas muestran solo una fracción del flujo ciclista real.
- Infraestructura para miles, no para cientos: Si hay ~10,000 ciclistas activos, la red ciclista debe dimensionarse para esa escala.
- Potencial de crecimiento: Con mejor infraestructura, la tasa de uso podría crecer significativamente, como ha ocurrido en ciudades colombianas que duplicaron su ciclabilidad en 5 años.
Conclusiones Generales
• Mapa 1: Calles con densidad naranja/roja sin ciclovías = candidatas.
• Mapa 2: Segmentos Strava con flujo alto en zonas sin ciclovías = demanda no atendida.
• Mapa 3: Arcos O/D que no siguen ciclovías = rutas deseadas sin infraestructura.
• Priorizar corredores troncales donde confluyen alta densidad, alto flujo Strava y múltiples arcos O/D.
• Conectar polos de atracción: escuelas, hospitales, centros comerciales.
• Completar la red con estructura radial y conexiones perimetrales.
Especificaciones Técnicas
deck.gl v9.x + MapLibre GL v4.x
UTM zona 21S (EPSG:32721)
OpenStreetMap (930 calles)
Mov3s (WKB hex, MySQL 8.0.37)
Segmentos públicos 2023–2025
Overpass API → 105 en 350m de ciclovías
26 segmentos KMZ → GeoJSON
CartoDB Positron (light theme)
Python 3.12 + JavaScript