Skip to content

Dati in tempo reale dai contatori del traffico stradale

I contatori di traffico si trovano lungo i segmenti stradali più importanti per misurare tutti i movimenti di traffico per direzione e tempo. Sono in grado di contare, classificare e determinare la velocità di tutti i veicoli che attraversano luoghi specifici.

In Svizzera, le autorità stradali sono responsabili a qualsiasi livello della gestione della rete di stazioni permanenti di conteggio automatico del traffico sulle arterie più importanti del Paese. L’obiettivo finale è quello di registrare tutti i movimenti del traffico per direzione e orario. Questo set di dati può essere visto come un contenitore comune che raggruppa questo tipo di dati per tutte le autorità stradali interessate a condividere i propri dati.

Descrizione dei dati

Formato

DATEX II è lo standard per lo scambio di dati relativi al traffico stradale. Il formato si basa su uno schema XML specifico. Ogni Paese ha la possibilità di creare e pubblicare profili specifici per le proprie esigenze.

Il profilo svizzero per DATEX II si basa sulla versione 2.3 di DATEX II.

Frequenza di aggiornamento

I dati vengono aggiornati ogni minuto e si riferiscono ai movimenti di traffico del minuto intero precedente. I nuovi dati sostituiscono sempre quelli pubblicati più di recente. Per questo set di dati non sono disponibili dati storici. I dati relativi all’ultimo minuto vengono sempre pubblicati 20 secondi dopo un minuto intero in UTC 0.

Contenuto

I dati si riferiscono all’insieme di dati statici “Contatori del traffico (traffico stradale)”, che potete trovare qui o tramite la stessa API.

Dati statici

La tabella dei punti di misura (MST) informa gli utenti sulla rete dei contatori di traffico. Di norma, i contatori di traffico registrano i dati di più corsie. Vengono quindi utilizzati diversi rilevatori. In questo contesto, i rilevatori sono denominati “measuring point record” (MSR) e ciascuno di essi ha un ID univoco in DATEX II.

La tabella dei record dei dati dei punti di misurazione contiene informazioni quali gli ID dei contatori, gli identificativi dei fornitori e la georeferenziazione.

Dati dinamici

I dati vengono aggregati e pubblicati ogni minuto. Si tratta essenzialmente del numero di veicoli e della velocità media in due categorie per “set di dati del punto di misura” (MSR):

  1. Veicoli leggeri come auto, moto, autobus e piccoli furgoni (classe svizzera da 1 a 7)
  2. Veicoli pesanti come autocarri e autocarri con rimorchio (classe svizzera da 8 a 10)

Vengono comunicate due categorie aggiuntive per la gestione degli errori:

  1. Il numero di veicoli senza classificazione
  2. Il numero di veicoli con velocità non valida (dati non plausibili)

Esempio di dati dinamici

Collegamento tra dati statici e dinamici

Ogni pubblicazione di dati dinamici si riferisce a una versione corrente di MST. Se il numero di versione della MeasurementSiteTable a cui si fa riferimento nei dati dinamici è aumentato (measurementSiteTableReference), richiedere il nuovo MST utilizzando l’operazione “pullMeasurementSiteTable”.

Filtrare

Poiché l’intero XML dei dati dinamici può essere difficile da elaborare, è possibile richiedere i dati per una selezione di MSR. Il filtro viene trasferito in una struttura dati opzionale (‘GenericPayLoad’) nella richiesta SOAP per l’operazione ‘pullMeasuredData’. Secondo il profilo DATEX II per i dati sul traffico in Svizzera, il GenericPayload deve contenere i seguenti elementi:

  • Lungo: inserire “en” come valore predefinito
  • publicationTime: inserire il timestamp corrente della richiesta
  • paese: inserire il paese di origine
  • nationalIdentifier: per il servizio pull, non viene utilizzato come identificativo per l’autenticazione, poiché gli ID dei consumatori non sono standardizzati. Qui si può inserire ciò che si vuole, ma non ha alcun effetto.
  • Gli ID dei contatori sono separati una volta da due punti e una volta da un punto.
    • XX: = sigla del fornitore (es. CH: = ASTRA, ZH: = Cantone di Zurigo)
    • = ID della stazione di conteggio (ad es. 0610. o 0043.)
    • ID rivelatore da 01 a 09 (ad es. 01, 02)
  • Il filtro è supportato da due possibili sintassi: MQTT ed espressioni regolari (tester regex online).
  • La sintassi MQTT può essere utilizzata sul lato destro dei due punti.
    • “+” è un segnaposto a livello singolo e può quindi essere usato più volte.
    • “#” è un carattere jolly tutto sommato semplice e può quindi essere usato solo una volta e solo alla fine.

