Coincidencia de la parada con la forma

Una tarea común para los consumidores de GTFS es hacer coincidir las paradas con los datos de shape para las rutas y los trayectos. Recordemos que el archivo shapes.txt se puede utilizar para definir el recorrido de un determinado trip vinculando el trip a una shape mediante el campo shape_id en trips.txt. Un trip también define una secuencia de paradas en el archivo stop_times.txt para las paradas por las que se pasa en el recorrido del trip. Cuando se define una shape para un trip, se suele querer hacer coincidir la secuencia de paradas más cercanas a su ubicación a lo largo de la shape del trip para mostrar el recorrido entre dos paradas en los resultados de rutas.

Hacer coincidir las paradas con la shape de un trip puede parecer una tarea sencilla, pero puede ser difícil en los casos en que un trip tiene una geometría compleja, como curvas o secciones superpuestas. Nuestro software hace todo lo posible para que una stop coincida con su mejor ubicación a lo largo de una shape. Cuando este proceso falla, puede indicar que hay un problema con los datos de la shape, la ubicación de la stop, o con la secuencia de stop de un trip.

En concreto, nuestras herramientas de validación GTFS suelen mostrar dos tipos de advertencias comunes de coincidencia de stop-shape. Consulta los enlaces para obtener indicaciones específicas sobre el diagnóstico de estos problemas.

Para las secuencias de shape y stop complejas, la especificación GTFS proporciona un mecanismo para definir explícitamente cómo se hacen coincidir las paradas con la shape del trip. El archivo shapes.txt define un campo shape_dist_traveled, que se puede utilizar para especificar la distancia a lo largo de la shape para cada punto de la shape. El archivo stop_times.txt también define un campo shape_dist_traveled, que se puede utilizar para especificar la distancia a lo largo de la shape para cada stop de un trip. Si se definen ambos campos para la shape y cada stop que pertenece a un trip, los valores de distancia se pueden utilizar para determinar explícitamente dónde coincide cada stop con una shape.

Observa el siguiente ejemplo:

trips.txt

trip_id,route_id,service_id,shape_id
t0,r0,weekly,shape0

shapes.txt

shape_id,shape_pt_sequence,shape_pt_lat,shape_pt_lon,shape_dist_traveled
shape0,0,47.0,-122.0,0
shape0,1,47.1,-122.0,100
shape0,2,47.1,-122.1,200
stop_times.txt
trip_id,stop_sequence,stop_id,arrival_time,departure_time,shape_dist_traveled
t0,0,stop0,09:00:00,09:00:00,50
t0,1,stop1,09:30:00,09:30:00,175

En nuestro ejemplo, hemos definido un trip sencillo con una shape sencilla, dos paradas y valores shape_dist_traveled para la shape y para cada stop. Observa primero la stop0. Tiene un valor de shape_dist_traveled de 50. Si observamos los puntos de la shape, vemos que 50 queda entre los dos primeros puntos de la shape, que tienen valores shape_dist_traveled de 0 y 100, respectivamente. Esto situaría la coincidencia de stop-shape prácticamente a medio camino entre los dos puntos de shape: aproximadamente 47,05 - 122,0. También vemos que stop1 tiene un valor shape_dist_traveled de 175, que la sitúa entre los dos últimos puntos de la shape. Dado que la stop se encuentra aproximadamente a 3/4 de la distancia entre los dos puntos de acuerdo con la distancia de la shape, la coincidencia de stop-shape será aproximadamente de 47,1 -122,75.

Puedes utilizar las unidades que prefieras para los valores shape_dist_traveled (metros, pies, etc.): los consumidores del feed no asumen ninguna unidad en concreto. En cambio, los valores solo se pueden utilizar entre ellos para determinar cómo un stop coincide con las posiciones a lo largo de una shape.

¿Te ha resultado útil esta información?
¿Cómo podemos mejorar esta página?