General Transit Feed Specification (GTFS) è un formato di scambio digitale sviluppato da Google per gli orari dei trasporti pubblici e le informazioni geografiche associate, come la posizione delle fermate. I dati sono forniti dalle aziende di trasporto e pubblicati come database collocato sulla piattaforma open data del trasporto pubblico svizzero in formato GTFS. I dati vengono utilizzati per sviluppare applicazioni legate al trasporto pubblico, come la richiesta di orari.
A differenza di GTFS Realtime (GTFS RT), GTFS Static, come suggerisce il nome, fornisce solo dati statici e non dati in tempo reale.
Con questo file statico, l’intero sistema di trasporto pubblico di un Paese viene visualizzato per la prima volta in un unico feed.
Descrizione tecnica
GTFS Static viene fornito come una serie di file di testo in formato ZIP. Ogni file fornisce informazioni su un aspetto specifico delle informazioni di transito, come le fermate (stops.txt), i percorsi (routes.txt), i viaggi (trips.txt), le aziende di trasporto (agency.txt) e altri dati rilevanti per l’orario. Alcuni dettagli sono necessari per fornire dati GTFS validi, altri sono facoltativi e forniscono informazioni aggiuntive utili (come le modifiche all’orario in determinati giorni festivi = calendar_dates.txt).
Il diagramma seguente mostra l’interazione delle varie informazioni, anche se attualmente non tutte sono registrate per il trasporto pubblico svizzero e disponibili in formato GTFS:
Vai al record di dati: https://opentransportdata.swiss/it/group/timetables-gtfs
Concetti importanti
- GTFS Static: pubblicazione di informazioni statiche sul transito in formato GTFS.
- GTFS Realtime: pubblicazione di informazioni sul transito in tempo reale come arricchimento dei dati statici GTFS, sotto forma di buffer di protocollo
Aspetti tecnici
Struttura dei dati
Ogni file è composto da righe di testo e numeri separati da virgole con campi che, combinati, forniscono le informazioni ricercate. Una descrizione dettagliata dei singoli campi dei vari file è riportata nel sito web https://developers.google.com/transit/gtfs/reference/.
Per l’esportazione GTFS dei trasporti pubblici svizzeri sono attualmente disponibili i seguenti file:
- agency.txt
- calendar.txt
- calendar_dates.txt
- feed_info.txt
- routes.txt
- stop_times.txt
- stops.txt
- transfers.txt
- trips.txt
Non sono resi disponibili i seguenti elementi: fare_attributes.txt, fare_rules.txt und frequencies.txt
agency.txt
1 2 3 4 5 6 7 8 |
agency_id,agency_name,agency_url,agency_timezone,agency_lang,agency_phone "11","Schweizerische Bundesbahnen SBB","http://www.sbb.ch/","Europe/Berlin","DE","0900 300 300 " "801","PostAuto Schweiz","http://www.sbb.ch/","Europe/Berlin","DE","0900 300 300 " "840","Busbetrieb Aarau","http://www.sbb.ch/","Europe/Berlin","DE","0900 300 300 " "31","BDWM Transport (bd)","http://www.sbb.ch/","Europe/Berlin","DE","0900 300 300 " "899","BDWM Transport (wm Auto)","http://www.sbb.ch/","Europe/Berlin","DE","0900 300 300 " "886","Regionale Verkehrsbetriebe Baden-Wettingen","http://www.sbb.ch/","Europe/Berlin","DE","0900 300 300 " "839","Zugerland Verkehrsbetriebe","http://www.sbb.ch/","Europe/Berlin","DE","0900 300 300 |
calendar.txt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
service_id,monday,tuesday,wednesday,thursday,friday,saturday,sunday,start_date,end_date "TA+b000b","1","1","1","1","1","0","0","20161211","20171209" "TA+b0001","1","1","1","1","1","1","1","20161211","20171209" "TA+b0016","0","0","0","0","1","1","0","20161211","20171209" "TA+b0dmg","0","0","0","0","0","0","1","20161211","20171209" "TA+b12cr","1","1","1","1","0","0","0","20161211","20171209" "TA+b0008","1","1","1","1","1","0","0","20161211","20171209" "TA+b0027","1","1","1","1","1","1","0","20161211","20171209" "TA+b0dnc","0","0","0","0","0","1","1","20161211","20171209" "TA+b001r","1","1","1","1","1","0","1","20161211","20171209" "TA+b001j","0","0","0","0","0","1","0","20161211","20171209" "TA+b001t","0","0","0","0","0","0","1","20161211","20171209" "TA+b04oi","1","1","1","1","1","0","0","20161211","20171209" "TA+b0ch2","0","0","0","1","0","0","0","20161211","20171209 |
calendar_dates.txt
1 2 3 4 5 6 7 8 9 10 11 12 |
service_id,date,exception_type "TA+b0003","20161226","2" "TA+b0003","20170102","2" "TA+b0003","20170414","2" "TA+b0003","20170417","2" "TA+b0003","20170501","2" "TA+b0003","20170525","2" "TA+b0003","20170605","2" "TA+b0003","20170801","2" "TA+b0007","20161226","2" "TA+b0007","20170102","2" "TA+b0007","20170414","2 |
feed_info.txt
1 2 |
feed_publisher_name,feed_publisher_url,feed_lang,feed_start_date,feed_end_date,feed_version "SBB","http://www.sbb.ch/","DE","20161211","20171209","20170518 |
routes.txt
1 2 3 4 5 6 7 8 9 |
route_id,agency_id,route_short_name,route_long_name,route_desc,route_type "91-10-A-j22-1","37","10","","T","900" "91-10-B-j22-1","78","S10","","S","109" "91-10-C-j22-1","11","S10","","S","109" "91-10-E-j22-1","65","S10","","S","109" "91-10-F-j22-1","11","RE10","","RE","106" "91-10-G-j22-1","11","SN10","","SN","109" "91-10-j22-1","3849","10","","T","900" "91-10-Y-j22-1","82","IR","","IR","103" |
Attenzione:
- Alcuni percorsi in GTFS hanno un’estensione “-Y”. Il motivo è che hanno un numero di linea creato artificialmente. Questo è l’unico modo in cui “route_short_name” può essere valido. Queste linee artificiali non dovrebbero essere mostrate agli utenti in questo modo. Per i treni, “trip_short_name” conterrà il numero del treno.
I testi dei mezzi di trasporto utilizzati (la variabile route_desc contiene informazioni nella colonna “Abbreviation”):
Abbreviation | DE | FR | IT | EN | Ref_TransportMode | route_type |
ASC | Aufzug | Ascenseur | Ascensore | Lift | A | 1700 |
B | Bus | Bus | Bus | Bus | B | 700 |
BN | Nachtbus | Bus ligne de nuit | Bus notturno | Nightbus | B | 705 |
BP | PanoramaBus | PanoramaBus | Bus panoramico | Panorama bus | B | 710 |
BUS | Bus | Bus | Bus | Bus | B | 700 |
CAR | Fernbus national | Bus longues distances national | Bus nazionale a lunga percorrenza | National long-distance bus | B | 202 |
CAX | Fernbus international | Bus longues distances international | Bus internazionale a lunga percorrenza | International long-distance bus | B | 201 |
EB | Eilbus | Bus acc‚l‚r‚ | Bus accelerato | Semi fast bus | B | 702 |
EXB | Expressbus | Bus express | Bus espresso | Express bus | B | 702 |
ICB | InterCity-Bus | InterCity-Bus | InterCity-Bus | Intercity-Bus | B | 202 |
KB | Kleinbus | Minibus | Minibus | Minibus | B | 700 |
NB | Nacht-Bus | Bus nocturne | Bus notturno | Night-Bus | B | 705 |
NFB | Niederflur-Bus | Bus … plancher surbaiss‚ | Bus a pianale ribassato | Low-floor bus | B | 700 |
NFO | Niederflur-Trolleybus | Trolleybus … plancher surbaiss‚ | Filobus a pianale ribassato | Low-floor trolley bus | B | 700 |
RUB | Rufbus | Bus sur appel | bus a chiamata | On-call bus | B | 715 |
TX | Taxi | Taxi | Taxi | Taxi | B | 1500 |
SL | Sesselbahn | T‚l‚siŠge | Seggiovia | Chairlift | E | 1300 |
CC | Zahnradbahn | Chemin de fer à crémaillère | Cremagliera | Rack-railroad | H | 1400 |
GB | Gondelbahn | T‚l‚cabine | Cabinovia | Gondola lift | L | 1300 |
LB | Luftseilbahn | T‚l‚ph‚rique | Funivia | Cableway | L | 1300 |
PB | Pendelbahn | T‚l‚ph‚rique … va-et-vient | funivia a va e vieni | aerial tramway | L | 1300 |
M | Metro | M‚tro | Metropolitana | Underground | M | 401 |
FUN | Standseilbahn | Funiculaire | Funicolare | Funicular | N | 1400 |
BAT | Schiff | Bateau | Battello | Ship | S | 1000 |
BAV | Dampfschiff | Bateau … vapeur | Battello a vapore | Steam ship | S | 1000 |
FAE | F„hre | Bac | Traghetto | Ferry-boat | S | 1000 |
KAT | Katamaran | Catamaran | Catamarano | Katamaran | S | 1000 |
NFT | Niederflur-Tram | Tram … plancher surbaiss‚ | Tram a pianale ribassato | Low-floor tramway | T | 900 |
T | Tram | Tram | Tram | Tramway | T | 900 |
TN | Nachttram | Tram ligne de nuit | Tram notturno | Nighttram | T | 900 |
AIR | Flugzeug | avion | aeroplano | aircraft | U | 1100 |
UUU | Unbekannte Art | Type inconnu | Tipologia sconosciuta | Unknown mode | U | 1700 |
AG | Agenturzug | Train d’agence | Treno d’ agenzia | Agencytrain | Z | 117 |
ARC | Arco | Arco | Arco | Arco | Z | 102 |
ARZ | Autoreisezug | Train autos-couch | Treno navetta | Car-carrying train | Z | 104 |
AT | Autotunnelzug | Train-auto | Treno auto in galleria | Car train | Z | 104 |
ATR | Altaria | Altaria | Altaria | Altaria | Z | 102 |
ATZ | Autotunnelzug | Train-auto | Treno auto in galleria | Car train | Z | 104 |
AVE | Alta Velocidad ES | Alta Velocidad ES | Alta Velocidad ES | Alta Velocidad ES | Z | 101 |
BEX | Bernina Express | Bernina Express | Bernina Express | Bernina Express | Z | 107 |
CAT | City Airport Train | City Airport Train | City Airport Train | City Airport Train | Z | 111 |
CNL | CityNightLine | CityNightLine | CityNightLine | CityNightLine | Z | 105 |
D | Schnellzug | Train direct | Treno diretto | Fast train | Z | 103 |
E | Eilzug | Train acc‚l‚r‚ | Treno accelerato | Semi fast train | Z | 103 |
EC | EuroCity | EuroCity | EuroCity | EuroCity | Z | 102 |
EM | Euromed | Euromed | Euromed | Euromed | Z | 102 |
EN | EuroNight | EuroNight | EuroNight | EuroNight | Z | 105 |
ES | Eurostar Italia | Eurostar Italia | Eurostar Italia | Eurostar Italia | Z | 101 |
EST | Eurostar | Eurostar | Eurostar | Eurostar | Z | 101 |
EXT | Extrazug | Train sp‚cial | Treno speciale | Special train | Z | 117 |
GEX | Glacier Express | Glacier Express | Glacier Express | Glacier Express | Z | 107 |
IC | InterCity | InterCity | InterCity | InterCity | Z | 102 |
ICE | InterCityExpress | InterCityExpress | InterCityExpress | InterCityExpress | Z | 102 |
ICN | IC-Neigezug | IC-pendulaire | IC-pendolare | IC-tilting train | Z | 102 |
IN | InterCityNacht | InterCityNuit | InterCityNotte | InterCityNight | Z | 102 |
IR | InterRegio | InterRegio | InterRegio | InterRegio | Z | 103 |
IRE | Interregio-Express | Interregio-Express | Interregio-Express | Interregio-Express | Z | 103 |
IT | Italo | Italo | Italo | Italo | Z | 102 |
JAT | Gef„ngniszug | Train prison | Jail Train | Jail Train | Z | 111 |
MAT | LeermaterialZ (Reisezugswagen) | Train de mat‚riel vide (voitures voyageurs) | Materiale vuoto (treno viaggiatori) | Empty material train (passenger carriage) | Z | 111 |
MP | LeermaterialZ Personenbef”rd | Train de mat‚riel vide avec transport de voyageurs | Materiale vuoto con trasporto di persone | Empty material train with passenger transport | Z | 111 |
NJ | nightjet | nightjet | nightjet | nightjet | Z | 105 |
NZ | Nacht-Zug | Train de nuit | Treno notturno | Night train | Z | 105 |
P | Zug ohne Gew„hr | Train non garanti | Treno non garantito | No guaranteed train | Z | 100 |
PE | PanoramaExpress | PanoramaExpress | PanoramaExpress | PanoramaExpress | Z | 107 |
R | Regio | Regio | Regio | Regio | Z | 106 |
RB | Regionalbahn | Train r‚gional | Ferrovia regionale | Regional train | Z | 106 |
RE | RegioExpress | RegioExpress | RegioExpress | RegioExpress | Z | 106 |
RJ | Railjet | Railjet | Railjet | Railjet | Z | 102 |
RJX | railjet xpress | railjet xpress | railjet xpress | railjet xpress | Z | 102 |
S | S-Bahn | RER | Rete celere | Urban train | Z | 109 |
SN | Nacht-S-Bahn | RER-nuit | Rete celere notte | Night-urban train | Z | 109 |
STB | Stadtbahn | Train urbain | Ferrovia urbana | City railway | Z | 109 |
TAL | Talgo | Talgo | Talgo | Talgo | Z | 101 |
TER | Train Express Regional | Train Express Regional | Train Express Regional | Train Express Regional | Z | 106 |
TE2 | TER200 | TER200 | TER200 | TER200 | Z | 106 |
TGV | Train … grande vit. | Train … grande vit. | Train … grande vit. | Train … grande vit. | Z | 101 |
THA | Thalys | Thalys | Thalys | Thalys | Z | 101 |
TLK | Twoje Linie Kolejowe | Twoje Linie Kolejowe | Twoje Linie Kolejowe | Twoje Linie Kolejowe | Z | 102 |
UEX | UrlaubsExpress | UrlaubsExpress | UrlaubsExpress | UrlaubsExpress | Z | 104 |
VAE | Voralpen-Express | Voralpen-Express | Voralpen-Express | Voralpen-Express | Z | 103 |
WB | Westbahn | Westbahn | Westbahn | Westbahn | Z | 100 |
X | InterConnex | InterConnex | InterConnex | InterConnex | Z | 100 |
X2 | X2000 Neigezug | X2000 pendulaire | X2000 pendolare | X2000 tilting train | Z | 100 |
ZUG | Zugskategorie unbekannt | Cat‚gorie du train inconnue | Categoria di treno sconosciuta | Train category unknown | Z | 100 |
stop_times.txt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
trip_id,arrival_time,departure_time,stop_id,stop_sequence,pickup_type,drop_off_type "1.TA.1-9-j17-1.1.H","05:25:00","05:25:00","8502034:0:2","1","0","0" "1.TA.1-9-j17-1.1.H","05:28:00","05:29:00","8502033:0:2","2","0","0" "1.TA.1-9-j17-1.1.H","05:33:00","05:33:00","8502032:0:1","3","0","0" "1.TA.1-9-j17-1.1.H","05:36:00","05:36:00","8502031:0:1","4","0","0" "1.TA.1-9-j17-1.1.H","05:42:00","05:42:00","8502030:0:2","5","0","0" "1.TA.1-9-j17-1.1.H","05:50:00","05:50:00","8502119:0:7","6","0","0" "2.TA.1-9-j17-1.2.H","05:53:00","05:53:00","8502034:0:1","1","0","0" "2.TA.1-9-j17-1.2.H","05:57:00","05:58:00","8502033:0:2","2","0","0" "2.TA.1-9-j17-1.2.H","06:02:00","06:02:00","8502032:0:1","3","0","0" "2.TA.1-9-j17-1.2.H","06:04:00","06:04:00","8502031:0:1","4","0","0" "2.TA.1-9-j17-1.2.H","06:09:00","06:11:00","8502030:0:2","5","0","0" "2.TA.1-9-j17-1.2.H","06:20:00","06:20:00","8502119:0:7","6","0","0" "3.TA.1-9-j17-1.3.H","24:38:00","24:38:00","8502119:0:7","1","0","0" "3.TA.1-9-j17-1.3.H","24:46:00","24:46:00","8502030:0:1","2","0","0" "3.TA.1-9-j17-1.3.H","24:49:00","24:49:00","8502031:0:1","3","0","0" "3.TA.1-9-j17-1.3.H","24:52:00","24:52:00","8502032:0:1","4","0","0" "3.TA.1-9-j17-1.3.H","24:57:00","24:57:00","8502033:0:1","5","0","0" "3.TA.1-9-j17-1.3.H","25:01:00","25:01:00","8502034:0:1","6","0","0 |
stops.txt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
stop_id,stop_name,stop_lat,stop_lon,location_type,parent_station "1101064","Malpensa Aeroporto, terminal 1","45.6272144319203","8.7111160249179","","" "8000339","Weissenhorn Eschach","48.3010036099201","10.135089480891","","" "8000709:0:2","Neckarsulm Mitte","49.1934688770383","9.22294014126908","","" "8000778","Asselheim (D)","49.5762169849528","8.16159859923981","","" "8000781","Grünstadt-Nord","49.5733510011593","8.17078836459763","","" "8000988","Witzighausen","48.3174402469306","10.097800413442","","" "8002015","Nördlingen","48.85084676195","10.4978651252803","","8002015P" "8002015:0:4","Nördlingen","48.85090587299","10.4978651252803","","8002015P" "8002015P","Nördlingen","48.85084676195","10.4978651252803","1","" "8002023","Ebermergen","48.7562093140126","10.7109634770088","","" "8002023:0:1","Ebermergen","48.7562685367003","10.7109634770088","","" "8002038","Möttingen","48.8068073922247","10.5978386332639","","8002038P" "8002038:0:1","Möttingen","48.8069257181851","10.5978386332639","","8002038P" "8002038:0:2","Möttingen","48.8068665552398","10.5978386332639","","8002038P" "8002038P","Möttingen","48.8068073922247","10.5978386332639","1","" "8002039","Hoppingen","48.8038195691943","10.6532018042319",""," |
Le colonne montanti devono essere modellate come singole fermate in GTFS. Un cambio di salita è quindi un cambio di fermata dal punto di vista del GTFS.
L’esempio “8500010” (Basel SBB):
Tutte le fermate di Basilea hanno un “genitore” comune “8500010P”. Le singole tracce sono separate da “:”. Una “traccia” può anche essere una traccia+settori (ad esempio “8500010:0:7CD”). Ci sono anche aggiunte molto strane, come “Bern Bfpl”, cioè “8507000:0:Bfpl”, quando la RBS lo usa per gli autobus sostitutivi della ferrovia.
trips.txt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
route_id,service_id,trip_id,trip_headsign,trip_short_name,direction_id "1-9-j17-1","TA+b0001","2.TA.1-9-j17-1.2.H","Lenzburg","21916","0" "1-90-j17-1","TA+b0001","4.TA.1-90-j17-1.2.R","Wallbach, Gemeindehaus","90074","1" "1-90-j17-1","TA+b0001","10.TA.1-90-j17-1.2.R","Wallbach, Gemeindehaus","90022","1" "1-90-j17-1","TA+b0001","43.TA.1-90-j17-1.13.R","Schupfart, Dorf","90071","1" "1-90-j17-1","TA+b0001","44.TA.1-90-j17-1.13.R","Schupfart, Dorf","90013","1" "1-90-j17-1","TA+b0001","50.TA.1-90-j17-1.13.R","Schupfart, Dorf","90067","1 "8002015P","Nördlingen","48.85084676195","10.4978651252803","1","" "8002023","Ebermergen","48.7562093140126","10.7109634770088","","" "8002023:0:1","Ebermergen","48.7562685367003","10.7109634770088","","" "8002038","Möttingen","48.8068073922247","10.5978386332639","","8002038P" "8002038:0:1","Möttingen","48.8069257181851","10.5978386332639","","8002038P" "8002038:0:2","Möttingen","48.8068665552398","10.5978386332639","","8002038P" "8002038P","Möttingen","48.8068073922247","10.5978386332639","1","" "8002039","Hoppingen","48.8038195691943","10.6532018042319",""," "1-350-j16-1","TA","49.TA.1-350-j16-1.2.R","1-350-j16-1.2.R","Zürich, Triemli","1" |
Attenzione:
- Per i treni, “trip_short_name” contiene il numero del treno.
- Un “trip/viaggio” secondo GTFS rappresenta il concetto di “DatedVehicleJourney” in Transmodel (un “DatedJourney” in OJP). In Transmodel e OJP, un TRIP è un viaggio del cliente restituito dal Trip Planner. Si tratta di vari viaggi parziali, trasferimenti e altri itinerari che devono essere percorsi con modalità diverse. In HRDF, il “trip/viaggio” GTFS corrisponde al percorso e in NeTEx al ServiceJourney.
transfers.txt
Il file transfers.txt mostra le stazioni della metropolitana e gli orari di trasferimento. Una stazione della metropolitana, ad esempio, è costituita dalla stazione ferroviaria e dalle fermate degli autobus o dei tram circostanti. In questo file è possibile specificare il tipo di trasferimento e gli orari delle fermate corrispondenti.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
from_stop_id,to_stop_id,transfer_type,min_transfer_time "8500125:0:2","8581833","2","120" "8500125:0:1","8504114","2","120" "8500125:0:1","8581833","2","120" "8500123:0:13","8576779","2","60" "8500122:0:2","8572021","2","60" "8500122:0:2","8582973","2","300" "8500122:0:1","8572021","2","60" "8500122:0:1","8582973","2","300" "8500121:0:2","8581130","2","60" "8500121:0:2","8582149","2","120" "8500120:0:1","8582081","2","180" "8500120:0:1","8579767","2","60" "8500120:0:1","8582562","2","120" |
Stabilità degli identificatori tra le versioni del file statico
La statica GTFS viene rigenerata ogni settimana. È quindi possibile che il “service_id” e il “trip_id” non siano identici.
Quando ci saranno nuovi file statici GTFS?
Il nuovo HRDF sarà pubblicato lunedì.
Il caricamento di GTFS avviene il mercoledì alle 09:10 tramite script. Il feed GTFSR carica i file alle 14:00 tramite script. Ci vogliono quindi circa 5-10 minuti prima che i file nel sistema e quindi l’alimentazione GTFS-RT vengano modificati.
Dettagli tecnici per una migliore comprensione
I dati HRDF vengono importati in DIVA il lunedì. Segue (sempre il lunedì) il trasferimento dei dati sull’orario per l’EFA.
L’esportazione di GTFS viene effettuata il martedì.
Il mercoledì, il nuovo set di dati GTFS ZIP viene caricato sul server FTP delle FFS intorno alle 9.10. I nuovi dati dell’orario di calendario insieme ai nuovi dati GTFS vengono caricati sui rispettivi server intorno alle 14.00 del mercoledì.
Consistenza interna di un file statico GTFS
Ci impegniamo a produrre sempre file statici GTFS corretti. Google suggerisce di verificare la coerenza interna con il FeedValidator. Purtroppo, la versione attuale non è in grado di gestire le dimensioni del nostro file. Un altro strumento possibile è gtfstidy, che tra l’altro può eseguire una convalida con il parametro “-v”.
Domande & risposte
Cosa significano le prime e le ultime due sezioni del trip_id? E.g. {405}.TA.26-752-j17-1.{3}.{R} | Il trip_id è composto dalle seguenti parti: “<numero consecutivo in trips.txt>.<service_id>.<route_id>.<numero di rotta DIVA>.<direzione di marcia DIVA>”.
route_id = <ramo operativo DIVA>-<numero di linea DIVA>-<abbreviazione del progetto DIVA>-<numero di versione della linea DIVA>. |
Da cosa è composto il Trip ID? | L’ID del viaggio è composto da diversi numeri/campi DIVA e non ha nulla a che fare con i dati HRDF.
L’assegnazione non è proprio 1:1, poiché l’ID del viaggio (= numero del viaggio) non deve essere unico all’interno di un set di dati HRDF, ma con l’aiuto delle fermate e dei tempi di sosta, come ha fatto l’utente dei dati, il viaggio corrispondente può essere trovato come segue: Il file trips.txt contiene il nome del viaggio: route_id,service_id,trip_id,trip_headsign,trip_short_name,direction_id “26-94-j18-1″,”TA+b20xg”,”310.TA.26-94-j18-1.3.R”,”Zürich Oerlikon, Bahnhof”,”13628“,”1”
Questo corrisponde al numero di viaggio (numero di treno esterno) nella riga *Z del file FPLAN: Poiché il numero di viaggio non deve essere univoco all’interno di un feed HRDF, per l’assegnazione si devono utilizzare anche i tempi di sosta e gli ID fermata del viaggio dal file stop_times.txt:
trip_id,arrival_time,departure_time,stop_id,stop_sequence,pickup_type,drop_off_type “310.TA.26-94-j18-1.3.R”,”13:37:00″,”13:37:00″,”8587651″,”1″,”0″,”0″ “310.TA.26-94-j18-1.3.R”,”13:38:00″,”13:38:00″,”8587652″,”2″,”0″,”0″ “310.TA.26-94-j18-1.3.R”,”13:39:00″,”13:39:00″,”8591263″,”3″,”0″,”0″ “310.TA.26-94-j18-1.3.R”,”13:41:00″,”13:41:00″,”8591347″,”4″,”0″,”0″ “310.TA.26-94-j18-1.3.R”,”13:42:00″,”13:42:00″,”8591047″,”5″,”0″,”0″ “310.TA.26-94-j18-1.3.R”,”13:43:00″,”13:43:00″,”8591113″,”6″,”0″,”0″ “310.TA.26-94-j18-1.3.R”,”13:44:00″,”13:44:00″,”8591330″,”7″,”0″,”0″ “310.TA.26-94-j18-1.3.R”,”13:45:00″,”13:45:00″,”8591319″,”8″,”0″,”0″ “310.TA.26-94-j18-1.3.R”,”13:46:00″,”13:46:00″,”8591175″,”9″,”0″,”0″ “310.TA.26-94-j18-1.3.R”,”13:46:00″,”13:46:00″,”8591273″,”10″,”0″,”0″ “310.TA.26-94-j18-1.3.R”,”13:48:00″,”13:48:00″,”8591382″,”11″,”0″,”0″ “310.TA.26-94-j18-1.3.R”,”13:49:00″,“13:49:00″,”8580449”,”12″,”0″,”0″ Il feed HRDF di due giorni dopo (ad es. 05/02/2018) corrisponde sempre al feed GTFS (ad es. 07/02/2018): |
Ulteriori indicazioni
- Ulteriori informazioni su GTFS Static sono disponibili sulla pagina degli sviluppatori GTFS di Google: https://developers.google.com/transit/gtfs/.
- Meetup online il 13 novembre 2023: come i feed di dati GTFS contribuiscono al miglioramento sostenibile del trasporto pubblico