Introduzione e descrizione tecnica
GTFS-Realtime è uno standard sviluppato da Google che consente alle aziende di trasporto di fornire informazioni in tempo reale su vari servizi.
Il servizio è un’estensione di GTFS Static e arricchisce le informazioni statiche sul transito con informazioni in tempo reale. I dati in tempo reale del GTFS sono armonizzati con i dati statici del GTFS. Il feed in tempo reale comprende tutti i cambiamenti noti nel trasporto pubblico in Svizzera nell’intera finestra di anteprima (tre ore) per tutte le aziende di trasporto che forniscono dati in tempo reale.
GTFS RT consente di arricchire le informazioni statiche sul transito con tre diversi tipi di informazioni aggiuntive. Questi tre arricchimenti vengono solitamente forniti singolarmente via HTTP e aggiornati regolarmente, in modo che gli sviluppatori possano scegliere con quali dati in tempo reale arricchire le loro applicazioni.
- Posizioni del veicolo (attualmente non previste)
- Aggiornamenti sul viaggio (forniti dalle FFS)
- Avvisi di servizio (forniti dalle FFS)
Posizioni del veicolo (Vehicle positions)
Contengono dati su eventi che si sono già verificati (ad esempio, “Il veicolo si trovava in questa posizione un minuto fa”),
Esempio: “Questo autobus è alla fermata Bern Bahnhof alle 18h23”.
Le informazioni sulla posizione dei singoli veicoli in transito possono essere pubblicate qui. Inoltre, è possibile fornire anche l’attuale utilizzo del veicolo, il tipo di veicolo o altre informazioni simili.
Le posizioni dei veicoli non sono disponibili sulla piattaforma.
Un elenco dettagliato delle singole unità informative possibili è disponibile all’indirizzo https://developers.google.com/transit/gtfs-realtime/reference/
Aggiornamenti sul viaggio (Trip updates)
Esempio: “L’autobus 18 è in ritardo di 10 minuti”.
I ritardi, le variazioni di percorso, i veicoli sostitutivi o le cancellazioni per le singole linee vengono pubblicati qui di continuo per consentire ai passeggeri di pianificare con la massima precisione possibile.
Avvisi di servizio (Service alerts)
Le informazioni sugli eventi (avvisi di servizio) forniscono informazioni su eventi prevedibili o imprevedibili che interessano una stazione, un percorso o l’intera rete (ad esempio, “La linea 3 è chiusa fino alle 15:00 a causa di un incidente stradale”).
Esempio: “La stazione di Berna Weissenbühl è attualmente chiusa a causa di un incidente”.
In caso di spostamento di una fermata o di eventi generalmente imprevisti che interessano una fermata, un percorso o l’intera rete, è possibile pubblicare brevi messaggi per tenere informati i passeggeri e spiegare il motivo della modifica.
Attuazione svizzera
Due dei tre servizi sono attualmente implementati in Svizzera. In particolare, “Aggiornamento del viaggio”/”Trip Update” e “Avvisi di servizio”/”Service Alerts”.
- La OpenDataPlatform supporta attualmente solo il GTFS-RT “Trip Update” – Versione 1.0. Si noti che gli elementi 2.0 sono attualmente ignorati.
- La piattaforma OpenDataPlatform supporta attualmente gli “Avvisi di servizio” GTFS-RT – versione 2.0. Si prega di notare le differenze tra le versioni del servizio
- Con la chiave, è possibile eseguire un massimo di due interrogazioni al minuto sull’interfaccia.
- Il feed in tempo reale comprende tutti i cambiamenti noti nel trasporto pubblico in Svizzera nell’intera finestra di anteprima (tre ore) per tutte le aziende di trasporto che forniscono dati in tempo reale.
- Esiste una regola di aggiornamento dei ritardi per GTFS-RT. Ad esempio, se un intero viaggio ha un ritardo di 5 minuti, questo viene visualizzato solo alla prima fermata. Il ritardo di importazione deve essere aggiornato per tutte le ulteriori fermate.
- L’aggiornamento deve essere effettuato per gli orari di arrivo e di partenza. GTFS-RT fornisce nuovi dati solo se qualcosa è cambiato. Il nostro sistema tiene conto solo delle previsioni di partenza. Se la previsione di partenza rimane invariata e cambia solo la previsione di arrivo, non viene generato alcun messaggio GTFS-RT per questo viaggio.
Accesso al servizio
Le FFS forniscono gli aggiornamenti del viaggio tramite una richiesta GET.
È possibile eseguire un massimo di due interrogazioni al minuto sull’interfaccia con la chiave. Si tratta di una finestra scorrevole (Sliding Window).
API | Link |
GTFS-RT
Service Alerts |
https://api.opentransportdata.swiss/gtfs-sa |
Per accedere all’API è necessario un token. Per generare e ricevere un token, è necessario registrarsi sulla piattaforma Open Data Mobility Switzerland.
Dopo l’avvenuta registrazione, è necessario selezionare la scheda “Chiavi API”. È possibile ottenere la chiave corrispondente per la piattaforma nella “Developer Dashboard” alla voce “My Keys”.
La chiave viene inviata all’indirizzo e-mail fornito durante la registrazione.
Struttura dei dati (Protocol Buffer)
Il formato di scambio dei dati di GTFS ServiceAlert si basa sui buffer di protocollo, che sono un meccanismo di serializzazione dei dati neutro dal punto di vista del linguaggio e della piattaforma. È stato progettato come formato binario, il che lo rende più piccolo, più veloce e più semplice di XML. La struttura dei dati è definita in un cosiddetto file gtfs-realtime.proto, che viene utilizzato per generare codice sorgente per tradurre facilmente i dati strutturati in diversi linguaggi (Java, C++, Python, ecc.).
Struttura dei dati (JSON)
In alternativa, la piattaforma fornisce anche un’implementazione JSON.
L’interrogazione viene effettuata tramite l’URL: HTTP GET https://api.opentransportdata.swiss/gtfsservicealerts/?format=json
Si noti che la variante JSON non è standardizzata.
Utilizzo di JSON solo a scopo di test
JSON può essere utilizzato solo a scopo di test, ad esempio se uno sviluppatore di una nuova applicazione vuole vedere in forma leggibile quali dati sono contenuti nel nostro GTFS-RT.
In definitiva, l’interfaccia GTFS-SA non dovrebbe essere gestita in JSON leggibile, ma binario (senza ?FORMAT=JSON) per i seguenti motivi:
- Il formato binario è molto più performante di JSON e i dati da trasferire e leggere in JSON sono molto più numerosi (un messaggio JSON ha una dimensione massima di circa 11 MB),
- JSON non è specificato, con GTFS-RT binario il client GTFS può contare sulla conformità allo standard GTFS-RT.
Descrizione del servizio
Caratteristiche speciali rispetto a SIRI-SX
GTFS ServiceAlerts | SIRI-SX |
L’agenzia viene fornita anche per ogni fermata / punto di sosta.
"informedEntity" : [ { "agencyId" : "820" , "stopId" : "ch:1:sloid:89712" }, { "agencyId" : "801" , "stopId" : "ch:1:sloid:89712" } ], |
< StopPlaces > < AffectedStopPlace > < StopPlaceRef >ch:1:sloid:89712</ StopPlaceRef > < PlaceName >Kriens, Grosshofstrasse</ PlaceName > </ AffectedStopPlace > </ StopPlaces > |
Per ogni riga viene fornita anche la direzione della linea
"informedEntity" : [ { "agencyId" : "801" , "routeId" : "96-186-7-j23-1" , "directionId" : 0 }, { "agencyId" : "801" , "routeId" : "96-186-7-j23-1" , "directionId" : 1 }, { "agencyId" : "801" , "routeId" : "96-186-2-j23-1" , "directionId" : 0 }, { "agencyId" : "801" , "routeId" : "96-186-2-j23-1" , "directionId" : 1 } ], |
< AffectedNetwork > < AffectedLine > < AffectedOperator > < OperatorRef >ch:1:sboid:100602</ OperatorRef > </ AffectedOperator > < LineRef >85:801:1867</ LineRef > < PublishedLineName >677</ PublishedLineName > </ AffectedLine > < AffectedLine > < AffectedOperator > < OperatorRef >ch:1:sboid:100602</ OperatorRef > </ AffectedOperator > < LineRef >85:801:1862</ LineRef > < PublishedLineName >675</ PublishedLineName > </ AffectedLine > </ AffectedNetwork > |
Mappatura generale tra gli GTFS Service Alerts e SIRI-SX
Implementazione GTFS
- Edizione multilingue (DE, FR, IT, EN) dei testi di Lang
- GTFS: “headerText” corrisponde a SIRI-SX <SummaryText (L)>.
- Il GTFS “descriptionText” è composto come segue, con diversi valori per elemento:
- Motivo <ReasonContent>
- Durata <DurationContent>
- Informazioni – <RemarkContent> – Se fornito, non fornito da tutte le organizzazioni commerciali.
- Effetti <ConsequenceContent>
- Raccomandazione <RecommendationContent>
- Osservazione – <DescriptionContent> → Se fornita, non fornita da tutte le organizzazioni imprenditoriali.
- Uri – Non disponibile nella versione attuale del prodotto
- Etichetta – non disponibile nella versione attuale del prodotto
- GTFS “activePeriod” viene riempito da <ValidityPeriod>.
- Tutte le caratteristiche CH dello spazio informativo possono essere elaborate
- Possibilità di elaborare eventi con più informazioni sul cliente (attualmente solo VIA)
- Elaborazione di ValidityPeriod e PublicationWindow in base al profilo CH (cioè visualizzare sempre tutti i messaggi)
Descrizione generale del servizio (Google)
Service Alerts | Realtime Transit | Google for Developers
Elementi esistenti secondo GTFS:
Differenze rispetto all’implementazione di Google:
message
Alert |
Link: https://developers.google.com/transit/gtfs-realtime/reference#message-alert
Tutti gli elementi sono supportati |
||||||||||||||||
message TimeRange
|
Link: https://developers.google.com/transit/gtfs-realtime/reference#message-timerange
Nome dell’implementazione svizzera (activePeriod) Tutti gli elementi sono supportati |
||||||||||||||||
message
EntitySelector |
Link: https://developers.google.com/transit/gtfs-realtime/reference#message-entityselector
Nome dell’implementazione svizzera (informedEntity) I seguenti elementi non vengono utilizzati
|
||||||||||||||||
message
TripDescription |
Link: https://developers.google.com/transit/gtfs-realtime/reference#message-tripdescriptor
Il messaggio non è supportato/utilizzato |
||||||||||||||||
enum
ScheduleRelationship |
Enum non è supportato/utilizzato nell’implementazione di Service Alert. | ||||||||||||||||
Enum
Cause |
https://developers.google.com/transit/gtfs-realtime/reference#enum-cause
Vengono utilizzati tutti i valori elencati. Quelli non elencati non saranno utilizzati.
|
||||||||||||||||
Enum
Effect |
https://developers.google.com/transit/gtfs-realtime/reference#enum-effect
Attualmente non vengono utilizzati effetti. Esiste solo il valore “Condition: Unknown” dall’EMS e la mappatura in GTFS “Unknown_Effect”. |
||||||||||||||||
message
TranslatedString |
https://developers.google.com/transit/gtfs-realtime/reference#message-translatedstring
Tutti gli elementi sono supportati |
Atri servizi:
Record di dati esistenti
Le seguenti organizzazioni commerciali forniscono informazioni sull’evento: Organizzazioni commerciali – Dati | Open Data Platform Mobility Switzerland (opentransportdata.swiss)