Aller au contenu

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Ă©s trip_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.