Skip to content

Echtzeitdaten von Strassenverkehrszählern

Verkehrszähler sind entlang wichtiger Straßenabschnitte zu finden, um alle Verkehrsbewegungen nach Richtung und Zeit zu messen. Sie sind in der Lage, alle Fahrzeuge, die bestimmte Orte passieren, zu zählen, zu klassifizieren und ihre Geschwindigkeit zu bestimmen.

In der Schweiz sind die Strassenverkehrsämter auf allen Ebenen für den Betrieb ihres Netzes von permanenten automatischen Verkehrszählstationen an den wichtigsten Durchgangsstrassen des Landes zuständig. Das Ziel ist es, alle Verkehrsbewegungen nach Richtung und Zeit zu erfassen. Dieser Datensatz kann als gemeinsamer Topf betrachtet werden, in dem diese Art von Daten für alle Straßenbehörden, die an einem Austausch ihrer Daten interessiert sind, zusammengefasst werden.

Beschreibung der Daten

Format

DATEX II ist der Standard für den Austausch von straßenverkehrsbezogenen Daten. Das Format basiert auf einem spezifischen XML-Schema. Jedes Land hat die Möglichkeit, für seine Bedürfnisse spezifische Profile zu erstellen und zu veröffentlichen.

Das Schweizer Profil für DATEX II basiert auf DATEX II Version 2.3.

Aktualisierungshäufigkeit

Die Daten werden minütlich aktualisiert und betreffen die Verkehrsbewegungen der vorangegangenen vollen Minute. Neue Daten ersetzen immer die zuletzt veröffentlichten Daten. Historische Daten sind für diesen Datensatz nicht verfügbar. Die Daten der letzten Minute werden immer 20 Sekunden nach einer vollen Minute in UTC 0 veröffentlicht.

Inhalt

Die Daten beziehen sich auf den statischen Stammdatensatz “Verkehrszähler (Straßenverkehr)”, den Sie hier oder über dieselbe API finden.

Statische Daten

Die Messstellentabelle (MST) informiert die Nutzer über das Netz der Verkehrszähler. Normalerweise erfassen Verkehrszähler Daten von mehr als einem Fahrstreifen. Es werden daher mehrere Detektoren verwendet. In diesem Zusammenhang werden die Detektoren als “Messstellendatensatz” (MSR) bezeichnet, und jeder von ihnen hat eine eindeutige ID in DATEX II.

Die Tabelle der Messstellendatensätze enthält Informationen wie die IDs der Zähler, die Kennungen der Lieferanten und die Georeferenzierung.

Dynamische Daten

Die Daten werden aggregiert und minütlich veröffentlicht. Im Wesentlichen handelt es sich um die Anzahl der Fahrzeuge und die Durchschnittsgeschwindigkeit in zwei Kategorien pro “Messstellendatensatz” (MSR):

  1. Leichtfahrzeuge wie Autos, Motorräder, Busse und kleine Lieferwagen (Schweizer Klasse 1 bis 7)
  2. Schwerverkehr wie Lastwagen und Lastwagen mit Anhänger (Swiss Class 8 bis 10)

Für die Fehlerbehandlung werden zwei zusätzliche Kategorien kommuniziert:

  1. Die Anzahl der Fahrzeuge ohne Klassifizierung
  2. Die Anzahl der Fahrzeuge mit ungültiger Geschwindigkeit (unplausible Daten)

Beispiel für dynamische Daten

Verknüpfung zwischen statischen und dynamischen Daten

Jede Veröffentlichung dynamischer Daten verweist auf eine aktuelle MST-Version. Wenn sich die Versionsnummer der MeasurementSiteTable, auf die in den dynamischen Daten verwiesen wird, erhöht hat (measurementSiteTableReference), fordern Sie bitte die neue MST mit Hilfe der Operation “pullMeasurementSiteTable” an.

Filtern

