Construcción de viajes

1. Introducción

La construcción de viajes corresponde al proceso mediante el cual las etapas estimadas para una tarjeta Bip! son agrupadas en viajes completos. Cada etapa representa un tramo realizado por una persona usuaria dentro del sistema de transporte público, mientras que un viaje corresponde a una secuencia de una o más etapas que mantienen coherencia temporal, espacial y operacional entre un origen y un destino final.

El objetivo de este proceso es distinguir cuándo una nueva validación corresponde a un trasbordo dentro del mismo viaje y cuándo representa el inicio de un nuevo viaje. Para ello, el algoritmo recorre cronológicamente las etapas de cada tarjeta y evalúa un conjunto de condiciones de corte. Si alguna condición indica que la siguiente etapa no es coherente con la continuidad del viaje actual, se cierra el viaje en la etapa actual y la siguiente etapa inicia un nuevo viaje.

Este procedimiento permite transformar una secuencia de validaciones individuales en una estructura de viajes, conservando el orden de las etapas, el punto de subida inicial, el punto de bajada final y el motivo metodológico que justificó el cierre del viaje.


2. Datos utilizados

Para cada etapa se utilizan principalmente los siguientes datos:

  • Identificador anónimo de tarjeta.
  • Hora de validación.
  • Hora estimada de subida.
  • Hora estimada de bajada.
  • Paradero o estación de subida.
  • Paradero o estación de bajada.
  • Coordenadas de subida.
  • Coordenadas de bajada.
  • Tipo de transporte: bus, Metro o MetroTren.
  • Servicio-sentido asociado a la etapa.
  • Distancia estimada de la etapa en la red.
  • Información de frecuencia o pasadas de buses.
  • Diccionarios de servicios, paraderos, estaciones y secuencias de ruta.

Las etapas de cada tarjeta deben estar previamente ordenadas en forma cronológica.


3. Criterio general

El algoritmo procesa cada tarjeta de manera independiente. Para cada tarjeta, se inicializa el primer viaje y se recorre la secuencia de etapas en orden temporal.

En cada etapa se observa la etapa actual y, cuando existe, la etapa siguiente. La decisión metodológica consiste en determinar si la etapa siguiente puede ser considerada una continuación del viaje actual, es decir, un trasbordo, o si corresponde al inicio de un nuevo viaje.

Cuando se detecta una condición de corte, el viaje actual se cierra usando la bajada estimada de la etapa actual. Luego se incrementa el número de viaje y la siguiente etapa comienza como primera etapa de un nuevo viaje.

Si no se detecta ninguna condición de corte, la etapa actual se mantiene dentro del viaje en construcción y el proceso continúa con la siguiente etapa.


4. Condiciones de corte

4.1 Última etapa del día

Si la etapa actual es la última etapa registrada para la tarjeta durante el día, el viaje se cierra automáticamente. En este caso no existe una etapa siguiente contra la cual evaluar continuidad, por lo que la etapa actual representa el término del último viaje observado para la tarjeta.

Tipo de corte: última etapa.


4.2 Tiempo máximo de duración del viaje

Se evalúa si la siguiente etapa ocurre después del tiempo máximo permitido para considerar continuidad del viaje actual. Este criterio compara el tiempo de la siguiente etapa con el tiempo de subida del viaje en construcción.

Si la siguiente etapa supera el umbral máximo definido, el viaje actual se cierra en la etapa actual. En la implementación actual este umbral corresponde conceptualmente a una duración máxima cercana a 2 horas, aunque se mantiene como parámetro del proceso.

Tipo de corte: siguiente etapa supera tiempo máximo de viaje.


4.3 Espera mayor al paso de tres buses

Esta condición busca identificar casos donde, aun existiendo cercanía espacial entre la bajada de la etapa actual y la subida de la etapa siguiente, el tiempo de espera observado no es consistente con un trasbordo.

Para ello se estima primero el tiempo de caminata entre el punto de bajada de la etapa actual y el punto de subida de la etapa siguiente. Luego se calcula el tiempo estimado de llegada de la persona usuaria al punto de subida siguiente.

