Stand August 2024. Informationen zu kontinuierlichen Anpassungen findest Du in unserem Changelog.
Aktuelle Informationen zu Releases
Realisierungsvorgaben RV 2.0.6 und 2.0.7
Die Aktivierung der Anpassungen gemäss den neuen Realisierungsvorgaben RV 2.0.6 und 2.0.7 ist geplant für den 29.10.2024. [Update 2024-10-25: Die Aktivierung wurde auf einen noch zu bestimmenden Zeitpunkt verschoben.] Beide Vorgaben werden gleichzeitig umgesetzt. Testdaten stehen unter Testdatensätze Realisierungsvorgaben HRDF 2.0.6 und 2.0.7 zur Verfügung.
Folgende Dateien sind von der neuen HRDF-Version betroffen:
File FPLAN
*GR-Zeilen sind nicht mehr unterstützt
*SH-Zeilen sind nicht mehr unterstützt
*VV-Zeilen werden neu unterstützt. Sie beinhalten
- Voraussichtliche Verspätung in Minuten
- Haltestelle, ab der die Verspätung gilt
- Haltestelle, bis zu der die Verspätung gilt
- Abfahrtszeitpunkt
- Ankunftszeitpunkt
Beispiel
1 |
*VV 0010 8507000 8503000 % Voraussichtliche Verspätung von 10 Minuten ab HST-Nr 8507000 bis HST-Nr 8503000 |
File ATTRIBUT
Neu fängt die Beschreibung ab der Spalte 5 (statt 4) an.
Beispiel (neu):
1 2 |
VR VELOS: Reservierung obligatorisch VR BICYCLES: Reservation required |
Alt:
1 2 |
VR VELOS: Reservierung obligatorisch VR BICYCLES: Reservation required |
Files ATTRIBUT_DE / ATTRIBUT_EN / ATTRIBUT_FR / ATTRIBUT_IT
Die Files ATTRIBUT_DE, ATTRIBUT_EN, ATTRIBUT_FR, ATTRIBUT_IT werden nicht mehr zur Verfügung gestellt. Die verschiedenen Sprachvarianten sind jedoch alle im File ATTRIBUT enthalten.
File BETRIEB
- Erste Zeile: Eindeutiger Identifier (SBOID) (nach dem „N“) wird zur Verfügung gestellt.
- Zweite Zeile: Ab Version 2.0.7 kann es nur einen TU-Code pro SBOID geben.
Beispiel (neu mit SBOID):
1 2 3 4 |
00244 K "DB " L "DB Regio" V "DB RegioNetz Verkehrs GmbH Westfrankenbahn" N "ch:2:sboid:DE800603" 00244 : 800603 00245 K "DB " L "DB Regio" V "DB RegioNetz Verkehrs GmbH Westfrankenbahn" N "ch:2:sboid:DE8006A7" 00245 : 8006A7 |
Alt (aktuell ohne SBOID):
1 2 |
00244 K "DB " L "DB Regio" V "DB RegioNetz Verkehrs GmbH Westfrankenbahn" 00244 : 800603 8006A7 |
File BHFART
- Ab Version 2.0.7 wird nur das File BHFART zur Verfügung gestellt werden.
- Sofern bekannt, werden die globalen IDs (für die Schweiz die Swiss Location ID (SLOID)) der Haltestelle und Haltekante zur Verfügung gestellt.
- mit einem “A” als Präfix werden die global IDs der Bahnhöfe zur Verfügung gestellt
- mit einem “a” als Präfix werden die global IDs der Haltekanten zur Verfügung gestellt
- Eine Haltestelle kann mehrere Steige haben (d.h. bspw. Orte zum Ein- und Ausstieg an der besagten Haltestelle). Ein gleicher Steig kann mehreren Haltestellen zugewiesen werden.
- Die Information “Land” wird pro Haltestelle mit der Kennung L zur Verfügung gestellt
- Die Information “Kanton” wird pro Haltestelle zur Verfügung gestellt. Die Information wird mit einer *I-Zeile und dem Infotextcode “KT” übermittelt
Die SLOID sind schon heute im File BHFART_60 produktiv ausgetauscht.
1 2 3 4 5 6 7 |
8501200 G A ch:1:sloid:1200 8501200 L CH % Vevey 8503000 I KT 000001235 (und ein entsprechender Eintrag im File INFOTEXT) 8501200 G a ch:1:sloid:1200:3:5 8501200 G a ch:1:sloid:1200:2:2 8501200 G a ch:1:sloid:1200:2:4 8501200 G a ch:1:sloid:1200:1:1 |
File GLEISE
Neu werden die Files GLEISE_WGS und GLEISE_LV95 zur Verfügung stehen. Die anderen Files GLEIS_xx werden nicht mehr zur Verfügung stehen.
File KMINFO
Die Spalte “Kommentar” beginnt mit dem Sonderzeichen % ab der Position 21.
Beispiel (neu):
1 2 |
0000140 0 % Gotthard-Panoramastrecke 8508253 100 % Heimberg |
Alt:
1 2 |
0000140 0 Gotthard-Panoramastrecke 8508253 100 Heimberg |
File ZUGART
- Neu wird der Verkehrsträger von jeder Angebotskategorie mitgeliefert. Die Information wird mit einer *I-Zeile und dem Infotextcode “VM” übermittelt.
- Neu ist das Attribut “Ausgabesteuerung” zweistellig. Die Attribute, welche nach diesem vorkommen, werden um eine Stelle verschoben.
Beispiel (neu):
1 |
ICE 0 A 0 ICE 0 #030 |
Alt:
1 |
ICE 0 A 0 ICE 0 #030 |
Hintergrund
Was ist HRDF?
Das Hafas Rohdaten Format (HRDF) ist ein proprietäres Datei-Format für Fahrplan-Daten.
Wer steckt dahinter?
Die Firma Hacon hat das Hacon Fahrplan-Auskunfts-System (HAFAS) entwickelt, welches HRDF zum Datenaustausch nutzt.
Warum bietet die Open Data-Plattform das an?
Das HAFAS System (s.o.) ist im öV verbreitet, wodurch sich HRDF zu einem der Standards der Branche entwickelt hat. Zudem deckt es viele Aspekte der Kundeninformation ab, die bei anderen Formaten (derzeit) nicht gegeben sind.
Mehr Informationen zur Beurteilung von HRDF als Standard findest Du im Bericht des Bundesamt für Verkehr (BAV).
Wie komme ich an die Daten/Schnittstellen ran?
Daten
Der Fahrplan im HRDF-Format (bspw. für 2024): https://opentransportdata.swiss/de/dataset/timetable-54-2024-hrdf Für den Autoverlad (bspw. für 2024): https://opentransportdata.swiss/de/dataset/timetable-54-2024-hrdf-autoverlad Der aktuelle Fahrplanentwurf: https://opentransportdata.swiss/de/dataset/timetable-54-draft-hrdf Schnittstellen HRDF ist kein Schnittstellen-Standard. |
Fachliche Beschreibung
Welche Informationen bilden wir mit HRDF ab? (Umfang)
- Fahrplandaten des öV-Schweiz und Fahrten im grenznahen Bereich der Schweiz.
- Hinweis: Für die grenzüberschreitenden Züge sind der schweizerische Teil des Laufes bis zum ersten kommerziellen Halt im Ausland (Richtung Ausland) bzw. letzten kommerziellen Halt im Ausland (Richtung CH) enthalten.
- Alle Informationen einer ganzen Fahrplanperiode (bspw. 2024).
Wie sind die Informationen aufgebaut? (Modell)
Ein HRDF-Export besteht aus mehreren Dateien, die für ein Gesamtbild fast alle gemeinsam betrachtet werden müssen. Für Details verweisen wir auf die Realisationsvorgabe (RV v2.0.5 (Juli 2023) resp. RV v2.0.7 (Mai 2024)) und die offizielle HRDF-Dokumentation (auf Anfrage erhältlich: Kontaktformular).
In gewisser Weise kann man sich die HRDF-Datei als Dump einer Datenbank vorstellen. Die einzelnen Dateien im ZIP entsprechen einzelnen Tabellen bzw. Objekten.
Bitte beachten:
- Bei den HRDF-Dateien gilt NICHT (immer) NOMEN EST OMEN. Bspw. enthält die Datei “BAHNHOF” nicht nur Bahnhöfe, sondern alle Haltestellen (bspw. auch von Bussen).
- Das Format der HRDF-Dateien ist auf eine kompakte, maschinenlesbare Struktur ausgerichtet. Daher:
- sind häufig verwandte, aber nicht gleiche Inhalte in derselben Datei
- werden Inhalte mit einem “*” gefolgt von einem Buchstaben, bspw. “*Z”, angeführt (so weiss die das interpretierende System was als nächstes kommt)
- ist der Aufbau jeder Zeile, die auf ein “*” folgt, in der HRDF-Dokumentation streng geregelt. Jeder Teil einer Zeile hat eine vorherbestimmte Breite (Anzahl Zeichen), die Teile werden durch Leerschläge voneinander getrennt. Beispiel:
- Es kann definiert sein, dass der erste Teil einer Zeile die ID einer Haltestelle enthält und nur 5 Zeichen lang sein darf und der nächste Teil (ab Zeichen 6 bis Zeichen 10) das die Haltestelle besitzende Unternehmen identifiziert.
- Also könnte die Zeile wie folgt aussehen: 12345_67891, wobei _ hier den Leerschlag visualisiert. Sollte es kein Unternehmen geben und das Feld optional sein, dann wären Zeichen 6-10 nur Leerschläge.
- Somit unterscheidet sich HRDF von anderen gängigen Dateiformaten wie bspw. CSV, wo Inhalte mit einem Komma separiert werden, oder JSON, wo Inhalte (mit diversen Zeichen) strukturiert repräsentiert werden: Inhalte in HRDF sind limitiert in ihrem Umfang und ihrer Position auf jeder Zeile.
- Es gibt Dateien, die Teil des von uns bereitgestellten HRDF-Exports sind, die leer sind. Diese sind nur im Sinne der Interoperabilität abnehmender System inkludiert. In der folgenden Beschreibung führen wir sie bewusst NICHT auf.
Insgesamt kann man die HRDF-Daten fachlich in (1) Stammdaten, (2) zeitlich relevante Daten, (3) Fahrplandaten und (4) Umsteigedaten unterteilen. Auf den Inhalt gehen wir im folgenden genauer ein.
Technische Beschreibung (Was steht in den HRDF-Dateien? (Inhalt))
Dieser Abschnitt beschreibt grob jede einzelne Datei des HRDF-Modells inklusive Beispielen aus dem HRDF-Export (genaue Informationen sind der RV und HRDF-Dokumentation zu entnehmen). Ausserdem beschreiben wir die Dateien nicht alphabetisch, sondern ausgehend von Knotendateien. Beispielsweise führen wir zunächst FPLAN als eine der zentralen Dateien ein und beschreiben dann die von dieser Datei referenzierten Dateien, usw. Somit teilen wir die Beschreibung ein in:
- Fahrplandatei (FPLAN) und ihre Referenzen sowie allgemeine Information
- Braucht man, um herauszufinden:
- wann wird
- von wo nach wo gefahren
- an welchen Tagen im Jahr
- mit welchem Verkehrsmittel
- mit welcher Linie
- mit welchen Zusatzdiensten und Einschränkungen
- mit welchen weiteren Details (SJYID, etc.)
- Sowie für zeitliche relevante Informationen:
- Gültigkeit
- Feiertage
- Zeitzonen
- Braucht man, um herauszufinden:
- Haltestellen-Datei (BAHNHOF) und ihre Referenzen
- Braucht man für folgende Informationen zu Haltestellen:
- Namen
- Gruppierung mehrerer Haltestellen
- Koordinaten der Haltestellen
- ID der Haltestellen
- Umsteigeinformationen innerhalb und zwischen Haltestellen
- Braucht man für folgende Informationen zu Haltestellen:
Fahrplandatei (FPLAN) und seine Referenzen sowie allgemeine Information
Ausschnitt aus der Modellübersicht. Ein Pfeil bedeutet, dass auf einen Schlüssel in der referenzierten Datei “gezeigt” wird:
Bereich | Fachlicher Inhalt | Dateiname | Beschreibung | ||||||||||||||||||
Zeitlich relevante Daten | Gültigkeit der Lieferung | ECKDATEN |
Dauer des Fahrplans Die Fahrplandaten sind für den definierten Zeitraum gültig. Die Dauer entspricht üblicherweise derjenigen der Fahrplanperiode Kann entkoppelt von weiteren Daten eingelesen werden. |
||||||||||||||||||
Zeitlich relevante Daten | Allgemeine Feiertage | FEIERTAG |
Liste der allgemeinen Feiertage, die in der Schweiz gelten. Zusätzlich zum Datum des Feiertages ist die Beschreibung des Feiertages in vier Sprachen gelistet : DE, FR, IT, EN Kann entkoppelt von weiteren Daten eingelesen werden. |
||||||||||||||||||
Zeitlich relevante Daten | Zeitzonen | ZEITVS |
Definition der Zeitzonen, inkl. Datum, wann die Umstellungen Sommer- und Winterzeiten erfolgen Weitere Details zu diesem Thema und die Umsetzung in der Schweiz sind in der RV zu finden Es gibt 2 Typen der Repräsentation:
|
||||||||||||||||||
Zeitlich relevante Daten | Gültigkeit im Jahr | BITFELD |
Tagesgenaue Definition der Gültigkeit der Fahrplaninformationen. Die Definition der Gültigkeit wird dabei mit einem Bitmuster vorgenommen. Jeder Tag ist mit einem Bit abgebildet. Jeweils 4 Bit werden zu einer hexadezimalen Ziffer zusammengefasst. Für die Interpretation des Bitfelds ist es wichtig zu verstehen, wie die Fahrplanjahre funktionieren (mehr Infos hier). Ein Fahrplanjahr dauert in der Regel ein Jahr, aber das Fahrplanjahr beginnt am 2. Wochenende im Dezember. Dadurch ist ein Fahrplanjahr nicht immer gleich lang. Um damit umzugehen, geht man beim Bitfeld von einer Länge von 400 Tagen aus. Datei enthält:
Beispiel (Ausschnitt) – Hex statt Bits:
|
||||||||||||||||||
Fahrplandaten | Fahrplan | FPLAN |
Liste der Fahrten und mit Abstand die grösste und umfassendste Datei im HRDF-Export. Diese Datei beinhaltet:
|
||||||||||||||||||
Fahrplandaten | Durchbindungen | DURCHBI |
Liste der Fahrt-Paare die einen zusammenhängende Lauf bilden. Die Reisenden können sitzen bleiben. Dieses Konstrukt wird, unter anderem, für die Bildung der Flügelzüge angewendet. Datei beinhaltet:
Beispiel (Ausschnitt):
|
||||||||||||||||||
Stammdaten | Angebotskategorien (aka Verkehrsmittel(typ)) | ZUGART | Liste der Angebotskategorien. Pro Sprache die (Class:) Gruppierung von Angebotskategorien mit identischen Merkmalen. (Option:) Suchkriterien für die Applikation für Verbindungssuche. (Categorie:) Bezeichnung der Angebotskategorie.
Erneut der Hinweis: Der Begriff “Angebotskategorie” hat hier ggf. eine andere Bedeutung als in der Umgangssprache! Eine umgangssprachliche Bezeichnung wäre (auch nach HRDF-Dok.) “Verkehrsmittel”(typ). Diese Datei beinhaltet in der Schweiz modifiziert:
|
||||||||||||||||||
Stammdaten | Angebote | ATTRIBUT |
Liste von Abkürzungen die Zusatzangebote (z.B.: Speisewagen) oder Restriktionen (z.B.: Platzreservierung obligatorisch) beschreiben. Erneut der Hinweis: Der Begriff “Angebot” ist hier ggf. ungenau. Die HRDF-Dok. benutzt das Wort “Attribut”, welches auch noch etwas ungenau ist. Im Grunde ist es ein Sammelbegriff für Erweiterungen (bspw. Speisewagen) oder Einschränkungen (bspw. keine Velos) die gelten. Eine Übersicht der Verkehrsmittel (und Hinweise) kann dem folgenden Link entnommen werden: Verkehrsmittel- und Hinweislisten Diese Datei beinhaltet:
Beispiel (Ausschnitt):
Beispiel (Ausschnitt):
Beispiel (Ausschnitte):
|
||||||||||||||||||
Stammdaten | Infotexte | INFOTEXT_*
*DE,*FR,*IT,*EN |
Ergänzende Informationen zu Objekten (Fahrten, Linien, usw.). Diese Informationen können entweder
Ob es sich um einfach Texte oder solche mit semantischer Bedeutung handelt, ist im Attribut INFOTEXTCODE definiert. Der INFOTEXTCODE ist nicht in der Datei INFOTEXT, sondern nur in den INFOTEXT referenzierenden Dateien, bspw. FPLAN. Eine Liste der verwendeten INFOTEXTCODE kann unter folgendem LINK gefunden werden. |
||||||||||||||||||
Stammdaten | Linien | LINIE |
Liste der Linien. Die Datei beinhaltet:
Die folgenden Eigenschaften-Codes werden unterstützt:
Beispiel (Ausschnitt):
|
||||||||||||||||||
Stammdaten | Richtung | RICHTUNG |
Richtungsinformation. Im Detail:
Es geht hier bspw. darum, dass wenn ein Zug zwischen Sargans und Chur fährt, als Richtung Chur angeschrieben wird. Beispiel (Ausschnitt):
|
||||||||||||||||||
Stammdaten | Transportunternehmen | BETRIEB_**DE,*FR,*IT,*EN | Liste der Transportunternehmen. Der Begriff der Transportunternehmen wird unterschiedlich verstanden. Im Zusammenhang mit opentransportdata.swiss versteht man, dass es sich um eine Organisation handelt, die für die im FPLAN beschriebenen Läufe zuständig sind. Ein Detailbeschrieb zu den Transportunternehmen bzw. Geschäftsorganisationen findet sich hier.
Im Detail wird jedes TU mit 2 Zeilen beschrieben:
Beispiel (Ausschnitt):
|
Haltestellen-Datei (BAHNHOF) und seine Referenzen
Ausschnitt aus der Modellübersicht. Ein Pfeil bedeutet, dass auf einen Schlüssel in der referenzierten Datei “gezeigt” wird. Zur besseren Übersicht wurden BAHNHOF und BETRIEB über Platzhalter repräsentiert.
Nicht wiederholt: ZUGART, LINIE, BETRIEB_*, FPLAN:
Bereich | Fachlicher Inhalt | Dateiname | Beschreibung | ||||||
Stammdaten | Haltestellen | BAHNHOF |
Liste der Haltestellen. Ein detaillierter Beschrieb zu Haltestellen (inkl. Meta-Haltestellen (s. METABHF-Datei)) findet sich hier. Die Datei enthält Haltestellen, die in verschiedenen Dateien referenziert sind:
Beispiel (Ausschnitt):
Beispiel – Suche nach Basel anstatt “Basel SBB” (Ausschnitt):
|
||||||
Stammdaten | Meta-Haltestellen | METABHF |
Gruppierung von Haltestellen für die Suche. Durch diese Gruppierung der Haltestellen findet die Suche nach Transportketten an allen Haltestellen der Gruppe statt. Es gibt 2 Teile. Datei beinhaltet:
Beispiel (Ausschnitt):
|
||||||
Stammdaten | Haltestellen Koordinaten | BFKOORD_*
*WGS84, *LV95 |
Liste der Haltestellen mit ihren Geo-Koordinaten. Datei beinhaltet:
Beispiel (Ausschnitt):
|
||||||
Stammdaten | Bahnhofart | BHFART*
*, *_60 |
Definition der Art der Haltestellen, d.h. ob die Haltestelle als Start und/oder Ziel, oder als Via-Ort dienen können sollte, und ob sie eine globale ID (für die Schweiz die Swiss Location ID (SLOID)) besitzt.
Die BHFART_60-Variante der BHFART-Datei enthält zusätzlich die Steige (mit einem “a” als Präfix) der Bahnhöfe (mit einem “A” als Präfix). Also wenn im Beispiel unten “A” steht wird eine Haltestelle und nicht einem dieser Haltestelle zugehöriger Steig beschrieben. Eine Haltestelle kann mehrere Steige haben (d.h., bspw. Orte zum Ein- und Ausstieg an der besagten Haltestelle). Datei beinhaltet:
Das Format ist dabei:
Beispiel (Ausschnitt):
Caveat: Es gibt im Moment keine unterschiedlichen sloid für Sektoren und Sektorgruppen. Diese können aber eigene Koordinaten haben. Je nach Anwendungsfall sollte die sloid (wenn sie als id verwendet wird), noch mit “:”+”Bezeichnung” ergänzt werden (z.B. ch:1:sloid:7000:501:34:AB) im internen System. Es handelt sich dabei aber NICHT um eine neue offizielle Id. |
||||||
Stammdaten | Umsteigepriorität | BFPRIOS | Definition der Priorität der Haltestellen. Die Umsteigepriorität erlaubt die Auswahl des Umsteigepunktes, wenn mehrere Umsteigemöglichkeiten existieren. Sie ist mit einem Wert zwischen 0 und 16 dargestellt, wobei 0 höchste Priorität und 16 niedrigste Priorität bedeutet. Datei beinhaltet:
Beispiel (Ausschnitt):
|
||||||
Stammdaten | Gewichtung der Umsteigepunkte | KMINFO | Diese Datei ist primär für HAFAS relevant. HAFAS erkennt Umsteigeorte automatisch. Daher sollte diese Datei eigentlich nur zum Zuweisen 2-er Zahlen genutzt werden 30000 und 0 (s.u.). In der Schweiz beinhaltet sie jedoch mehr Zahlen. Konkret, diverse Zahlen zwischen 0 und 30000. Gleiche Zahlen indizieren eine ähnlich zu handhabenden Umstieg. Die Datei unterscheidet sich zu BFPRIOS darin, dass man hier Sperrungen und Umstiege im Allgemeinen definiert, also soll ein Ort zum Umsteigen genutzt werden können oder nicht. Die weiter Einteilung ist eine zusätzlich zu BFPRIOS genutzte Konfigurierung der Umsteigelogik. Datei beinhaltet:
Beispiel (Ausschnitt):
|
||||||
Fahrplandaten | Gleis- bzw. Bussteiginformation | GLEISE_*
*WGS, *LV95 |
Liste der Gleis- bzw. Bussteiginformationen. Datei beinhaltet:
Beispiel (Ausschnitt):
Bezeichnung
Somit entsteht das Gesamtbild mit der Verknüpfung der beiden Informationen. WICHTIGER HINWEIS zu *WGS und *LV95, sowie “GLEIS” vs “GLEISE”: Diese beiden Dateien werden 2024 die “reine” GLEIS und GLEIS_*-Dateien in der Schweiz ablösen. Also es bleiben GLEISE_WGS und GLEISE_LV95. Dementsprechend haben wir hier auch direkt diese Dokumentiert Mit der Ablösung ändert sich nur der zweite Teil wie folgt (Weitere Details zu diesem Thema und die Umsetzung in der Schweiz sind in der RV zu finden):
Beispiel (Ausschnitt):
|
||||||
Umsteigdaten | Umsteigezeit zwischen Fahrten | UMSTEIGZ | Liste der Fahrten-Paare, die eine besondere Umsteigebeziehung haben. Datei beinhaltet:
Beispiel (Ausschnitt):
|
||||||
Umsteigedaten | Umsteigezeit an einer Haltestelle | UMSTEIGB | Allgemeine Umsteigezeit bzw. pro Haltestelle. Die Datei beinhaltet:
Beispiel (Ausschnitt):
Beispiel (Ausschnitt):
|
||||||
Stammdaten | Umsteigezeit zwischen Linien | UMSTEIGL | Umsteigezeit pro Angebotskategorie und/oder Linie. Die Datei beinhaltet:
Beispiel (Ausschnitt):
|
||||||
Stammdaten | Umsteigezeit zwischen Transportunternehmen | UMSTEIGV | Umsteigezeit zwischen zwei Transportunternehmen:
Beispiel (Ausschnitt):
|