GTFS

Description rapide

General Transit Feed Specification (GTFS) est un format d’échange numérique lancé par Google pour les horaires des transports publics de voyageurs et les informations géographiques associées, telles que la localisation des arrêts. Désormais, l’organisation MobiliyData (https://mobilitydata.org/). Il existe différentes variantes de GTFS. Pour notre jeu de données avec les horaires, nous utilisons GTFS Static (GTFS-S; également connu sous le nom de GTFS Schedule).

Un fichier GTFS-Static contient l’ensemble des transports publics suisses d’une année d’horaire des transports publics (365 jours à partir de la mi-décembre). Contrairement à GTFS Realtime (GTFS-RT), GTFS Static ne fournit que des données statiques et non des données en temps réel. (Année d’horaire sur tp-info.ch/fr)

Accès aux données

Description métier

GTFS Static est fourni au moyen d’une série de fichiers texte au format ZIP. Les informations contenues sont extraites du fichier HDRF sous-jacent (https://opentransportdata.swiss/cookbook/timetable-cookbook/hafas-rohdaten-format-hrdf/). GTFS peut représenter la plupart mais pas la totalité des informations issues des HRDF. Ces informations sont fournies par les différentes entreprises de transport. Chaque fichier fournit des informations sur un aspect précis des informations sur le transit, comme les arrêts (stops.txt), les lignes (routes.txt), les trajets (trips.txt), les entreprises de transport (agency.txt) et d’autres données pertinentes pour l’horaire. Certaines indications sont nécessaires pour fournir des données GTFS valides, d’autres sont facultatives et fournissent des informations complémentaires utiles (p. ex. modifications de l’horaire certains jours fériés = calendar_dates.txt).

En raison de la généralisation du format, il existe sur GitHub de nombreux outils pour gérer les données GTFS collectées par MobilityData, connus sous le nom de transit génial. En outre, opentransportdata.swiss met à disposition des outils spécifiques pour les données suisses Tools and More (dans la section «Pour l’utilisation des données d’horaire et en temps réel GTFS»).

Le graphique ci-dessous montre les liens entre les différents fichiers contenus dans GTFS, qui ne sont pas tous pris en compte pour les transports publics suisses à l’heure actuelle:

Klassen GTFS Static
Klassen GTFS Static

Outre le GTFS-S, les formats GTFS suivants sont disponibles sur opentransportdata.swiss:

Description technique

Structure des données

Chaque fichier est composé de séries de textes et de chiffres séparées par des virgules avec des champs qui, ensemble, fournissent les informations recherchées. La première ligne contient les noms des colonnes, comme c’est le cas pour les fichiers CSV. Les différents champs dans les différents fichiers sont expliqués en détail sur le site officiel du standard GTFS: https://gtfs.org/documentation/schedule/reference/

Les fichiers suivants sont actuellement disponibles dans notre jeu de données:

  • agency.txt
  • calendar.txt
  • calendar_dates.txt
  • feed_info.txt
  • routes.txt
  • stop_times.txt
  • stops.txt
  • transfers.txt
  • trips.txt

Une vue d’ensemble des différents fichiers est présentée ci-dessous. Pour plus de détails, veuillez consulter le Profil GTFS suisse.

agency.txt

Le fichier agency.txt répertorie toutes les entreprises de transport présentes dans le jeu de données. Pour des raisons techniques, il est toujours renvoyé à la même URL et au même numéro de téléphone; ils ne sont valables que pour l’entreprise de transport CFF.

Exemple:

agency_id,agency_name,agency_url,agency_timezone,agency_lang,agency_phone
"11","Schweizerische Bundesbahnen SBB","http://www.sbb.ch/","Europe/Berlin","DE","0848 44 66 88"
"65","THURBO","http://www.sbb.ch/","Europe/Berlin","DE","0848 44 66 88"
"823","Basler Verkehrsbetriebe","http://www.sbb.ch/","Europe/Berlin","DE","0848 44 66 88"
"37","Baselland Transport","http://www.sbb.ch/","Europe/Berlin","DE","0848 44 66 88"
"827","Städtische Verkehrsbetriebe Bern","http://www.sbb.ch/","Europe/Berlin","DE","0848 44 66 88"
"78","Sihltal-Zürich-Uetliberg-Bahn","http://www.sbb.ch/","Europe/Berlin","DE","0848 44 66 88"
"88","Regionalverkehr Bern-Solothurn","http://www.sbb.ch/","Europe/Berlin","DE","0848 44 66 88"

calendar.txt

Le fichier calendar.txt définit pour chaque «service_id» les jours de la semaine pendant lesquels ce «service_id» circule normalement (p. ex. lu-ve). start_date et end_date correspondent à toute la période d’horaire allant d’un changement d’horaire au prochain changement d’horaire (décembre à décembre). «1» signifie que le service_id circule le jour en question, 0 signifie qu’il ne circule pas.

Un «service_id» et un «route_id» précisent dans le fichier «trips.txt» les jours où un trajet spécifique circule.

Exemple:

service_id,monday,tuesday,wednesday,thursday,friday,saturday,sunday,start_date,end_date
"TA","1","1","1","1","1","1","1","20251214","20261212"
"TA+00000","1","1","1","1","1","1","1","20251214","20261212"
"TA+00100","1","1","1","1","1","0","0","20251214","20261212"
"TA+01000","0","0","0","0","0","0","1","20251214","20261212"
"TA+01100","0","0","1","0","1","0","0","20251214","20261212"
"TA+02000","1","1","1","1","1","0","0","20251214","20261212"
"TA+02100","0","0","0","0","1","0","0","20251214","20261212"

calendar_dates.txt

Le fichier calendar_dates.txt définit les écarts/exceptions par rapport au modèle hebdomadaire selon calendar.txt. Il s’agit souvent de jours fériés, mais il peut également y avoir d’autres raisons, comme des chantiers prévus ou de grands événements.

service_id,date,exception_type
"TA+00000","20260213","2"
"TA+00000","20260214","2"
"TA+00000","20260215","2"
"TA+00000","20260216","2"
"TA+00000","20260217","2"
"TA+00000","20260218","2"

feed_info.txt

Le fichier feed_info.txt contient des métadonnées sur le jeu de données. La colonne «feed_version» indique la version du jeu de données GTFS qui peut être référencée par les flux GTFS en temps réel.

Exemple:

feed_publisher_name,feed_publisher_url,feed_lang,feed_start_date,feed_end_date,feed_version
"SBB","http://www.sbb.ch/","DE","20251214","20261212","20250529"

routes.txt

Le fichier routes.txt contient les informations sur les lignes.

La colonne route_id est structurée comme suit: <Betriebszweig>-<Liniennummer>-<Projektkurzbezeichnung>-<Linienversionsnummer>; le numéro de ligne comporte souvent une extension par un tiret supplémentaire, p. ex. «-Y». Le contenu des différentes parties de la route_id est toutefois en grande partie spécifique au système qui génère les données GTFS et ne peut pas être affiché aux voyageurs. Les désignations de lignes pertinentes pour les voyageurs figurent dans la colonne route_short_name.

Exemple (lignes de RER «S10» de différents exploitants aux lignes 2 à 4):

route_id,agency_id,route_short_name,route_long_name,route_desc,route_type
"91-10-A-j26-1","78","S10","","S","109"
"91-10-B-j26-1","11","S10","","S","109"
"91-10-C-j26-1","65","S10","","S","109"
"91-29-j26-1","11","S29","","S","109"
"91-29-Y-j26-1","11","IC","","IC","102"
"91-46-j26-1","82","IR46","","IR","103"
"91-48-j26-1","11","RE48","","RE","106"

Les colonnes route_desc et route_type contiennent les moyens de transport indiqués dans le tableau ci-dessous. Notre jeu de données utilise des valeurs de ces liste largement diffusée de route_type par rapport à la Liste selon le standard (qui ne connaît que dix valeurs pour route_type):

route_desc DE FR IT EN route_type
ASC Aufzug Ascenseur Ascensore Lift / Elevator 1303
B Bus Autobus Autobus Bus 700
BP PanoramaBus Bus panoramique PanoramaBus Panorama Bus 710
BUS Bus Autobus Autobus Bus 700
CAR Fernbus national Bus longue distance national Autobus nazionale a lunga percorrenza National long-distance bus 202
CAX Fernbus international Bus grandes lignes international Autobus a lunga percorrenza internazionale International long-distance bus 201
EB Eilbus Bus express Autobus espresso Semi fast bus 702
EXB Expressbus Expressbus Expressbus Express bus 702
ICB InterCity-Bus Bus InterCity Autobus InterCity InterCity Bus 202
BN Nacht-Bus Bus de nuit Bus notturno Night Bus 705
RUB Rufbus Bus sur appel Bus a chiamata On-demand Bus 715
TX Taxi Taxi Tassì Taxi 1500
SL Sesselbahn Télésiège Seggiovia Chairlift 1300
CC Zahnradbahn Chemin de fer à crémaillère Ferrovia a cremagliera Rack-railroad / Cog Railway 116
GB Gondelbahn Télécabine Ovovia Gondola lift 1300
LB Luftseilbahn Téléphérique Funivia Cableway / Aerial Ropeway 1300
PB Pendelbahn Téléphérique à mouvement de va-et-vient Funivia a movimento va e vieni Aerial Tramway 1300
M Metro Métro Metropolitana Underground / Metro 401
FUN Standseilbahn Funiculaire Funicolare Funicular 1400
BAT Schiff Bateau Battello Ship / Boat 1000
BAV Dampfschiff Bateau à vapeur Battello a vapore Steam ship / boat 1000
FAE Fähre Traversier / Ferry Nave traghetto Ferry 1000
KAT Katamaran Catamaran Catamarano Katamaran 1000
T Tram Tram Tram Tram 900
TN Nachttram Tram de nuit Tram notturno Night Tram 900
AIR Flugzeug Avion Velivolo Airplane 1100
UUU Unbekannte Art Espèce inconnue Specie sconosciuta Unknown mode 1700
AG Agenturzug Train de l’agence Treno d’agenzia Agency Train 117
ARZ Autoreisezug Train d’autos accompagnées Treno auto accompagnate Car-carrying Train 104
AT Autotunnelzug Train-autos Tunnel Treno per il trasporto di auto in galleria Auto Tunnel Train 104
ATZ Autotunnelzug Train-autos Tunnel Treno per il trasporto di auto in galleria Auto Tunnel Train 104
E Eilzug Train accéléré Treno espresso Semi fast / non-stop Train 103
EC EuroCity EuroCity EuroCity EuroCity 102
EN EuroNight EuroNight EuroNight EuroNight 105
ES Eurostar Italia Eurostar Italia Eurostar Italia Eurostar Italia 101
EST Eurostar Eurostar Eurostar Eurostar 101
EXT Extrazug Train spécial Treno speciale Special Event Train 117
IC InterCity InterCity InterCity InterCity 102
ICE InterCityExpress InterCity-Express InterCityExpress InterCityExpress 102
IR InterRegio InterRegio InterRegio InterRegio 103
NJ NightJet NightJet Nightjet NightJet 105
P Zug ohne Gewähr Train non garanti Treno senza garanzia Train without Guarantee 100
PE PanoramaExpress PanoramaExpress PanoramaExpress PanoramaExpress 107
R Regio Train régional Regio Regio 106
RB Regionalbahn Réseau régional Ferrovia regionale Regional train 106
RE RegioExpress RegioExpress RegioExpress RegioExpress 106
RJ Railjet Railjet Railjet Railjet 102
RJX Railjet Xpress Railjet Xpress Railjet Xpress Railjet Xpress 102
S S-Bahn RER Rete celere regionale Urban Train 109
SN Nacht-S-Bahn RER de nuit S-Bahn (rete celere regionale) notturna Night-urban Train 109
TER Train Express Regional Train Express régional Treno espresso regionale Train Express Regional 106
TGV Train à grande vitesse Train à grande vitesse Train à grande vitesse Train à grande vitesse 101
ZUG Zugskategorie unbekannt Catégorie de train inconnue Categoria del treno sconosciuta Train Category Unknown 100

stop_times.txt

Le fichier stop_times.txt définit les heures de départ et d’arrivée à tous les arrêts pour chaque trajet; il s’agit normalement, de loin, du fichier le plus volumineux d’une livraison GTFS-S (si le fichier shapes.txt est fourni, le fichier peut être encore plus volumineux).

Exemple (un parcours complet, de Zurich Triemli à Zurich gare centrale):

trip_id,arrival_time,departure_time,stop_id,stop_sequence,pickup_type,drop_off_type
"1.TA.91-10-A-j26-1.1.H","18:27:00","18:27:00","8503054:0:1","1","0","0"
"1.TA.91-10-A-j26-1.1.H","18:28:00","18:28:00","8503053:0:1","2","0","0"
"1.TA.91-10-A-j26-1.1.H","18:29:00","18:29:00","8503052:0:1","3","0","0"
"1.TA.91-10-A-j26-1.1.H","18:32:00","18:32:00","8503051:0:1","4","0","0"
"1.TA.91-10-A-j26-1.1.H","18:35:00","18:35:00","8503090:0:1","5","0","0"
"1.TA.91-10-A-j26-1.1.H","18:37:00","18:37:00","8503000:0:22","6","0","0"

stops.txt

Le fichier stops.txt contient tous les arrêts et, le cas échéant, la bordure d’arrêt exacte ou la voie avec d’éventuelles indications de secteur. Depuis juin 2025, la colonne «platform_code» est également affichée. Elle contient la voie ou la bordure d’arrêt du bus ou du tram. Depuis octobre 2025, le Swiss Location ID (SLOID) est également affiché dans la colonne «original_stop_id», le cas échéant.

Exemple:

stop_id,stop_name,stop_lat,stop_lon,location_type,parent_station,platform_code,original_stop_id
"1100723","Inzlingen, Zoll","47.58557417","7.67283424","","Parent1100723","","ch:1:sloid:1100723"
"1200730:0:A","Feldkirch, Bahnhof","47.24149699","9.60366412","","Parent1200730","A",""
"8505094:0:A","Schwyz, Bahnhof","47.02672889","8.63216309","","Parent8505094","A","ch:1:sloid:5094:0:462011"
"8507000:0:49","Bern","46.94822398","7.43333440","","Parent8507000","49","ch:1:sloid:7000:55:49"
"8509068:0:2CD","Klosters Platz","46.86939496","9.88073151","","Parent8509068","2CD","ch:1:sloid:9068:0:207133"

transfers.txt

Le fichier transfers.txt définit des règles de correspondance. Les arrêts concernés (from_stop_id et to_stop_id) et le temps nécessaire à la correspondance (min_transfer_time) sont indiqués avec la valeur transfer_type=2 (correspondance «normale» avec temps minimal selon min_transfer_time).

L’option transfer_type=4 est définie pour toutes les liaisons transversales comportant des coupures. transfer_type = 4 signifie, selon le standard GTFS, que les voyageurs ne doivent pas changer de train. C’est le cas p. ex. pour les trains à destinations multiples qui se séparent et changent ainsi le trip_id, mais que les voyageurs peuvent rester assis. Cela peut être signalé par un symbole correspondant.

En outre, depuis octobre 2025, des correspondances sont garanties avec transfer_type=1, ce qui signifie que le prochain moyen de transport attend les voyageuses et voyageurs en correspondance. La colonne min_transfer_time reste vide dans ce cas.
Sur instruction de la centrale, il peut toutefois arriver que le véhicule partant n’attend pas malgré tout.

En Suisse, le temps de correspondance par défaut pour un arrêt est fixé à deux minutes. Cela n’est pas visible dans le fichier GTFS lui-même, mais doit être pris en compte pour le routage.

Exemple:

from_stop_id,to_stop_id,from_route_id,to_route_id,from_trip_id,to_trip_id,transfer_type,min_transfer_time
"8501120:0:1","8501120:0:3","","","","","2","300"
"8501120:0:1","8501120:0:4","","","","","2","300"
"8501120:0:1","8501120:0:4A-D","","","","","2","300"
"8501120:0:1","8501120:0:4E-G","","","","","2","300"
"8507483:0:3","8507483:0:3","91-1-N-j26-1","91-1-N-j26-1","72.TA.91-1-N-j26-1.22.R","91.TA.91-1-N-j26-1.34.R","4",""
"8507483:0:3","8507483:0:3","91-1-N-j26-1","91-1-N-j26-1","72.TA.91-1-N-j26-1.22.R","100.TA.91-1-N-j26-1.36.R","4",""
"8507483:0:3","8507483:0:3","91-1-N-j26-1","91-11-N-j26-1","72.TA.91-1-N-j26-1.22.R","24.TA.91-11-N-j26-1.7.R","4",""
"8502282","8502282","92-634-j25-1","92-602-A-j25-1","104.TA.92-634-j25-1.1.H","114.TA.92-602-A-j25-1.1.H","1",""
"8577747","8577747","92-234-j25-1","92-235-A-j25-1","4.TA.92-234-j25-1.3.H","37.TA.92-235-A-j25-1.4.R","1",""

trips.txt

Le fichier trips.txt contient les trajets des lignes définies dans routes.txt.

  • Pour les trains, «trip_short_name» contient le numéro de train.
  • Un «trip» selon GTFS représenté dans Transmodel (https://en.wikipedia.org/wiki/Transmodel) la notion de «DatedVehicleJourney» (un «DatedJourney» dans l’OJP). Dans Transmodel et l’OJP, un Trip est un voyage du client retourné par le Trip Planner. Il se compose de différents trajets partiels, changements et autres parcours qui doivent être parcourus selon différents modes. Dans HRDF, le «trip» de GTFS correspond au «trajet» et dans NeTEx au «ServiceJourney».
  • L’implémentation suisse utilise l’original_trip_id tel qu’il est défini pour GTFS Transit (https://developers.google.com/transit/gtfs/reference). Le champ contient le Swiss Journey ID (SJYID), qui établit une relation N:1 entre trip_id et SJYID. Le SJYID n’est univoque que sur une base journalière. Il est également utilisé dans GTFS-RT.
  • Le champ «hints» contient les notes de circulation selon le standard de la branche information à la clientèle (https://www.oev-info.ch/de/branchenstandard/uebersicht). Les codes tarifaires sont inclus en tant que TC-<Code>.

trip_id est structuré comme suit: <fortlaufende Nummer in trips.txt>.<service_id>.<route_id>.<Fahrwegsnummer>.<Fahrtrichtung>

Depuis juin 2025, des textes de direction composés sont affichés dans le champ «trip_headsign» en cas de séparation de trains à destinations multiples. Au cours du trajet Berne–Spiez, par exemple, la mention «Brig | Zweisimmen» pourrait être affichée si une partie du train poursuit ensuite jusqu’à Brigue et l’autre jusqu’à Zweisimmen.

Exemple:

route_id,service_id,trip_id,trip_headsign,trip_short_name,direction_id,block_id,original_trip_id,hints
"91-2A-Y-j26-1","TA","10.TA.91-2A-Y-j26-1.3.H","Milano Centrale","23","0","","ch:1:sjyid:100001:23-003",""
"91-46-B-j26-1","TA+3t000","1.TA.91-46-B-j26-1.1.H","Sedrun","426","0","","","2 NF"
"92-5-B-j26-1","TA+d4","10.TA.92-5-B-j26-1.2.H","St. Gallen, Rotmonten","5612","0","","","NF"
"91-1-N-j26-1","TA","57.TA.91-1-N-j26-1.22.R","Brig | Zweisimmen","4185","1","1088","ch:1:sjyid:100015:4185-001","FL"
"91-1-N-j26-1","TA","58.TA.91-1-N-j26-1.22.R","Brig | Zweisimmen","4163","1","1089","ch:1:sjyid:100015:4163-001","FL"
"91-1-N-j26-1","TA","62.TA.91-1-N-j26-1.22.R","Brig | Zweisimmen","4159","1","1094","ch:1:sjyid:100015:4159-001","FL"
"91-1-N-j26-1","TA+c9","65.TA.91-1-N-j26-1.22.R","Brig | Zweisimmen","4179","1","1077","ch:1:sjyid:100015:4179-001","FL"
"91-7C-Y-j25-1","TA+97om0","1.TA.91-7C-Y-j25-1.1.H","Neuchâtel | Fribourg/Freiburg","31110","0","3748","ch:1:sjyid:100034:31110-019","FL TC-005000"
"91-7C-Y-j25-1","TA+oot30","2.TA.91-7C-Y-j25-1.1.H","Neuchâtel | Fribourg/Freiburg","31112","0","3747","ch:1:sjyid:100034:31112-020","FL TC-005000"

shapes.txt

Actuellement, nous renonçons volontairement aux shapes, car ceux-ci ne nous sont pas communiqués, pour l’instant, par les systèmes fournisseurs. Nous avons essayé de les générer à partir des parcours, mais n’avons pas trouvé la qualité suffisante. Les parcours sont au cœur de la roadmap SKI, mais cela va encore durer.

Nous vérifierons de temps en temps si nous pouvons mieux créer les formes. Nous travaillerions actuellement sur la base d’OpenStreetMap (OSM). Les formes seront donc également soumises à la licence OSM.

Avec des logiciels tels que pfaedle, chacun peut créer lui-même des formes: ad-fribourg/pfaedle: Appariement cartographique précis pour les flux du transport en commun. Génère des formes GTFS de haute qualité à partir de données OSM.

Jours de circulation et jours civils au format GTFS-S et GTFS-RT

Le start_day dans GTFS-S est le jour d’exploitation du début («Start service day for the service interval»). Il est donc possible que des indications de temps >24h00 soient indiquées, car les courses de moyens de transport qui commencent après minuit, c’est-à-dire le jour civil suivant, appartiennent toujours au même jour d’exploitation.

Dans GTFS-RT, il n’y a pas d’information spécifique pour le jour de circulation, le «StartDate» y étant toujours le jour civil. Le même convoi peut donc partir à 24:47:00 dans GTFS-S, mais avoir un «StartTime» de 00:47:00 dans GTFS-RT.

Stabilité des identifiants entre les versions du fichier statique GTFS

GTFS Static est recréé deux fois par semaine. Il est donc possible que le service_id et le trip_id ne soient pas identiques.

Cycle de déploiement des nouveaux fichiers GTFS statiques

Une nouvelle version des données HRDF (base pour GTFS-S) est publiée le mardi et le vendredi; la statique GTFS basée sur celle-ci est publiée 1 à 2 jours ouvrables plus tard, entre 9 et 10 heures (voir tableau ci-dessous).

Le même jour, à 15 heures, le flux GTFS-RT correspondant est activé.

Remarques importantes: aucune mise à jour n’est effectuée les jours fériés (p. ex. lundi de Pâques, lundi de Pentecôte, etc.).

Publication HRDF Publication GTFS-S Activation GTFS-RT
Vendredi Lundi entre 9h00 et 10h00 Lundi, 15h00
Mardi Jeudi entre 9h00 et 10h00 Jeudi, 15h00

En cas de dérangement: L’enregistrement GTFS Static est publié dès que possible, suivi de GTFS Realtime environ 5 à 6 heures plus tard, mais au plus tard jusqu’à 18h00 le jour même. Si cela n’est pas possible, les nouvelles données sont activées dans GTFS Realtime le lendemain.

Exemple: Les nouvelles données GTFS statiques n’ont pu être publiées que dans l’après-midi. L’activation des données GTFS en temps réel aura lieu le lendemain vers 9h00.

Informations complémentaires

Appariement GTFS-HRDF

Le trip_id n’a aucun lien avec les données HRDF. L’attribution entre les courses HRDF et GTFS n’est pas 1:1, car l’ID de course (= numéro de course) ne doit pas être unique dans un bloc de données HRDF. Le flux HRDF d’un jour (p. ex. 2025-08-13) correspond toujours au flux GTFS (p. ex. 2025-08-14).

En utilisant les arrêts et les temps d’arrêt, il est toutefois possible de trouver le trajet approprié comme suit:

Le trip_short_name est indiqué dans le fichier trips.txt, 25358 dans l’exemple suivant:

route_id,service_id,trip_id,trip_headsign,trip_short_name,direction_id,block_id,original_trip_id,hints
"91-30-B-j25-1","TA+7ma70","79.TA.91-30-B-j25-1.32.R","Cadenazzo","25358","1","","ch:1:sjyid:100001:25358-001",""

Celui-ci correspond au numéro de circulation (numéro de train externe) à la ligne *Z du fichier FPLAN:

*Z 025358 000011   103                                     % -- 39759342469 --
*G S   8301030 8505404                                     %
*A VE 8301030 8505404 755971                               %
*A X  8505410 8505410 755971                               %
*A X  8505405 8505405 755971                               %
*I JY                        000011968                     %
*I hi 8301030 8505404        000011847                     %
*L 30       8301030 8505404                                %
*R H                                                       %
8301030 Gallarate                    00819                 %
8301145 Besnate               00824  00825                 %
8301144 Mornago-Cimbro        00829  00830                 %
8301143 Ternate-Varano Borgh  00835  00836                 %
8301142 Travedona-Biandronno  00839  00840                 %
8301141 Besozzo               00844  00845                 %
8301140 Sangiano              00850  00851                 %
8301118 Laveno-Mombello       00856  00901                 %
8301113 Luino (I)             00915  00918                 %
8505874 Colmegna              00922  00922                 %
8505861 Maccagno              00925  00925                 %
8505862 Pino-Tronzano         00930  00930                 %
8505408 Ranzo-S. Abbondio     00934  00934                 %
8505410 Gerra (Gambarogno)    00935  00935                 %
8505407 S. Nazzaro            00940  00940                 %
8505406 Magadino-Vira         00946  00946                 %
8505405 Quartino              00949  00949                 %
8505404 Cadenazzo             00956                        %

Comme le numéro de course ne doit pas être unique au sein d’un flux HRDF, comme mentionné précédemment, les temps d’arrêt et les stop_ids de la course issus de stop_times.txt doivent être pris en compte dans l’attribution. Dans l’exemple de HRDF (en haut) et GTFS (en bas), les lignes de départ et de destination sont sélectionnées à titre d’exemple. Comme pour le «matching» de deux courses, les heures sont identiques:

trip_id,arrival_time,departure_time,stop_id,stop_sequence,pickup_type,drop_off_type
"79.TA.91-30-B-j25-1.32.R","08:19:00","08:19:00","8301030","1","0","0"
"79.TA.91-30-B-j25-1.32.R","08:24:00","08:25:00","8301145","2","0","0"
"79.TA.91-30-B-j25-1.32.R","08:29:00","08:30:00","8301144","3","0","0"
"79.TA.91-30-B-j25-1.32.R","08:35:00","08:36:00","8301143","4","0","0"
"79.TA.91-30-B-j25-1.32.R","08:39:00","08:40:00","8301142","5","0","0"
"79.TA.91-30-B-j25-1.32.R","08:44:00","08:45:00","8301141","6","0","0"
"79.TA.91-30-B-j25-1.32.R","08:50:00","08:51:00","8301140","7","0","0"
"79.TA.91-30-B-j25-1.32.R","08:56:00","09:01:00","8301118","8","0","0"
"79.TA.91-30-B-j25-1.32.R","09:15:00","09:18:00","8301113","9","0","0"
"79.TA.91-30-B-j25-1.32.R","09:22:00","09:22:00","8505874","10","0","0"
"79.TA.91-30-B-j25-1.32.R","09:25:00","09:25:00","8505861:0:2","11","0","0"
"79.TA.91-30-B-j25-1.32.R","09:30:00","09:30:00","8505862:0:1","12","0","0"
"79.TA.91-30-B-j25-1.32.R","09:34:00","09:34:00","8505408:0:1","13","0","0"
"79.TA.91-30-B-j25-1.32.R","09:35:00","09:35:00","8505410:0:1","14","0","0"
"79.TA.91-30-B-j25-1.32.R","09:40:00","09:40:00","8505407:0:1","15","0","0"
"79.TA.91-30-B-j25-1.32.R","09:46:00","09:46:00","8505406:0:2","16","0","0"
"79.TA.91-30-B-j25-1.32.R","09:49:00","09:49:00","8505405:0:1","17","0","0"
"79.TA.91-30-B-j25-1.32.R","09:56:00","09:56:00","8505404:0:1","18","0","0"

Liens utiles

#AutoTranslate