A partir de ese tiempo, se revisa cuántos buses del servicio o de servicios equivalentes pasaron por el paradero de la siguiente etapa antes de que la persona realizara la nueva validación. Si durante ese intervalo pasaron más de dos buses, se interpreta que la persona pudo haber tomado antes el servicio y, por lo tanto, la siguiente validación no se considera un trasbordo del viaje actual.

Tipo de corte: espera superior a tres buses.


4.4 Repetición de servicio o posibilidad de viaje directo

Esta condición evalúa si la etapa siguiente repite un servicio ya utilizado o si existe evidencia de que el viaje pudo haberse realizado sin el trasbordo observado.

Para el caso bus-bus, se revisa la relación entre las secuencias de paraderos de los servicios involucrados. Si el destino de la etapa siguiente pertenece al recorrido de un servicio usado previamente y, al mismo tiempo, el origen de una etapa anterior pertenece al recorrido del servicio siguiente, se interpreta que existe una superposición operacional que hace poco probable considerar la nueva etapa como un trasbordo válido dentro del mismo viaje.

Cuando no existe información de bajada suficiente, se aplica una versión más simple de la condición, verificando la repetición exacta del servicio-sentido.

Tipo de corte: mismo servicio o servicio operacionalmente equivalente.


4.5 Repetición de Metro o MetroTren dentro del viaje

Si dentro del viaje actual ya existe una etapa realizada en Metro y la siguiente etapa también es Metro, se corta el viaje. El mismo criterio se aplica para MetroTren.

La razón de esta condición es evitar que una secuencia con más de una etapa del mismo modo ferroviario sea interpretada como un único viaje con trasbordos sucesivos, cuando operacionalmente es más consistente considerarla como el inicio de un nuevo viaje.

Tipo de corte: repetición de Metro o MetroTren.


4.6 Repetición de zona de subida

Se revisa si el punto de subida de la siguiente etapa se encuentra muy cerca de algún punto de subida ya utilizado en el viaje actual. Si la distancia entre la nueva subida y una subida anterior del mismo viaje es menor a un umbral definido, se interpreta que la persona regresó a una zona ya visitada o inició una nueva actividad, por lo que se corta el viaje.

En la implementación actual se utiliza una distancia de referencia de 300 metros.

Tipo de corte: misma zona de subida.


4.7 Tiempo máximo de espera cuando la siguiente etapa es Metro

Cuando la siguiente etapa corresponde a Metro, se calcula el tiempo de caminata entre la bajada de la etapa actual y la estación de subida de la siguiente etapa. Luego se estima el tiempo de llegada a la estación.

Si la diferencia entre el tiempo de validación de la siguiente etapa y el tiempo estimado de llegada supera los 15 minutos, se considera que la espera es demasiado alta para ser considerada un trasbordo, por lo que el viaje se cierra en la etapa actual.

Tipo de corte: espera máxima hacia Metro.


4.8 Coherencia entre distancia recorrida y distancia mínima esperada

Esta condición evalúa la coherencia espacial del conjunto de etapas que forman el viaje. Para ello se compara la distancia acumulada recorrida en la red con una distancia mínima esperada entre el origen y el destino del conjunto de etapas.

El criterio busca detectar secuencias donde la distancia recorrida por las etapas es excesivamente mayor que la distancia directa o mínima entre el origen y el destino. En esos casos, el algoritmo interpreta que probablemente existen más de un viaje dentro de la secuencia actualmente agrupada.

Cuando se detecta esta incoherencia, se prueban particiones posibles de las etapas y se selecciona la separación más verosímil según la relación entre distancia recorrida y distancia mínima esperada. Esta condición permite corregir agrupaciones de etapas que, aunque puedan cumplir condiciones temporales, no son espacialmente coherentes como un único viaje.

Tipo de corte: incoherencia de distancia en red.


4.9 Tiempo máximo absoluto de espera

Finalmente, se aplica una condición general de tiempo máximo de espera entre etapas. Se calcula el tiempo de caminata desde la bajada de la etapa actual hasta la subida de la siguiente etapa y se estima el tiempo de llegada al siguiente punto de validación.

Si el tiempo entre esa llegada estimada y la siguiente validación supera el umbral máximo definido, el viaje se cierra. En la implementación actual este umbral corresponde a 40 minutos.

Esta condición funciona como regla de seguridad para evitar que esperas demasiado extensas sean clasificadas como trasbordos.