Da das gesamte XML der dynamischen Daten schwer zu verarbeiten sein kann, ist es möglich, die Daten für eine Auswahl von MSR anzufordern. Der Filter wird in einer optionalen Datenstruktur (‘GenericPayLoad’) im SOAP-Request für die ‘pullMeasuredData’-Operation übergeben. Gemäss dem DATEX II Profil für Verkehrsdaten in der Schweiz muss der GenericPayload folgende Elemente enthalten:

  • Lang: geben Sie “en” als Standardwert ein
  • publicationTime: geben Sie den aktuellen Zeitstempel der Anfrage ein
  • country: Geben Sie Ihr Herkunftsland ein
  • nationalIdentifier: Beim Pull-Dienst dient dies nicht als Identifikator für die Authentifizierung, da die IDs für Verbraucher nicht standardisiert sind. Sie können hier eingeben, was Sie wollen, es hat keine Auswirkung.
  • Die IDs der Zähler werden einmal mit einem Doppelpunkt und einmal mit einem Punkt getrennt.
    • XX: = Akronym des Lieferanten (z.B. CH: = ASTRA, ZH: = Kanton Zürich)
    • = ID der Zählstation (z.B. 0610. oder 0043.)
    • Detektor-ID von 01 bis 09 (z.B. 01, 02)
  • Die Filterung wird durch zwei mögliche Syntaxen unterstützt: MQTT und reguläre Ausdrücke (Online-Regex-Tester)
  • Auf der rechten Seite des Doppelpunktes kann die MQTT-Syntax verwendet werden.
    • “+” ist ein einstufiger Platzhalter und kann daher mehrfach verwendet werden.
    • “#” ist ein all-sublevels Wildcard und kann daher nur einmal und nur am Ende verwendet werden.

Beispiel:

  1. MQTT-Syntax: CH:0610/# wird in den regulären Ausdruck CH:0610.[0-9.]* übersetzt, der alle Melder der Zählstation CH:0610 anfordert
  2. CH:0610/+ (identisch mit 1., sofern der Registrar keine weiteren Schritte rechts vom “:” verwendet)
  3. CH:+.+ (alle Zählstellen mit allen Detektoren des Lieferanten “CH”)
  4. CH:# (identisch mit 3., sofern der Registrator keine weiteren Schritte rechts vom “:” verwendet)
  5. CH:+. # (Formal zulässig, Ergebnis identisch mit 4.)

Bei Version wird der Wert “0” als “aktuelle Version” interpretiert und schließt die Zahlen 1 oder höher ein. Dies ist nützlich, da nicht alle MSR-IDs, die einem Platzhalterausdruck entsprechen, notwendigerweise dieselbe Version haben.

Ein vollständiges Beispiel für eine gefilterte Anfrage finden Sie auf der Seite mit den Beispielen.

Nach den obigen Beispielen könnte ein Filter wie folgt aussehen:

<measuredDataFilter xsi:type="dx223:MeasuredDataFilter">
    <dx223:measurementSiteTableReference xsi:type="dx223:_MeasurementSiteTableVersionedReference" targetClass="MeasurementSiteTable" id="OTD:TrafficData" version="0"/>
    <dx223:siteRequestReference xsi:type="dx223:_MeasurementSiteRecordVersionedReference" targetClass="MeasurementSiteRecord" id="CH:0003.01" version="0"/>
    <dx223:siteRequestReference xsi:type="dx223:_MeasurementSiteRecordVersionedReference" targetClass="MeasurementSiteRecord" id="CH:0003/02" version="0"/> 
    <dx223:siteRequestReference xsi:type="dx223:_MeasurementSiteRecordVersionedReference" targetClass="MeasurementSiteRecord" id="CH:0346\.[0-9]*" version="0"/>
    <dx223:siteRequestReference xsi:type="dx223:_MeasurementSiteRecordVersionedReference" targetClass="MeasurementSiteRecord" id="CH:0347/+" version="0"/>
    <dx223:siteRequestReference xsi:type="dx223:_MeasurementSiteRecordVersionedReference" targetClass="MeasurementSiteRecord" id="CH:0610/#" version="0"/>
    <dx223:siteRequestReference xsi:type="dx223:_MeasurementSiteRecordVersionedReference" targetClass="MeasurementSiteRecord" id="CH:067[0-9.]*" version="0"/>