Ad esempio:

  1. La sintassi MQTT: CH:0610/# è tradotta nell’espressione regolare CH:0610.[0-9.]*, che richiede tutti i rilevatori della stazione di conteggio CH:0610
  2. CH:0610/+ (identico a 1. se l’autorità di registrazione non utilizza ulteriori passaggi a destra del “:”)
  3. CH:+.+ (tutti i punti di conteggio con tutti i rilevatori del fornitore “CH”)
  4. CH:# (identico al punto 3. se la società di registrazione non utilizza ulteriori passaggi a destra del “:”)
  5. CH:+. # (formalmente ammissibile, risultato identico al 4).

Per la versione, il valore “0” viene interpretato come “versione corrente” e include i numeri 1 o superiori. Questo è utile perché non tutti gli ID MSR che corrispondono a un’espressione segnaposto hanno necessariamente la stessa versione.

Un esempio completo di richiesta filtrata si trova nella pagina degli esempi.

In base agli esempi precedenti, un filtro potrebbe avere il seguente aspetto:

Impianto tecnico

Autorizzazione con chiave API

Per ottenere i dati dinamici è necessaria una chiave API. La chiave può essere ottenuta tramite il portale degli sviluppatori. È necessaria una chiave del tipo “Contatore di traffico (traffico stradale)”.

Una volta effettuato l’accesso, andare al menu “Chiave API” e selezionare la chiave appropriata:

Il token deve essere inviato nell’intestazione HTTP con il nome “Autorizzazione” (vedi esempio sotto).

Tale chiave consente di effettuare 260.000 interrogazioni in 6 mesi.

URL per il recupero dei dati

La piattaforma OpenTransportData (OTD) offre un’interfaccia PULL che può essere utilizzata per recuperare dati tramite richieste http POST (SOAP, non REST).

https://api.opentransportdata.swiss/TDP/Soap_Datex2/Pull

Attenzione: nessun “/” alla fine dell’URL

Con l’intestazione Authorisation e Content-Type = “text/XML” o “application/XML”.

Authorization header

Per ottenere dati dinamici, SoapAction= http://opentransportdata.swiss/TDP/Soap_Datex2/Pull/v1/pullMeasuredData deve essere specificato nell’intestazione (coppia chiave/valore; a seconda dello strumento, potrebbe anche essere separato da due punti o inserito in due campi).

Operazioni SOAP

Come descritto nel file WSDL, sono possibili tre operazioni:

  • pullMeasurementSiteTable: risponde con la tabella MS completa e corrente.
  • pullMeasuredData: risponde con i dati dinamici correnti
  • keepAlive: per scopi di sviluppo

Utilizzare sempre operazioni SOAP. Abbiamo creato un progetto SOAPUI per dimostrarlo.

Accesso ai dati (dati aperti condizionati)

Nell’ambito della strategia di scambio di dati dell’USTRA, questi dati sono disponibili sotto il concetto di “dati aperti condizionati”. L’obiettivo è quello di incoraggiare i potenziali proprietari di dati sul traffico a partecipare a questa comunità di dati mettendo a disposizione alcuni dei loro dati sul traffico. In cambio, ricevono un accesso aperto e completo ai dati. Tuttavia, gli utenti possono accedere ai dati per sei mesi senza alcuna restrizione. Se un utente necessita di un accesso più lungo ai dati, è pregato di contattare l’amministratore di USTRA. Per ulteriori informazioni, leggere i termini e le condizioni di USTRA.