Tipo de corte: espera máxima de 40 minutos.


5. Pseudocódigo general

Para cada tarjeta:
    ordenar etapas de la tarjeta por tiempo

    inicializar numero_viaje = 1
    inicializar numero_etapa = 1
    inicializar viaje_actual vacío

    Para cada etapa_actual en etapas de la tarjeta:

        asignar numero_viaje a etapa_actual
        asignar numero_etapa a etapa_actual

        Si viaje_actual no existe:
            crear viaje_actual
            guardar tiempo de subida de la etapa_actual
            guardar parada de subida de la etapa_actual

        etapa_siguiente = siguiente etapa de la tarjeta

        Si no existe etapa_siguiente:
            agregar etapa_actual al viaje_actual
            cerrar viaje_actual con bajada de etapa_actual
            registrar corte por última etapa
            iniciar nuevo viaje
            continuar

        Si etapa_siguiente supera tiempo máximo de viaje:
            agregar etapa_actual al viaje_actual
            cerrar viaje_actual con bajada de etapa_actual
            registrar corte por tiempo máximo de viaje
            iniciar nuevo viaje
            continuar

        Si tiempo de espera implica que pasaron más de tres buses:
            agregar etapa_actual al viaje_actual
            cerrar viaje_actual con bajada de etapa_actual
            registrar corte por espera superior a tres buses
            iniciar nuevo viaje
            continuar

        Si etapa_siguiente repite Metro o MetroTren ya usado en el viaje:
            agregar etapa_actual al viaje_actual
            cerrar viaje_actual con bajada de etapa_actual
            registrar corte por repetición de modo ferroviario
            iniciar nuevo viaje
            continuar

        Si etapa_siguiente repite servicio o existe superposición operacional:
            agregar etapa_actual al viaje_actual
            cerrar viaje_actual con bajada de etapa_actual
            registrar corte por mismo servicio
            iniciar nuevo viaje
            continuar

        Si zona de subida de etapa_siguiente coincide con zona ya usada en el viaje:
            agregar etapa_actual al viaje_actual
            cerrar viaje_actual con bajada de etapa_actual
            registrar corte por misma zona de subida
            iniciar nuevo viaje
            continuar

        Si etapa_siguiente es Metro:
            calcular distancia entre bajada_actual y subida_siguiente
            calcular tiempo de caminata
            calcular tiempo estimado de llegada a Metro

            Si espera estimada supera 15 minutos:
                agregar etapa_actual al viaje_actual
                cerrar viaje_actual con bajada de etapa_actual
                registrar corte por espera hacia Metro
                iniciar nuevo viaje
                continuar

        Si distancia acumulada del viaje no es coherente con distancia mínima esperada:
            buscar partición más verosímil de las etapas
            separar el conjunto de etapas en uno o más viajes
            registrar corte por incoherencia de distancia
            continuar

        Si espera estimada supera tiempo máximo absoluto:
            agregar etapa_actual al viaje_actual
            cerrar viaje_actual con bajada de etapa_actual
            registrar corte por espera máxima
            iniciar nuevo viaje
            continuar

        agregar etapa_actual al viaje_actual
        incrementar numero_etapa

6. Resultado del proceso

Como resultado, cada etapa queda asociada a un número de viaje y a un número de etapa dentro de dicho viaje. Además, cada viaje queda caracterizado por:

  • tarjeta anónima asociada,
  • número de viaje dentro del día,
  • conjunto ordenado de etapas,
  • tiempo y lugar de subida inicial,
  • tiempo y lugar de bajada final,
  • cantidad de etapas,
  • tipo de corte utilizado para cerrar el viaje.

Adicionalmente, el proceso genera estadísticas de control, como la cantidad total de tarjetas procesadas, cantidad total de viajes construidos, distribución de viajes por número de etapas y distribución de viajes por tipo de corte. Estas estadísticas permiten revisar la consistencia del proceso y analizar qué condiciones explican la mayor parte de los cortes etapa/viaje.


7. Consideraciones metodológicas

El algoritmo aplica las condiciones de corte en un orden definido. Esto significa que, si una etapa cumple más de una condición, se registra la primera condición detectada según la prioridad metodológica del proceso.