</measuredDataFilter>

Technische Einrichtung

Autorisierung mit API-Schlüssel

Um die dynamischen Daten zu erhalten, ist ein API-Schlüssel erforderlich. Der Schlüssel kann über das Entwicklerportal bezogen werden. Sie benötigen einen Schlüssel vom Typ “Verkehrszähler (Straßenverkehr)”.

Wenn Sie eingeloggt sind, gehen Sie zum Menü “API-Schlüssel” und wählen Sie den entsprechenden Schlüssel aus:

Das Token sollte im HTTP-Header mit dem Namen “Authorization” gesendet werden (siehe Beispiel unten).

Ein solcher Schlüssel ermöglicht 260.000 Abfragen innerhalb von 6 Monaten.

URL zum Abrufen von Daten

Die OpenTransportData (OTD)-Plattform bietet eine PULL-Schnittstelle, über die die Daten über http POST-Anfragen (SOAP, nicht REST) abgerufen werden können.

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

Achtung: kein “/” am Ende der URL

Mit dem Authorization Header und Content-Type = “text/XML” oder “application/XML”

Authorization header

SOAP Operationen

Wie in der WSDL-Datei beschrieben, gibt es drei mögliche Operationen:

  • pullMeasurementSiteTable: antwortet mit der vollständigen und aktuellen MS
  • pullMeasuredData: antwortet mit den aktuellen dynamischen Daten
  • keepAlive: für Entwicklungszwecke

Verwenden Sie immer SOAP-Operationen. Wir haben ein SOAPUI-Projekt erstellt, um dies zu zeigen.

Zugang zu den Daten (bedingte Open Data)

Im Rahmen der Datenaustauschstrategie des ASTRA sind diese Daten unter dem Konzept der “conditional open data” verfügbar. Das Ziel ist es, potenzielle Besitzer von Verkehrsdaten zu ermutigen, sich an dieser Datengemeinschaft zu beteiligen, indem sie einen Teil ihrer Verkehrsdaten zur Verfügung stellen. Im Gegenzug erhalten sie einen vollständigen offenen Datenzugang. Die Nutzer können jedoch sechs Monate lang ohne jegliche Einschränkung auf die Daten zugreifen. Benötigt ein Nutzer einen längeren Zugang zu den Daten, wendet er sich bitte an den ASTRA-Administrator. Für weitere Informationen lesen Sie bitte die Geschäftsbedingungen des ASTRA.

Erwartete Datenqualität

Die Daten werden nach bestem Wissen und Gewissen mit minimalen Plausibilitätskontrollen übermittelt und sind nicht formell überprüft worden. Um die Genauigkeit zu erhöhen, sollten die Daten mit anderen Daten wie Baustellen usw. korreliert werden. Daher kann es zu Abweichungen zwischen diesen “Rohdaten” und den offiziellen Statistiken der Straßenverkehrsbehörden kommen.

Fehlerbehandlung

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.

Mehr Informationen über DATEX II

https://datex2.eu/

Verkehrsdaten-Downloader

Mit dem Tool “Verkehrsdaten-Downloader” können Sie bequem die aktuellen Daten und Stammdaten auf Ihren Rechner herunterladen und speichern. Das Tool generiert für jeden gestarteten Download eine CSV-Datei.

Der Verkehrsdaten-Downloader V1.0 ist kostenlos erhältlich. Nach dem Start der Anwendung müssen Sie lediglich Ihren API-Schlüssel eingeben, den Ausgabeordner festlegen und den Download starten.