Mises Ă jour des voyages¶
Les mises Ă jour des voyages reprĂ©sentent des fluctuations dans lâhoraire. Nous nous attendons Ă recevoir des mises Ă jour de voyage pour tous les voyages que vous avez programmĂ©s et qui sont compatibles en temps rĂ©el. Ces mises Ă jour donneraient une heure dâarrivĂ©e ou de dĂ©part prĂ©vue pour les arrĂȘts le long de lâitinĂ©raire. Les mises Ă jour des voyages peuvent Ă©galement prĂ©voir des scĂ©narios plus complexes dans lesquels les voyages sont annulĂ©s ou ajoutĂ©s au calendrier, ou mĂȘme rĂ©acheminĂ©s.
Rappel : Dans GTFS, un trajet est une sĂ©quence de deux arrĂȘts ou plus se produisant Ă une heure prĂ©cise.
Il devrait y avoir au plus une mise Ă jour de trajet pour chaque trajet programmĂ©. Sâil nây a pas de mise Ă jour du trajet pour un trajet programmĂ©, il sera conclu quâaucune donnĂ©e en temps rĂ©el nâest disponible pour le trajet. Le application rĂ©utilisatrice de donnĂ©es ne doit pas supposer que le voyage se dĂ©roule Ă lâheure.
Si un vĂ©hicule effectue plusieurs trajets dans le mĂȘme bloc (pour plus dâinformations sur les trajets et les blocages, veuillez vous rĂ©fĂ©rer Ă GTFS trips.txt ) :
- le flux doit inclure une TripUpdate pour le trajet actuellement desservi par le vĂ©hicule. Les producteurs sont encouragĂ©s Ă inclure des TripUpdates pour un ou plusieurs voyages aprĂšs le voyage en cours dans le bloc de ce vĂ©hicule sâils sont confiants dans la qualitĂ© des prĂ©visions pour ces futurs voyages. Lâinclusion de plusieurs TripUpdates pour le mĂȘme vĂ©hicule Ă©vite les « pop-in » de prĂ©diction pour les usagers lorsque le vĂ©hicule passe dâun trajet Ă un autre et donne Ă©galement aux usagers un prĂ©avis des retards qui ont un impact sur les trajets en aval (par exemple, lorsque le retard connu dĂ©passe les temps dâescale prĂ©vus entre les trajets).
- Il nâest pas nĂ©cessaire que les entitĂ©s TripUpdate respectives soient ajoutĂ©es au flux dans le mĂȘme ordre dans lequel elles sont planifiĂ©es dans le bloc. Par exemple, sâil y a des trajets avec les
trip_ids
1, 2 et 3 qui appartiennent tous à un seul bloc, et que le véhicule effectue le trajet 1, puis le trajet 2, puis le trajet 3, les entitéstrip_update
peuvent apparaĂźtre dans nâimporte quel ordre. - par exemple, ajouter le trajet 2, puis le trajet 1, puis le trajet 3 est autorisĂ©.
StopTimeUpdate¶
Une mise Ă jour de trajet consiste en une ou plusieurs mises Ă jour des horaires dâarrĂȘts du vĂ©hicule, appelĂ©es StopTimeUpdates. Ceux-ci peuvent ĂȘtre fournis pour les horaires dâarrĂȘts passĂ©s et futurs. Vous ĂȘtes autorisĂ©, mais pas obligĂ©, d'enlever des horaires dâarrĂȘts prĂ©cĂ©dents, sauf si le trajet est un nouveau trajet ou un trajet de remplacement non trouvĂ© dans la GTFS statique. Les producteurs ne doivent pas supprimer une StopTimeUpdate
passĂ©e si elle fait rĂ©fĂ©rence Ă un arrĂȘt avec une heure dâarrivĂ©e prĂ©vue dans le futur pour le trajet donnĂ© (câest-Ă -dire que le vĂ©hicule a dĂ©passĂ© lâarrĂȘt plus tĂŽt que prĂ©vu), sinon il sera conclu quâil nây a pas de mise Ă jour pour cet arrĂȘt.
Par exemple, si les données suivantes apparaissent dans le flux GTFS-rt :
- ArrĂȘt 4 â PrĂ©dit Ă 10h18 (programmĂ© Ă 10h20 â 2 min en avance)
- ArrĂȘt 5 â PrĂ©dit Ă 10h30 (prĂ©vu Ă 10h30 â Ă lâheure)
...la prĂ©diction pour lâarrĂȘt 4 ne peut pas ĂȘtre supprimĂ©e du flux avant 10h21, mĂȘme si le bus passe effectivement lâarrĂȘt Ă 10h18. Si le StopTimeUpdate
pour lâarrĂȘt 4 a Ă©tĂ© supprimĂ© du flux Ă 10 h 18 ou 10 h 19 et que lâheure dâarrivĂ©e prĂ©vue est 10 h 20, alors le application rĂ©utilisatrice doit supposer quâaucune information en temps rĂ©el nâexiste pour lâarrĂȘt 4 Ă ce moment-lĂ ., et les donnĂ©es de planification de GTFS doivent ĂȘtre utilisĂ©es.
Chaque StopTimeUpdate est liĂ© Ă un arrĂȘt. Habituellement, cela peut ĂȘtre fait en utilisant soit un stop_sequence GTFS, soit un stop_id GTFS. Cependant, dans le cas oĂč vous fournissez une mise Ă jour pour un voyage sans GTFS trip_id, vous devez spĂ©cifier stop_id car stop_sequence nâa aucune valeur. Le stop_id doit toujours faire rĂ©fĂ©rence Ă un stop_id dans GTFS. Si le mĂȘme stop_id est visitĂ© plus dâune fois au cours dâun trajet, alors stop_sequence doit ĂȘtre fourni dans toutes les StopTimeUpdates pour ce stop_id lors de ce trajet.
La mise Ă jour peut fournir une heure exacte pour arrival et/ou le departure Ă un arrĂȘt dans StopTimeUpdates en utilisant StopTimeEvent. Celui-ci doit contenir soit une time absolue, soit un delay (câest-Ă -dire un dĂ©calage par rapport Ă lâheure programmĂ©e en secondes). Le dĂ©lai ne peut ĂȘtre utilisĂ© que dans le cas oĂč la mise Ă jour du trajet fait rĂ©fĂ©rence Ă un trajet GTFS programmĂ©, par opposition Ă un trajet basĂ© sur la frĂ©quence. Dans ce cas, le temps doit ĂȘtre Ă©gal au temps programmĂ© + le dĂ©lai. Vous pouvez Ă©galement spĂ©cifier lâuncertainty de la prĂ©diction avec StopTimeEvent, qui est abordĂ©e plus en dĂ©tail dans la section Uncertainty plus loin dans le page.
Pour chaque StopTimeUpdate, la relation de planification par dĂ©faut est programmĂ©e. (Notez que ceci est diffĂ©rent de la relation dâhoraire pour le voyage). Vous pouvez modifier ce paramĂštre en ignorĂ© si lâarrĂȘt ne sera pas arrĂȘtĂ© Ă , ou en pas de donnĂ©es si vous ne disposez que de donnĂ©es en temps rĂ©el pour une partie du trajet.
Les mises Ă jour doivent ĂȘtre triĂ©es par stop_sequence (ou stop_ids dans lâordre dans lequel elles se produisent dans le voyage).
Si un ou plusieurs arrĂȘts manquent tout au long du trajet, le delay
 de la mise à jour (ou, si seul time
est fourni dans la mise à jour, un délai calculé en comparant le time
 avec lâheure du programme GTFS) est propagĂ© Ă tous les arrĂȘts suivants. Cela signifie que la mise Ă jour dâune heure dâarrĂȘt pour un certain arrĂȘt modifiera tous les arrĂȘts suivants en lâabsence de toute autre information. Notez que les mises Ă jour avec une relation de planification de SKIPPED