Las condiciones temporales buscan controlar la duración máxima del viaje y los tiempos de espera entre etapas. Las condiciones operacionales revisan coherencia con servicios, modos de transporte y frecuencias observadas. Las condiciones espaciales revisan repetición de zonas, cercanía entre puntos y consistencia entre la distancia recorrida y la distancia mínima esperada.

En conjunto, estas reglas permiten construir viajes a partir de validaciones individuales, evitando agrupar como trasbordos aquellas etapas que presentan señales de corresponder a una nueva actividad o a un nuevo desplazamiento.


8. Postproceso de filtrado de viajes inconsistentes

Una vez construidos los viajes a partir de las etapas, se ejecuta un postproceso de validación orientado a identificar viajes que presentan problemas de calidad, consistencia temporal, consistencia espacial o coherencia operacional. El objetivo de este filtro es evitar que viajes con estimaciones poco confiables sean utilizados en análisis posteriores.

Cuando un viaje no cumple alguna de las condiciones definidas, el sistema anula su estimación de bajada. Para ello, se elimina la parada de bajada del viaje y se marca su tiempo de bajada como no disponible. De esta forma, el viaje queda excluido de los análisis que requieren una estimación completa de origen y destino, como tiempos de viaje, distancias recorridas, velocidades, matrices origen-destino o indicadores agregados de desempeño.

Estos viajes no se eliminan del universo de validaciones, sino que dejan de ser considerados como viajes válidos para ciertos análisis posteriores. La demanda asociada puede ser redistribuida o expandida sobre el conjunto de viajes que sí cumplen las condiciones mínimas de calidad, permitiendo obtener indicadores más coherentes y robustos.

8.1 Condiciones de anulación del viaje

El postproceso evalúa las siguientes condiciones:

  • Viajes sin bajada estimada. Si el viaje no cuenta con tiempo de bajada o no cuenta con parada de bajada estimada, no se aplica el resto de las validaciones y el viaje queda clasificado como viaje sin bajada útil para análisis posteriores.

  • Viajes con más de cuatro etapas. Si el viaje contiene más de cuatro etapas, se considera que la secuencia puede presentar una agrupación excesiva de transbordos o una posible inconsistencia en el corte de viajes. En este caso, se anula la bajada estimada del viaje.

  • Viajes sin información suficiente en la última etapa. Si la última etapa del viaje no cuenta con tiempo de bajada o coordenadas de bajada válidas, no es posible calcular correctamente la distancia entre el origen y el destino del viaje. En consecuencia, se anula la estimación de bajada.

  • Mismo paradero de subida y bajada. Si el paradero de bajada del viaje coincide con el paradero de subida inicial, el viaje se considera inconsistente para análisis de desplazamiento origen-destino y se anula su bajada.

  • Duración máxima superior a cuatro horas. Si la diferencia entre el tiempo de subida del viaje y el tiempo de bajada estimado supera las cuatro horas, el viaje se considera temporalmente inconsistente y se anula la bajada estimada.

  • Duración mínima inferior a dos minutos. Si el tiempo total del viaje es menor a dos minutos, se considera que la duración no es suficiente para representar un desplazamiento válido dentro del sistema. En este caso, se anula la bajada del viaje.

  • Distancia acumulada superior a 50 kilómetros. Si la suma de las distancias de las etapas del viaje supera los 50 kilómetros, el viaje se considera espacialmente extremo o potencialmente mal estimado. Este criterio evita incorporar viajes con distancias excesivas en indicadores agregados.

  • Distancia euclidiana inferior a 200 metros. Si la distancia directa entre el punto de subida inicial y el punto de bajada final es menor a 200 metros, el viaje se considera poco representativo como desplazamiento válido para análisis de movilidad. En este caso, se anula la bajada estimada.

  • Velocidad media demasiado baja. Se calcula la velocidad media del viaje a partir de la distancia euclidiana entre origen y destino y el tiempo total de viaje. Si la velocidad es menor a 4 km/h para viajes de menos de 50 minutos, o menor a 7 km/h para viajes de 50 minutos o más, el viaje se considera inconsistente. Este criterio permite detectar casos donde el tiempo estimado es demasiado alto respecto de la distancia observada.

  • Velocidad media superior a 70 km/h. Si la velocidad media estimada supera los 70 km/h, el viaje se considera demasiado rápido para representar un desplazamiento coherente dentro del sistema de transporte público urbano. En este caso, se anula la bajada estimada.

