Comment sont traitées les courses passant minuit dans Chouette ?

Comment sont traitées les courses passant minuit dans Chouette ?

Cette FAQ explique comment Chouette traite les courses dont les horaires se situent autour de minuit, en particulier les courses qui commencent avant minuit et se terminent après minuit, ainsi que les courses qui commencent après minuit.

Cas 1 — Course commençant avant minuit et passant minuit

Lorsqu’une course commence avant minuit et se termine après minuit, Chouette conserve la course sur le calendrier au jour du premier passage de la course. Les horaires après minuit sont exprimés comme des heures supérieures à 24:00:00 quand le format le permet.

Exemple : une course part à 23:50 et arrive à 00:20 le lendemain.

  • Départ : 23:50:00 sur le calendrier, au jour du premier passage de la course J

  • Arrivée : 24:20:00 sur le même calendrier, au jour du premier passage de la course J

Cas 2 — Course commençant après minuit

Lorsqu’une course commence après minuit, Chouette la rattache le calendrier au jour de son premier passage.

Dans ce cas, le calendrier commence donc en J, et non en J-1, par rapport à l’heure du premier passage de la course.

Exemple :

  • Départ : 00:10:00

  • Arrivée : 00:45:00

Comme son premier passage est à 00:10 le jour J, elle est rattachée au calendrier de J. Ses horaires restent exprimés en heures classiques, 00:10:00 → 00:45:00 : ils ne sont pas convertis en 24:10:00 → 24:45:00 et ne sont pas rattachés au calendrier de J-1.

Traitement en NeTEx

En NeTEx, Chouette rattache la course au calendrier du jour de son premier passage et conserve la cohérence entre ce calendrier et les horaires des passages.

Le passage de minuit est représenté avec les champs ArrivalDayOffset et DepartureDayOffset. Ainsi, pour une course qui commence avant minuit et se poursuit après minuit, les passages du lendemain gardent une heure en 00:xx avec un DayOffset à 1, puis à 2 si la course se poursuit jusqu’à J+2. On n’utilise pas de DayOffset négatif.

Exemple : Course de 23:55 à 00:18 J+1

<ServiceJourney version="any" id="SNCF:ServiceJourney:e5e690b1-3b7d-4341-8024-2be876709022:LOC"> <!-- ... --> <passingTimes> <TimetabledPassingTime> <ArrivalTime>23:55:00.000</ArrivalTime> <ArrivalDayOffset>0</ArrivalDayOffset> <DepartureTime>23:55:00.000</DepartureTime> <DepartureDayOffset>0</DepartureDayOffset> </TimetabledPassingTime> <TimetabledPassingTime> <ArrivalTime>00:18:00.000</ArrivalTime> <ArrivalDayOffset>1</ArrivalDayOffset> <DepartureTime>00:18:00.000</DepartureTime> <DepartureDayOffset>1</DepartureDayOffset> </TimetabledPassingTime> </passingTimes> </ServiceJourney>

 

Traitement en GTFS

En GTFS, le fichier stop_times.txt autorise les horaires supérieurs à 24:00:00. Chouette utilise cette capacité pour représenter les courses qui se poursuivent après minuit lorsqu’elles ont commencé avant minuit et restent rattachées au même calendrier.

En revanche, une course dont le premier passage est après minuit est rattachée au calendrier de ce jour J : ses horaires restent en 00:xx et ne sont pas convertis en 24:xx sur J-1.

Exemple :

  • Course 23:50 → 00:20 rattachée au calendrier de J : departure_time=23:50:00, arrival_time=24:20:00.

  • Course 00:10 → 00:45 dont le premier passage est le jour J : departure_time=00:10:00, arrival_time=00:45:00, avec un calendrier actif sur J. Elle n’est pas représentée avec departure_time=24:10:00 sur le calendrier de J-1.

 

Pour les deux formats, Chouette crée le calendrier adapté lorsqu’il trouve à l’import une course dont le premier passage commence après minuit et qui est rattachée à un calendrier à J-1