Servicios que responden a la demanda¶
GTFS Flex es un proyecto de extensión GTFS que se adoptó oficialmente en la especificación GTFS en marzo de 2024 y tiene como objetivo facilitar la capacidad de descubrimiento de los servicios de transporte sobre demanda (DRT). Tenga en cuenta que existen diferentes términos para los servicios que responden a la demanda según la región del mundo. Consulte el Glosario para obtener más información.
El siguiente ejemplo demuestra cómo modelar diferentes casos de uso de servicios que responden a la demanda utilizando Flex. Tenga en cuenta que los siguientes ejemplos no son necesariamente una representación precisa o completa de los servicios de las agencias.
Servicios sobre pedido dentro de una sola zona¶
Los servicios que responden a la demanda pueden operar dentro de una zona específica, lo que permite a los pasajeros reservar recogidas en cualquier punto A dentro de la zona y entregas en cualquier punto B dentro de la misma zona. Un ejemplo de esto es el servicio Heartland Express Transit en Minnesota, EE. UU.
Descargar conjunto de datos de ejemplo de Heartland Express
Definir viajes¶
El horario de servicio de Heartland Express es el siguiente:
- Días laborables:
- 8:00 a.m. - 5:00 p.m.
- 6:15 a.m. – 5:45 p.m. (solo zona Nueva Ulm)
- Domingo: 8:00 a.m. - mediodía (Nueva Sólo zona de Ulm)
La zona de la ciudad de New Ulm está incluida dentro de la zona del condado de Brown. Para evitar el problema de "restricción de superposición de zona", Heartland Express se puede definir con cuatro viajes:
- Servicio en la zona de New Ulm de 6:15 a.m.a 8:00 a.m.entre semana.
- Servicio en todo el condado de 8:00 a.m.a 5:00 p.m.de lunes a viernes.
- Servicio en la zona de New Ulm de 17:00 a 17:45 de lunes a viernes.
- Servicio en la zona de New Ulm de 8:00 a 12:00 los domingos.
route_id | service_id | trip_id |
---|---|---|
74362 | c_67295_b_77497_d_31 | t_5374945_b_77497_tn_0 |
74362 | c_67295_b_77497_d_31 | t_5374946_b_77497_tn_0 |
74362 | c_67295_b_77497_d_31 | t_5374944_b_77497_tn_0 |
74362 | c_67295_b_77497_d_64 | t_5374947_b_77497_tn_0 |
service_id = c_67295_b_77497_d_31
se refiere a los días laborables, service_id = c_67295_b_77497_d_64
se refiere al domingo.
Definir zona (ubicaciones GeoJSON)¶
Usando locations.geojson para definir la zona operativa del servicio Heartland Express, se deben definir zonas separadas para el condado de Brown y la ciudad de New Ulm. A continuación se muestra un GeoJSON simplificado que define la zona del condado de Brown:
{
"type": "FeatureCollection",
"features": [
{
"id": "area_708",
"type": "Feature",
"geometry": {
"type": "Polygon",
# Simplificado, solo presenta 3 coordenadas aqui.
"coordinates": [
[
[
-94.7805702,
44.4560958
],
[
-94.7805608,
44.4559928
],
[
-94.7805218,
44.4559649
]
]
]
},
"properties": {}
}
]
Definir reglas de reserva¶
Aquí están las reservas reglas que se aplican a todos los servicios de Heartland Express:
- Las solicitudes de viaje deben realizarse entre las 8 a.m.y las 3 p.m.de lunes a viernes.
- Los viajes deben solicitarse un día hábil antes del día del viaje.
- Las solicitudes de viaje se pueden realizar hasta con 14 días de anticipación.
El uso de booking_type = 2
indica que el servicio requiere reserva hasta el día(s) anterior(es). prior_notice_last_day = 1
y prior_notice_start_day = 14
indican que el servicio se puede reservar con 14 días de antelación y hasta el día anterior.
booking_rule_id | booking_type | prior_notice_start_day | prior_notice_start_time | prior_notice_last_day | prior_notice_last_time | message | phone_number | info_url |
---|---|---|---|---|---|---|---|---|
booking_route_74362 | 2 | 14 | 8:00:00 | 1 | 15:00:00 | Brown County Heartland Express ofrece transporte a pedido de puerta a puerta. Para solicitar transporte, llame al 1-507-359-2717 o al 1-800-707-2717 antes de las 3 p.m.al menos un día hábil antes de su viaje. | (507) 359-2717 | https://www.co.brown.mn.us/heartland-express-transit |
Definir horarios de parada¶
Las horas de funcionamiento se definen utilizando los campos start_pickup_drop_off_window
y end_pickup_drop_off_window
. Viajar dentro de la misma zona requiere dos registros en stop_times.txt con el mismo location_id
.
- El primer registro con
pickup_type = 2
ydrop_off_type = 1
indica que la recogida de reservas está permitida en la zona. - El segundo registro con
pickup_type = 1
ydrop_off_type = 2
indica que se permite la entrega de reservas en la zona.
trip_id | location_id | stop_sequence | start_pickup_drop_off_window | end_pickup_drop_off_window | pickup_type | drop_off_type | pickup_booking_rule_id | drop_off_booking_rule_id |
---|---|---|---|---|---|---|---|---|
t_5374944_b_77497_tn_0 | area_715 | 1 | 06:15:00 | 08:00:00 | 2 | 1 | booking_route_74362 | booking_route_74362 |
t_5374944_b_77497_tn_0 | area_715 | 2 | 06:15:00 | 08:00:00 | 1 | 2 | booking_route_74362 | booking_route_74362 |
t_5374945_b_77497_tn_0 | area_708 | 1 | 08:00:00 | 17:00:00 | 2 | 1 | booking_route_74362 | booking_route_74362 |
t_5374945_b_77497_tn_0 | area_708 | 2 | 08:00:00 | 17:00:00 | 1 | 2 | booking_route_74362 | booking_route_74362 |
t_5374946_b_77497_tn_0 | area_715 | 1 | 17:00:00 | 17:45:00 | 2 | 1 | booking_route_74362 | booking_route_74362 |
t_5374946_b_77497_tn_0 | area_715 | 2 | 17:00:00 | 17:45:00 | 1 | 2 | booking_route_74362 | booking_route_74362 |
t_5374947_b_77497_tn_0 | area_715 | 1 | 08:00:00 | 12:00:00 | 2 | 1 | booking_route_74362 | booking_route_74362 |
t_5374947_b_77497_tn_0 | area_715 | 2 | 08:00:00 | 12:45:00 | 1 | 2 | booking_route_74362 | booking_route_74362 |
area_715
se refiere a la zona de New Ulm City, area_708
se refiere a la zona del condado de Brown.
Servicios a pedido en múltiples zonas¶
Algunos servicios que responden a la demanda operan en múltiples zonas distintas, donde los pasajeros pueden reservar recogidas en cualquier ubicación A dentro de un área y entregas en cualquier ubicación dentro de otra área. Por ejemplo, Minnesota River Valley Transit ofrece servicios a pedido entre las ciudades de Saint Peter y Kasota:
Descargar ejemplo de River Valley Transit conjunto de datos
Definir viajes¶
Similar al ejemplo anterior, debido a que los horarios de servicio varían en diferentes días, es necesario definir los viajes por separado para los días laborables y los sábados.
route_id | service_id | trip_id |
---|---|---|
74375 | entre semana | t_5298036_b_77503_tn_0 |
74375 | sábados | t_5298041_b_77503_tn_0 |
(Defina reglas y zonas de reserva usando booking_rules.txt y locations.geojson en el mismo como en el ejemplo anterior)
Definir horarios de parada¶
Los siguientes datos indican que la recogida solo se permite en una zona y la entrega solo se permite en otra zona. No se permite recoger y dejar en la misma zona.
trip_id | location_id | stop_sequence | start_pickup_drop_off_window | end_pickup_drop_off_window | pickup_type | drop_off_type | pickup_booking_rule_id | drop_off_booking_rule_id |
---|---|---|---|---|---|---|---|---|
t_5298036_b_77503_tn_0 | area_713 | 1 | 06:30:00 | 20:00:00 | 2 | 1 | booking_route_74375 | booking_route_74375 |
t_5298036_b_77503_tn_0 | area_714 | 2 | 06:30:00 | 20:00:00 | 1 | 2 | booking_route_74375 | booking_route_74375 |
t_5298041_b_77503_tn_0 | area_713 | 1 | 09:00:00 | 19:00:00 | 2 | 1 | booking_route_74375 | booking_route_74375 |
t_5298041_b_77503_tn_0 | area_714 | 2 | 09:00:00 | 19:00:00 | 1 | 2 | booking_route_74375 | booking_route_74375 |
Servicios a pedido donde los pasajeros deben ser recogidos y dejados en ubicaciones específicas¶
En ciertos servicios que responden a la demanda, los pasajeros no pueden especificar la recogida y devolución en ningún lugar dentro de una zona. En cambio, los pasajeros solo pueden reservar para que los recojan y los dejen en paradas designadas específicas (puntos de recogida/paradas virtuales). Un ejemplo de esto es el servicio RufBus en Angermünde y Gartz, Alemania:
Definir viajes¶
Ofertas de la ruta 476 servicios bajo demanda entre cada parada en la región de Angermünde. Operan dos servicios (uno para los días laborables y el otro para los fines de semana), y cada uno tiene un único trip_id asociado.
route_id | service_id | trip_id |
---|---|---|
476 | on_demand_weekdays | 476_weekdays |
476 | on_demand_weekends | 476_weekends |
Definir grupos de ubicación¶
Como los pasajeros pueden reservar servicios entre cada parada, para evitar definir todas las combinaciones de parada a parada en stop_times.txt, el enfoque apropiado es definir estas paradas como una ubicación grupo usando location_groups.txt y location_group_stops.txt.
location_group_id | location_group_name |
---|---|
476_stops | durch den RufBus 476 bedientes Gebiet im Raum Angermünde |
location_group_id | stop_id |
---|---|
476_stops | de:12073:900340004::1 |
476_stops | de:12073:900340004::2 |
476_stops | de:12073:900340004::3 |
476_stops | de:12073:900340004::4 |
476_stops | de:12073:900340100::1 |
476_stops | de:12073:900340100::2 |
476_stops | ... |
Definir reglas de reserva¶
El servicio de ruta 476 requiere reservar con al menos una hora de antelación. El uso de "booking_type = 1" indica que el servicio requiere reserva hasta el mismo día con aviso previo. El prior_notice_duration_min = 60
indica un requisito para reservar con al menos 60 minutos de antelación.
Existen ligeras diferencias entre las reservas de días laborables y de fin de semana, por lo que se pueden definir reglas de reserva independientes para servicios de días laborables y festivos. Se pueden proporcionar más detalles en el campo "message
". Los enlaces a páginas de información y reservas se pueden proporcionar en los campos info_url
y booking_url
.
booking_rule_id | booking_type | prior_notice_duration_min | message | phone_number | info_url | booking_url |
---|---|---|---|---|---|---|
flächenrufbus_angermünde_weekdays | 1 | 60 | Anmeldung mind. 60min vorher erforderlich, per Anruf zwischen 08:00 und 24:00 möglich, oder online rund um die Uhr | +49 3332 442 755 | https://uvg-online.com/rufbus-angermuende/ | https://uvg.tdimo.net/bapp/#/astBuchungenView |
flächenrufbus_angermünde_weekends | 1 | 60 | 1€ Komfortzuschlag pro Person; Anmeldung mind. 60min vorher erforderlich, per Anruf zwischen 08:00 und 24:00 möglich, oder online rund um die Uhr | +49 3332 442 755 | https://uvg-online.com/rufbus-angermuende/ | https://uvg.tdimo.net/bapp/#/astBuchungenView |
Definir horarios de parada¶
La ruta 476 opera de 17:30 a 22:00 de lunes a viernes y de 8:00 A. m.a 22:00 p.m.los fines de semana. Las horas de funcionamiento se definen utilizando los campos start_pickup_drop_off_window
y end_pickup_drop_off_window
. Viajar dentro del mismo grupo de ubicación requiere dos registros en stop_times.txt con el mismo location_group_id
.
- el primer registro con
pickup_type = 2
ydrop_off_type = 1
indica que se permite la recogida de reservas en el grupo de ubicación. - El segundo registro con
pickup_type = 1
ydrop_off_type = 2
indica que se permite la entrega de reservas en el grupo de ubicación.
trip_id | location_group_id | stop_sequence | start_pickup_drop_off_window | end_pickup_drop_off_window | pickup_type | drop_off_type | pickup_booking_rule_id | drop_off_booking_rule_id |
---|---|---|---|---|---|---|---|---|
476_weekdays | 476_stops | 1 | 17:30:00 | 22:00:00 | 2 | 1 | flächenrufbus_angermünde_weekdays | flächenrufbus_angermünde_weekdays |
476_weekdays | 476_stops | 2 | 17:30:00 | 22:00:00 | 1 | 2 | flächenrufbus_angermünde_weekdays | flächenrufbus_angermünde_weekdays |
476_weekends | 476_stops | 1 | 08:00:00 | 22:00:00 | 2 | 1 | flächenrufbus-angermünde_weekdays | flächenrufbus_angermünde_weekends |
476_weekends | 476_stops | 2 | 08:00:00 | 22:00:00 | 1 | 2 | flächenrufbus-angermünde_weekdays | flächenrufbus-angermünde_weekends |
Ruta desviada¶
"Desviación de ruta" se refiere a servicios en los que el vehículo sigue una ruta fija con una secuencia establecida de paradas pero tiene la flexibilidad de desviarse de esta ruta para recoger o dejar pasajeros entre paradas. Por lo general, las desviaciones se limitan para mantener la puntualidad del servicio y se requiere reserva previa para recogidas y devoluciones desviadas.
En este ejemplo, el servicio Hermann Express en New Ulm City permite que los usuarios sean recogidos solo en puntos fijos.paradas y ser dejado en cualquier punto dentro de un área de desviación específica entre estas paradas.
El siguiente ejemplo se ha simplificado; descargue el conjunto de datos de ejemplo de Hermann Express para obtener más detalles.
Definir viajes¶
Dado que este tipo de servicio todavía implica una serie de paradas fijas y un horario fijo, definir viajes es similar a los servicios normales de autobús de ruta fija. Requiere definir los viajes realizados por cada ruta a lo largo de todos los períodos de servicio relevantes.
route_id | service_id | trip_id | share_id |
---|---|---|---|
74513 | c_67295_b_77497_d_31 | t_5374704_b_77497_tn_0 | p_1426044 |
74513 | c_67295_b_77497_d_31 | t_5374699_b_77497_tn_0 | p_1426044 |
74513 | c_67295_b_77497_d_31 | t_5374698_b_77497_tn_0 | p_1426044 |
74513 | c_67295_b_77497_d_31 | t_5374697_b_77497_tn_0 | p_1426044 |
... | ... | ... | ... |
Definir zonas (GeoJSON location)¶
Usar locations.geojson para definir zonas para ruta desviada. Normalmente, las desviaciones se limitan para mantener el servicio según lo previsto. Por lo tanto, a medida que el vehículo avanza, el área de desviación entre cada parada fija puede variar en consecuencia. El área de desviación de ruta puede parecerse a la siguiente imagen:
Definir horarios de parada¶
Para paradas fijas, defina campos como arrival_time
, departure_time
y stop_id
de manera similar a las rutas de autobús normales. Entre paradas fijas, definir las zonas donde se permite el desvío. pickup_type = 1
y drop_off_type = 3
indican que no se permite la recogida desviada (limitando la recogida a paradas fijas únicamente) y que los pasajeros deben coordinar con el conductor para ser dejados en la zona de desviación.
trip_id | arrival_time | departure_time | stop_id | location_id | stop_sequence | start_pickup_drop_off_window | end_pickup_drop_off_window | pickup_type | drop_off_type | shape_dist_traveled | pickup_booking_rule_id | drop_off_booking_rule_id |
---|---|---|---|---|---|---|---|---|---|---|---|---|
t_5374696_b_77497_tn_0 | 08:00:00 | 08:00:00 | 4149546 | 1 | 0 | |||||||
t_5374696_b_77497_tn_0 | radius_300_s_4149546_s_4149547 | 2 | 08:00:00 | 8:02:22 | 1 | 3 | booking_route_74513 | booking_route_74513 | ||||
t_5374696_b_77497_tn_0 | 08:02:22 | 08:02:22 | 4149547 | 3 | 1221.627114 | |||||||
t_5374696_b_77497_tn_0 | radius_300_s_4149546_s_4149548 | 4 | 08:02:22 | 8:03:00 | 1 | 3 | booking_route_74513 | booking_route_74513 | ||||
t_5374696_b_77497_tn_0 | 08:03:22 | 08:03:22 | 4149548 | 5 | 1548.216356 | |||||||
t_5374696_b_77497_tn_0 | radius_300_s_4149546_s_4149549 | 6 | 08:03:22 | 8:05:00 | 1 | 3 | booking_route_74513 | booking_route_74513 | ||||
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
t_5374696_b_77497_tn_0 | 08:50:00 | 08:50:00 | 4210601 | 35 | 23429.19558 | |||||||
t_5374696_b_77497_tn_0 | 08:56:00 | 08:56:00 | 4149564 | 36 | 25320.8471 |
Comportamiento de enrutamiento¶
Ignorar registros de horarios de parada intermedios con ventanas de recogida/devolución¶
Al proporcionar rutas o tiempo de viaje entre el origen y el destino, los consumidores de datos deben ignorar los stop_times.txt.registros txt que tienen start_pickup_drop_off_window
y end_pickup_drop_off_window
definidos. Por ejemplo:
trip_id | location_id | stop_sequence | pickup_type | drop_off_type | start_pickup_drop_off_window | end_pickup_drop_off_window |
---|---|---|---|---|---|---|
tripA | Zone1 | 1 | 2 | 1 | 08:00:00 | 18:00:00 |
tripA | Zone2 | 2 | 1 | 2 | 08:00:00 | 14:00:00 |
tripA | Zone3 | 3 | 1 | 2 | 10:00:00 | 18:00:00 |
Los consumidores no deben tener en cuenta la Zona2 al proporcionar rutas o tiempo de viaje para un viaje de la Zona1 a la Zona3.
Restricción de superposición de zona¶
Superposición simultánea de locations.geojson geometría id
, hora de start/end_pickup_drop_off_window
y pickup_type
o drop_off_type
entre dos o más registros stop_times.txt con el El mismo trip_id
está prohibido.
Por ejemplo:
(Donde northportland
se refiere a una zona dentro de portland
)
Prohibido
trip_id | location_id | stop_sequence | pickup_type | drop_off_type | start_pickup_drop_off_window | end_pickup_drop_off_window |
---|---|---|---|---|---|---|
tripA | portland | 1 | 2 | 1 | 08:00:00 | 12:00:00 |
tripA | northportland | 2 | 2 | 1 | 10:00:00 | 14:00:00 |
tripA | vancouver | 3 | 1 | 2 | 10:00:00 | 14:00:00 |
Permitido
trip_id | location_id | stop_sequence | pickup_type | drop_off_type | start_pickup_drop_off_window | end_pickup_drop_off_window |
---|---|---|---|---|---|---|
tripA | portland | 1 | 2 | 1 | 08:00:00 | 12:00:00 |
tripA | northportland | 2 | 2 | 1 | 12:00:00 | 14:00:00 |
tripA | vancouver | 3 | 1 | 2 | 10:00:00 | 14:00:00 |
o
trip_id | location_id | stop_sequence | pickup_type | drop_off_type | start_pickup_drop_off_window | end_pickup_drop_off_window |
---|---|---|---|---|---|---|
tripA | portland | 1 | 2 | 1 | 08:00:00 | 12:00:00 |
tripA | northportland | 2 | 1 | 2 | 10:00:00 | 14:00:00 |
tripA | vancouver | 3 | 1 | 2 | 10:00:00 | 14:00:00 |
o
trip_id | location_id | stop_sequence | pickup_type | drop_off_type | start_pickup_drop_off_window | end_pickup_drop_off_window |
---|---|---|---|---|---|---|
tripA | portland | 1 | 2 | 1 | 08:00:00 | 12:00:00 |
tripA | gresham | 2 | 2 | 1 | 10:00:00 | 14:00:00 |
tripA | vancouver | 3 | 1 | 2 | 10:00:00 | 14:00:00 |
Glosario¶
📲 Dial-a-ride es una variación de varios términos utilizados en toda Europa.
🇨🇭 En Suiza se incluiría bajo el término Rufbus/Autobús de guardia. También está disponible el sistema PubliCar de PostAuto. Según esta propuesta, la aplicación y el servicio PubliCar se podrían descubrir en la aplicación de planificación de viajes preferida del usuario.
🇦🇹 En Austria, dial-a-ride también sería Rufbus y bajo el paraguas más amplio de Bedarfsverkehr (Transporte sensible a la demanda) y Mikro-ÖV (Microtransit).
- bedarfsverkehr.at
- Wiener Linien
- Rufbus (inglés: dial-a-bus, anteriormente Anruf-Sammel-Taxi o ASTAX call-collect-taxi)
- Implementación actual de GTFS como alerta de servicio de un año de duración
🇩🇰 En Dinamarca, se puede hacer referencia a NT / midttrafik / sydtrafik / FYNBUS / movia (https://flextur.dk/)
- flextur (inglés: flex trip)
- anteriormente flextrafik (inglés: flex transit)
🇫🇷 ⚠️ En Francia los términos TDA (Transport à la Demande) y PMR (Personnes à Mobilité Réduite) para servicios de Paratransit- Reseau Mistral - Appel bus (inglés: call bus)
🇩🇪 En Alemania se refieren a él como On- Demand-Angebot, Flexible Fahrt y AST- BVG - Marca: Muva- On- Demand-Angebot (inglés: servicio a pedido) - Flexible Fahrt (inglés: viaje flexible) - Otras áreas- Anruf-sammel-taxi o AST (inglés: llamada-cobro-cobro-taxi)
🇬🇧 En el Reino Unido existe el siguiente servicio: - go2 Sevenoaks - Servicio bajo demanda (On-demand service)
La terminología varía según las fronteras, pero en general podemos asumir que dial-a-ride es cualquier servicio que responde a la demanda y que requiere algún tipo de contacto entre el pasajero y el operador.