8.2 Pseudocódigo general

```text id="m9mznc" Para cada tarjeta: Para cada viaje construido de la tarjeta:

    Si el viaje no tiene tiempo de bajada o parada de bajada:
        clasificar como viaje sin bajada
        continuar con el siguiente viaje

    calcular número de etapas del viaje

    Si el viaje tiene más de cuatro etapas:
        anular bajada del viaje
        registrar eliminación por exceso de etapas

    calcular distancia acumulada de las etapas

    obtener primera etapa del viaje
    obtener última etapa del viaje

    Si la última etapa no tiene tiempo de bajada o coordenadas de bajada:
        anular bajada del viaje
        registrar eliminación por información incompleta

    calcular distancia euclidiana entre:
        punto de subida de la primera etapa
        punto de bajada de la última etapa

    Si parada de subida del viaje es igual a parada de bajada:
        anular bajada del viaje
        registrar eliminación por mismo paradero origen-destino

    Si duración del viaje es mayor a 4 horas:
        anular bajada del viaje
        registrar eliminación por duración máxima

    Si duración del viaje es menor a 2 minutos:
        anular bajada del viaje
        registrar eliminación por duración mínima

    Si distancia acumulada es mayor a 50 kilómetros:
        anular bajada del viaje
        registrar eliminación por distancia máxima

    Si distancia euclidiana es menor a 200 metros:
        anular bajada del viaje
        registrar eliminación por distancia mínima

    calcular velocidad media del viaje

    Si velocidad media es demasiado baja:
        anular bajada del viaje
        registrar eliminación por velocidad inconsistente

    Si velocidad media es mayor a 70 km/h:
        anular bajada del viaje
        registrar eliminación por velocidad máxima

```

8.3 Resultado del postproceso

El resultado del postproceso es una clasificación más robusta de los viajes válidos para análisis. Los viajes que no cumplen los criterios de coherencia conservan sus etapas originales, pero pierden su estimación de bajada a nivel de viaje. Esto permite diferenciarlos del conjunto de viajes completos y evita que influyan negativamente en indicadores sensibles a la calidad de la estimación, tales como:

  • tiempo promedio de viaje,
  • distancia promedio, mínima y máxima de viaje,
  • velocidad media de viaje,
  • matrices origen-destino,
  • análisis de distribución espacial de destinos,
  • indicadores de desempeño por servicio, zona o periodo.

Este filtro actúa como una etapa de control de calidad posterior a la construcción de viajes y permite que los análisis agregados se calculen sobre un subconjunto de registros con mayor consistencia temporal y espacial.


9. Consideraciones generales

  • No se realiza cruce entre distintos medios de pago. El proceso de construcción de viajes se realiza a partir del identificador disponible para cada medio de pago. Por lo tanto, si una persona utiliza distintos medios de pago durante un mismo desplazamiento, por ejemplo una validación con QR en una etapa y una Tarjeta Bip! en otra, estas etapas no quedan asociadas entre sí. En consecuencia, el sistema las interpreta como secuencias independientes.

  • No se identifican viajes conjuntos pagados con una misma tarjeta. El sistema no cuenta con información suficiente para determinar cuándo una misma tarjeta está siendo utilizada por más de una persona. Por esta razón, si dos o más personas viajan juntas y realizan validaciones sucesivas con la misma tarjeta, el proceso puede interpretar esas validaciones como etapas de una misma persona usuaria. Este caso representa una limitación propia de los datos disponibles.

  • La ausencia de bajada estimada puede generar sesgos específicos. Algunas etapas pueden no contar con una bajada estimada debido a falta de información, baja calidad de datos, ausencia de GPS, inconsistencias operacionales o condiciones particulares de ciertos servicios o zonas. Cuando esto ocurre, algunas condiciones de corte no pueden evaluarse completamente, especialmente aquellas que dependen de la distancia entre la bajada de una etapa y la subida de la siguiente. Por lo tanto, podrían generarse sesgos en zonas, servicios o periodos donde la estimación de bajadas presente menor cobertura o calidad.