nâarrĂȘteront pas la propagation du dĂ©lai, mais les mises Ă jour avec des relations de planification de SCHEDULED
(Ă©galement la valeur par dĂ©faut si la relation de planification nâest pas fournie) ou NO_DATA
le feront.
Exemple 1
Pour un trajet comportant 20 arrĂȘts, un StopTimeUpdate avec un dĂ©lai dâarrivĂ©e et un dĂ©lai de dĂ©part de 0 (StopTimeEvents) pour stop_sequence de lâarrĂȘt en cours signifie que le trajet est exactement Ă lâheure.
Exemple 2
Pour une mĂȘme instance de dĂ©clenchement, trois StopTimeUpdates sont fournies :
- délai de 300 secondes pour stop_sequence 3
- délai de 60 secondes pour stop_sequence 8
- ScheduleRelationship de
NO_DATA
pour stop_sequence 10
Ceci sera interprété comme :
- stop_sequences 1,2 ont un délai inconnu.
- stop_sequences 3,4,5,6,7 ont un délai de 300 secondes.
- stop_sequences 8,9 ont un retard de 60 secondes.
- stop_sequences 10,..,20 ont un délai inconnu.
TripDescriptor¶
Les informations fournies par TripDescriptor dĂ©pendent de la relation horaire du voyage que vous mettez Ă jour. Vous pouvez dĂ©finir un certain nombre dâoptions :
Valeur | Commentaire |
---|---|
PlanifiĂ© | Ce voyage sâeffectue selon un planning GTFS, ou est suffisamment proche pour y ĂȘtre encore associĂ©. |
AjoutĂ© | Ce voyage nâĂ©tait pas programmĂ© et a Ă©tĂ© ajoutĂ©. Par exemple, pour faire face Ă la demande, ou remplacer un vĂ©hicule en panne. |
Non programmĂ© | Ce trajet est en cours et nâest jamais associĂ© Ă un planning. Par exemple, sâil nây a pas dâhoraire et que les bus fonctionnent avec un service de navette. |
Annulé | Ce voyage était programmé, mais est désormais supprimé. |
DupliquĂ© | Ce nouveau trajet est une copie dâun trajet existant en GTFS statique Ă lâexception de la date et de lâheure de dĂ©but du service. Le nouveau voyage sâexĂ©cutera Ă la date et Ă lâheure de service spĂ©cifiĂ©es dans TripProperties. |
Dans la plupart des cas, vous devez fournir le trip_id du voyage programmé dans GTFS auquel cette mise à jour se rapporte.
SystĂšmes avec des trip_ids rĂ©pĂ©tĂ©s¶
Pour les systĂšmes utilisant des trip_ids rĂ©pĂ©tĂ©s, par exemple des trajets modĂ©lisĂ©s Ă lâaide de frequencies.txt, câest-Ă -dire des trajets basĂ©s sur la frĂ©quence, le trip_id nâest pas en soi un identifiant unique dâun seul voyage, car il lui manque une composante temporelle spĂ©cifique. Afin dâidentifier de maniĂšre unique de tels voyages dans un TripDescriptor, un triple dâidentifiants doit ĂȘtre fourni :
- trip_id
- start_time
- start_date
start_time doit ĂȘtre dâabord publiĂ©, ainsi que toutes les mises Ă jour ultĂ©rieures du flux.devrait utiliser la mĂȘme heure de dĂ©part pour faire rĂ©fĂ©rence au mĂȘme voyage. StopTimeUpdates doit ĂȘtre utilisĂ© pour indiquer les ajustements ; start_time ne doit pas nĂ©cessairement ĂȘtre prĂ©cisĂ©ment lâheure de dĂ©part de la premiĂšre station, mĂȘme si elle doit ĂȘtre assez proche de cette heure.
Par exemple, disons que nous dĂ©cidons Ă 10h00, le 25 mai 2015, quâun voyage avec trip_id=T commencera Ă start_time=10:10:00, et fournissons cette information via flux en temps rĂ©el Ă 10h01. Vers 10h05, nous savons soudain que le voyage ne commencera pas Ă 10h10 mais Ă 10h13. Dans notre nouveau flux en temps rĂ©el, nous pouvons toujours identifier ce voyage comme (T, 2015-05-25, 10:10:00) mais fournir une StopTimeUpdate avec dĂ©part du premier arrĂȘt Ă 10:13:00.
Correspondance de trajets alternatifs¶
Les trajets qui ne sont pas basĂ©s sur la frĂ©quence peuvent Ă©galement ĂȘtre identifiĂ©s de maniĂšre unique par un TripDescriptor comprenant la combinaison de :
- route_id
- direction_id
- start_time
- start_date
oĂč start_time est lâheure de dĂ©but prĂ©vue telle que dĂ©finie dans le programme statique, Ă condition que la combinaison dâidentifiants fournis donne lieu Ă un voyage unique.
Incertitude¶
Lâincertitude sâapplique Ă la fois Ă lâheure et Ă la valeur du dĂ©lai dâun StopTimeUpdate. Lâincertitude spĂ©cifie approximativement lâerreur attendue dans le dĂ©lai rĂ©el sous la forme dâun nombre entier en secondes (mais notez que la signification statistique prĂ©cise nâest pas encore dĂ©finie). Il est possible que lâincertitude soit de 0, par exemple pour les trains circulant sous contrĂŽle de synchronisation informatique.
Ă titre dâexemple, un bus longue distance qui a un retard estimĂ© de 15 minutes arrivant Ă son prochain arrĂȘt dans une fenĂȘtre dâerreur de 4 minutes (soit +2/-2 minutes) aura une valeur dâincertitude de 240.