Extensiones de Google Transit para GTFS

Introducción

El equipo de Google Transit trabaja continuamente para mejorar la Especificación general de feeds de transporte público (GTFS) a fin de satisfacer las necesidades de nuestros socios. Recibimos varias propuestas de extensiones para incluirlas en la GTFS. Hasta su aceptación, los socios pueden utilizar estas extensiones en los feeds que envían a Transit en Google Maps. A continuación, puedes encontrar una lista completa de estas funciones.

Si tienes tus propias propuestas para extender la especificación GTFS, consulta el proceso oficial para introducir cambios en la GTFS.

Cantidad máxima de trasbordos para una tarifa específica

Para admitir atributos de tarifa en un feed con distintas empresas, se propusieron las siguientes extensiones:

Nombre del campo Obligatorio Detalles
transfers Opcional Google Transit acepta valores de 0 a 5; la especificación GTFS establece que puede tomar valores de 0 a 2. Utiliza este campo para establecer la cantidad máxima de transbordos permitidos (excluidos los transbordos en bloque) en la tarifa.

Precios de las tarjetas IC (Japón)

Una tarjeta de circuito integrado (IC) es una tarjeta inteligente prepaga recargable que se usa solo en Japón para tarifas de trenes, subterráneos, autobuses y monorrieles. La mayoría de las tarjetas IC, como Pasmo y Super Urban Intelligent Card (SUICA), suelen ofrecerles descuentos a los pasajeros. La siguiente extensión exclusiva de Google admite el modelado de tarifas para tarjetas IC.

fare_attributes.txt

Nombre del campo Obligatorio Detalles
ic_price Opcional Si se ofrece un descuento a los usuarios de tarjeta IC, el valor es el costo de la tarifa con descuento. Si no se ofrece ningún descuento a los usuarios de tarjeta IC, utiliza el valor -1. Si una empresa de transporte público no admite una tarjeta IC, utiliza el valor -1.

Tipos de rutas adicionales

Actualmente, la GTFS define una cantidad de tipos de rutas que se pueden utilizar para describir el tipo de servicio correspondiente a una ruta en particular (p. ej., autobús, tren, transbordador). A fin de admitir un conjunto más amplio de tipos de rutas, se propuso una extensión para el campo route_type del archivo routes.txt. Si deseas obtener información más detallada, consulta Extensión de tipos de rutas para la GTFS.

Tipos de vehículos por estación

Para poder especificar el tipo de vehículo que presta servicio en una parada en particular, se propuso una extensión.

stops.txt

Nombre del campo Obligatorio Detalles
vehicle_type Opcional

Emplea este campo para describir el tipo de transporte utilizado en la parada. Admite un valor route_type válido del archivo routes.txt, incluidos nuestros valores propuestos como extensión de tipos de rutas para GTFS.

Desvíos de viaje

Resulta útil identificar viajes que operan fuera del horario regular o que se desvían de la ruta habitual debido a eventos especiales o a interrupciones planificadas (como obras en el camino, etc.). Proponemos una extensión para trips.txt a fin de identificar tales servicios excepcionales.

trips.txt

Nombre del campo Obligatorio Detalles
exceptional Opcional

Configura este campo en un valor de 1 para indicar una excepción de servicio, como servicios adicionales debido a eventos especiales o servicios con desvíos de la ruta habitual debido a interrupciones planificadas (obras en el camino). Configura este campo en 0 para los servicios normales.

Transbordos ruta a ruta y viaje a viaje

En este momento, la especificación GTFS permite que una empresa defina la semántica del trasbordo mediante el archivo transfers.txt a fin de admitir funciones como trasbordos preferidos, programados y restringidos. Hoy, esos trasbordos solo se aplican a las paradas. Google recibió comentarios de distintas empresas que desean poder especificar información más detallada de los trasbordos a nivel de ruta y, también, de viaje. Luego de trabajar con estas empresas, decidimos presentar una propuesta para modelar los trasbordos ruta a ruta y viaje a viaje, y ahora estamos esperando comentarios de la comunidad de GTFS.

Motivación

Queremos poder especificar trasbordos entre rutas específicas o, incluso, entre viajes específicos, para un par de paradas en particular sin tener que especificar el mismo trasbordo para todos los demás viajes de ese par de paradas.

Por ejemplo:

  • Si dos viajes llegan a la misma plataforma y uno depende del otro para poder salir, tenemos que especificar un trasbordo programado entre estos dos viajes. Pero no todos los trasbordos que ocurren en esta estación de trenes deben ser programados.

  • Si se sabe que, por lo general, un tren llega hasta 30 minutos tarde, tenemos que inhabilitar los trasbordos desde ese tren a cualquier otro tren si hay menos de 35 minutos entre la llegada y la salida programadas.

Detalles

Se agregan 4 campos opcionales al archivo transfers.txt:

  • from_route_id
  • to_route_id
  • from_trip_id
  • to_trip_id

Los campos from_route_id y to_route_id pueden incluir un valor de route_id (según lo especificado en el archivo routes.txt) a fin de reducir el alcance del transbordo específico. Si se especifica un valor de from_route_id, el transbordo solo se aplicará al viaje de llegada que tenga el ID de ruta dado, en el campo from_stop_id especificado. Si se especifica un valor de to_route_id, el transbordo solo se aplicará al viaje de salida que tenga el ID de ruta dado, en el campo to_stop_id especificado.

Los campos from_trip_id y to_trip_id pueden incluir un valor de trip_id, según lo especificado en el archivo trips.txt. Si se especifica un valor de from_trip_id, se ignora el valor de from_route_id y, si se especifica un valor de to_trip_id, se ignora el valor de to_route_id. Si se especifica un valor de from_trip_id, el transbordo solo se aplicará al viaje de llegada que tenga el ID de viaje dado, en el campo from_stop_id especificado. Si se especifica un valor de to_trip_id, el transbordo solo se aplicará al viaje de salida que tenga el ID de viaje dado, en el campo to_stop_id especificado.

Especificidad de un transbordo

Algunos trasbordos son más específicos que otros. Debemos definir un mecanismo de clasificación simple para determinar cuándo se debe aplicar un trasbordo. Por eso, definimos la "especificidad" de un transbordo.

La especificidad del origen del transbordo es 0 si solo se especifica un valor de from_stop_id, 1 si se especifica un valor de from_route_id y 2 si se especifica un valor de from_trip_id. Lo mismo se aplica al destino de un transbordo: 0 si solo se especifica un valor de to_stop_id, 1 si se especifica un valor de to_route_id y 2 si se especifica un valor de to_trip_id. La suma de estos 2 valores da como resultado la especificidad del transbordo, que será entre 0 y 4 inclusive. Para un determinado par ordenado de viaje de llegada y viaje de salida, se selecciona el trasbordo con la mayor especificidad que se aplique a estos 2 viajes. Por este motivo, en cualquier par de viajes NO debería haber dos trasbordos con la misma especificidad máxima que se podría aplicar.

Ejemplo de una regla ambigua:

from_stop_id,to_stop_id,from_route_id,to_route_id,transfer_type
stopFrom,stopTo,routeFrom,,0
stopFrom,stopTo,,routeTo,1

Estos dos transbordos tienen una especificidad de 1. Sin embargo, para los transbordos entre un viaje con un ID de ruta de routeFrom que llega a la parada stopFrom y un viaje con un ID de ruta de routeTo que llega a la parada stopTo, se puede aplicar cualquiera de estas dos reglas.