Qualità dei dati prevista

I dati sono forniti in buona fede con controlli minimi di plausibilità e non sono stati verificati formalmente. Per aumentare l’accuratezza, i dati devono essere correlati con altri dati, come quelli relativi ai cantieri, ecc. Pertanto, possono esserci discrepanze tra questi “dati grezzi” e le statistiche ufficiali delle autorità del traffico stradale.

Gestione degli errori

Error code Description, Translation
EMPTY_RESPONSE EN:   The data provider is offline.

DE:   Der Datenlieferant ist offline.

FR:   Le fournisseur de données est hors ligne.

IT:     Il fornitore di dati è offline.

PRV_OFFLINE EN:   A third party supplying system is currently offline.

DE:   Ein Drittanbieter-System ist momentan offline.

FR:   Un système d’approvisionnement tiers est actuellement hors ligne.

IT:     Un sistema di fornitura di terze parti è attualmente offline.

AGG_OFFLINE EN:   The aggregation module is currently offline.

DE:   Der Aggregationsdienst ist momentan offline.

FR:   Le service d’agrégation est actuellement hors ligne.

IT:     Il servizio di aggregazione è attualmente offline.

VD_OFFLINE EN:   Communication interruption with the vehicle detector or vehicle detector is offline. No reception of traffic messages.

DE:   Die Kommunikation zum Verkehrszähler ist unterbrochen oder der Verkehrszähler ist offline. Es werden im Moment keine Daten empfangen.

FR:   La communication avec le compteur de trafic est interrompue ou le compteur de trafic est hors ligne. Aucune donnée n’est reçue pour le moment.

IT:     La comunicazione con il contatore del traffico viene interrotta o il contatore del traffico è offline. Al momento non vengono ricevuti dati.

VD_ERROR EN:   The vehicle detector is defect and is therefore not transmitting any data or the transmitted data are invalid.

DE:   Der Verkehrszähler ist defekt und sendet daher keine oder ungültige Daten.

FR:   Le compteur de trafic est défectueux et n’envoie donc aucune donnée ou des données invalides.

IT:     Il contatore di traffico è difettoso e quindi non invia dati o dati non validi.

SENSOR_ERROR EN:   The sensor of the vehicle detector is defect and is therefore not transmitting data or the transmitted data are invalid.

DE:   Der Sensor des Verkehrszählers ist offline oder defekt und sendet daher keine oder ungültige Daten.

FR:   Le capteur du compteur de trafic est hors ligne ou défectueux et n’envoie donc aucune donnée ou des données invalides.

IT:     Il sensore del contatore di traffico è difettoso e quindi non invia dati o dati non validi.

SENSOR_WWD EN:   The sensor has detected traffic in wrong direction. Possible reasons: due to diversion in construction zone, wrong way driving.

DE:   Der Sensor hat Verkehr in Gegenrichtung detektiert. Mögliche Ursachen: Umleitung wegen Baustelle, Falschfahrer oder zum Beispiel durch ein Überholmanöver.

FR:   Le capteur a détecté du trafic dans la direction opposée. Causes possibles: Déviation due à un chantier de construction, conducteur roulant en sens inverse ou par exemple lors d’un dépassement.

IT:     Il sensore ha rilevato il traffico nella direzione opposta. Possibili cause: Deviazione a causa del cantiere, contromano.

Ulteriori informazioni su DATEX II

https://datex2.eu/

Scaricatore di dati sul traffico

Con lo strumento “Traffic Data Downloader” è possibile scaricare e salvare comodamente sul proprio computer i dati attuali e i dati anagrafici. Lo strumento genera un file CSV per ogni download avviato.

Il Traffic Data Downloader V1.0 è disponibile gratuitamente. Dopo aver avviato l’applicazione, è sufficiente inserire la propria chiave API, specificare la cartella di output e avviare il download.