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 wurde neu auf 2025-01-21 festgelegt. 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
*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):
VR VELOS: Reservierung obligatorisch VR BICYCLES: Reservation required
Alt:
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):
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):
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.
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):
0000140 0 % Gotthard-Panoramastrecke 8508253 100 % Heimberg
Alt:
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):
ICE 0 A 0 ICE 0 #030
Alt:
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://data.opentransportdata.swiss/de/dataset/timetable-54-2024-hrdf Für den Autoverlad (bspw. für 2024): https://data.opentransportdata.swiss/de/dataset/timetable-54-2024-hrdf-autoverlad Der aktuelle Fahrplanentwurf: https://data.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: Typ 1: Bahnhofsnummer (allgemeine) Zeitverschiebung gegenüber GMT Zeitverschiebung die für den nachfolgenden Zeitraum gilt VonDatum (ab diesem Tag gilt die Zeitverschiebung) Zeit (von dieser Uhrzeit) BisDatum (bis zu diesem Tag gilt die Zeitverschiebung) Zeit (auf diese Uhrzeit) Kommentar (im Schweizer-Export stehen auch weitere Zeiträume zur Verfügung, vor dem Kommentar) Beispiel (Ausschnitt): … 0000000 +0100 +0200 26032023 0200 29102023 0300 +0200 31032024 0200 27102024 0300 % Nahverkehrsdaten; MEZ=GMT+1 1000000 +0200 +0300 26032023 0300 29102023 0400 +0300 31032024 0300 27102024 0400 % Finnland … Typ 2: Bahnhofsnummer Bahnhofsnummer Beispiel (Ausschnitt): … 7400000 0000000 7600000 0000000 8100000 0000000 … |
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: ... 000017 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE00 % Bitfeld 17 repräsentiert die Nr FF...00 ... |
Fahrplandaten | Fahrplan | FPLAN |
Liste der Fahrten und mit Abstand die grösste und umfassendste Datei im HRDF-Export. Diese Datei beinhaltet:
*Z 000003 000011 101 % Fahrtnummer 3, für TU 11 (SBB), mit Variante 101 (ignore) ... *Z 123456 000011 101 012 060 % Fahrtnummer 123456, für TU 11 (SBB), mit Variante 101 (ignore), 12 mal, alle 60 Minuten ...
*Z ... *G ICE 8500090 8503000 % Angebotskategorie ICE gilt ab HS-Nr. 8500090 bis HS-Nr. 8503000 ...
*Z ... *G ... *A VE 8500090 8503000 001417 % Ab HS-Nr. 8500090 bis HS-Nr. 8503000, gelten die Gültigkeitstage 001417 (Bitfeld für bspw. alle Montage) ...
*Z ... *G ... *A VE ... *A R 8500090 8503000 % Attribut R gilt ab HS-Nr. 8500090 bis HS-Nr. 8503000 *A WR 8500090 8503000 047873 % Attribut WR gilt ab HS-Nr. 8500090 bis HS-Nr. 8503000 mit den Gültigkeitstagen 047873 *A VR 8500090 8503000 % Attribut VR gilt ab HS-Nr. 8500090 bis HS-Nr. 8503000 ...
*Z ... *G ... *A VE ... *A ... *I hi 8573602 8587744 000018040 % Hinweis auf Infotext (hi) ab HS-Nr. 8573602 bis HS-Nr. 8587744 mit Infotext 18040 *I hi 8578157 8589334 000018037 01126 01159 % Hinweis auf Infotext (hi) ab HS-Nr. 8578157 bis HS-Nr. 8589334 mit Infotext 18037 Abfahrt 11:26 Ankunft 11:59 ...
*Z ... *G ... *A VE ... *A ... *I ... *L 8 8578157 8589334 01126 01159 % Linie 8 ab HS-Nr. 8578157 bis HS-Nr. 8589334 Abfahrt 11:26 Ankunft 11:59 *L #0000022 8589601 8589913 % Referenz auf Linie No. 22 ab HS-Nr. 8589601 bis HS-Nr. 8589913 ...
*Z ... *G ... *A VE ... *A ... *I ... *L ... *R H % gilt für die gesamte Hin-Richtung *R R R000063 1300146 8574808 % gilt für Rück-Richtung 63 ab HS-Nr. 1300146 bis HS-Nr. 8574808 ...
*Z ... *G ... *A VE ... *A ... *I ... *L ... *R ... *CI 0002 8507000 8507000 % Check-in 2 Min. ab HS-Nr. 8507000 bis HS-Nr. 8507000 ... *CO 0002 8507000 8507000 % Check-out 2 Min. ab HS-Nr. 8507000 bis HS-Nr. 8507000 ...
*Z ... *G ... *A VE ... *A ... *I ... *L ... *R ... *CI ... *CO ... 0053301 S Wannsee DB 02014 % HS-Nr. 0053301 Ankunft N/A, Abfahrt 20:14 0053291 Wannseebrücke 02015 02015 052344 80____ % HS-Nr. 0053291 Ankunft 20:15, Abfahrt 20:15, Fahrtnummer 052344, Verwaltung 80____ (DB) 0053202 Am Kl. Wannsee/Am Gr 02016 02016 % |
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): ... 000001 000871 8576671 024064 000871 000010 8576671 % Fahrt 1, TU 871, letzte HS 8576671, Fahrt 24064, TU 871, Bitfeld 10, erste HS 8576671 000001 000882 8581701 000041 000882 063787 8581701 % ... 000002 000181 8530625 000003 000181 000000 8530625 % Fahrt 2, TU 181, letzte HS 8530625, Fahrt 3, TU 181, Bitfeld 0, erste HS 8530625 000002 000194 8503674 000004 000194 000001 8503674 % ... 000002 000812 8591817 000003 000812 000000 8591817 % ... 000002 000882 8581701 000042 000882 063786 8581701 % ... 000003 000181 8530625 000004 000181 000000 8530625 % Fahrt 3, TU 181, letzte HS 8530625, Fahrt 4, TU 181, Bitfeld 0, erste HS 8530625 000003 000801 8507230 000004 000801 000000 8507230 % ... % Rivera, Passo del Ceneri 000003 000812 8591817 000004 000812 000000 8591817 % ... ... |
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:
... IC 1 A 0 IC 0 #014 % Code "IC", Kategorie 1, Tarifgruppe A, Ausgabesteuerung 0, Gattungsbezeichnung IC, Zuschlag 0 ICE 0 A 0 ICE 0 #015 % Code "ICE", Kategorie 0, Tarifgruppe A, Ausgabesteuerung 0, Gattungsbezeichnung ICE, Zuschlag 0 ... RUB 6 A 0 RUB 0 B #026 % Code "RUB", Kategorie 6, Tarifgruppe A, Ausgabesteuerung 0, Gattungsbezeichnung RUB, Zuschlag 0, Flag B (Schiff) ...
... <text> % Keyword für Textdefinition <Deutsch> % Sprache ist Deutsch class00 ICE/EN/CNL/ES/NZ/TGV/THA/X2 % Produktklasse 00 steht für ICE, EN, usw. class01 EuroCity/InterCity/ICN/InterCityNight/SuperCity % Produktklasse 01 steht für EuroCity, InterCity, usw. class02 InterRegio/PanoramaExpress % Produktklasse 02 steht für InterRegio, PanoramaExpress ...
... option10 nur Direktverbindungen % Option 10 steht für nur Direktverbindungen option11 Direkt mit Schlafwagen* % Option 10 steht für Direkt mit Schlafwagen option12 Direkt mit Liegewagen* % Option 10 steht für Liegewagen ...
... category014 InterCity % Kategorie 14 steht für InterCity category015 InterCityExpress % Kategorie 15 steht für InterCityExpress ... category026 Rufbus % Kategorie 26 steht für Rufbus ... |
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): ... Y 0 5 5 % Der Code Y gilt für den Fahrtabschnitt (0) mit Priorität 5 und Sortierung 5 YB 0 5 5 % s.o. für Code YB YM 0 5 5 % s.o. für Code YB ...
Beispiel (Ausschnitt): ... # Y Y Y % Attributcode Y soll als Y für Teilstrecke und als Y für Vollstrecke ausgegeben werden # YB YB YB % s.o. für Attributscode YB # YM YM YM % s.o. für Attributscode YM ...
Beispiel (Ausschnitte): ... <text> % Keyword für Textdefinition <deu> % Sprache ist Deutsch ... Y Zu Fuss % Code Y, mit Beschrieb Zu Fuss YB Zu Fuss und Bus % Code YB, mit Beschrieb Zu Fuss und Bus YM Zu Fuss und Metro % Code YM, mit Beschrieb Zu Fuss und Metro ... <fra> % Sprache ist Französisch ... Y A pied % Code Y YB A pied et en bus % Code YB YM A pied et en métro % Code YM ... |
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): ... 0000001 K ch:1:SLNID:33:1 % Linie 1, Linienschlüssel ch:1:SLNID:33:1 0000001 W interne Bezeichnung % Linie 1, interne Linienbezeichnung "interne Bezeichnung" 0000001 N T Kurzname % Linie 1, Linienkurzname "Kurzname" 0000001 L T Langname % Linie 1, Linienlangname "Langname" 0000001 D T Description % Linie 1, Linienbeschreibung "Description" 0000001 F 001 002 003 % Linie 1, Linienfarbe RGB 1, 2, 3 0000001 B 001 002 003 % Linie 1, Linienhintergrundfarbe RGB 1, 2, 3 0000001 H 0000002 % Linie 1, Hauptlinie 2 0000001 I TU 000000001 % Linie 1, Infotexttyp TU, Infotextnummer (s. INFOTEXT-Datei) ... 0000010 K 68 % Linie 10, Linienschlüsse 68 0000010 N T 68 % Linie 10, Linienkurzname 68 0000010 F 255 255 255 % Linie 10, Linienfarbe RGB 255, 255, 255 0000010 B 236 097 159 % Linie 10, Linienhintergrundfarbe RGB 236, 097, 159 ... |
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): ... R000011 Esslingen % Richtung 11 nach Esslingen R000012 Zollikerberg % Richtung 12 nach Zollikerberg R000013 Forch % Richtung 13 nach Forch R000014 Egg % Richtung 14 nach Egg ... |
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): ... 00379 K "SBB" L "SBB" V "Schweizerische Bundesbahnen SBB" % Betrieb-Nr 00379, kurz sbb, lang sbb, voll schweizerische bundesbahn sbb 00379 : 000011 % Betrieb-Nr 00379, TU-Code 000011 00380 K "SOB" L "SOB-bt" V "Schweizerische Südostbahn (bt)" % Betrieb-Nr 00380, kurz sob, lang sob-bt, voll schweizerische südostbahn (bt) 00380 : 000036 % Betrieb-Nr 00380, TU-Code 000036 00381 K "SOB" L "SOB-sob" V "Schweizerische Südostbahn (sob)" % Betrieb-Nr 00381, kurz sob, lang sob-sob, voll schweizerische südostbahn (sob) 00381 : 000082 % Betrieb-Nr 00381, TU-Code 000082 ... |
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): ... 8500009 Pregassona, Scuola Medialt;1> % HS-Nr 8500009 mit off. Bez. Pregassona, Scuola Media 8500010 Basel SBBlt;1>$BSlt;3>$Balelt;4>$Basilea FFSlt;4>$Basle SBBlt;4>$Bâle CFFlt;4> % HS-Nr 8500010 mit off. Bez. Basel SBB, lang. Bez. BS, etc. 8500016 Basel St. Johannlt;1>$BSSJlt;3> % HS-Nr 8500016 mit off. Bez. Basel St. Johann, Abkürzung BSSJ ...
Beispiel – Suche nach Basel anstatt “Basel SBB” (Ausschnitt): ... 0000021 Barcelonalt;1> % Hilfs-Hs-Nr. 000021, off. Bez. Barcelona 0000022 Basellt;1> % Hilfs-Hs-Nr. 000022, off. Bez. Basel 0000024 Bern Bümplizlt;1> % Hilfs-Hs-Nr. 000024, off. Bez. Bern Bümpliz ... |
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):
... *A Y % *A=Übergang, Y="Fussweg" (s. ATTRIBUT-Datei) 8500010 8500146 009 % Meta-HS-Nr. 8500010, HS-Nr. 8500146, Übergang-Minuten: 9 *A Y % *A=Übergang, Y="Fussweg" (s. ATTRIBUT-Datei) 8500010 8578143 006 % Meta-HS-Nr. 8500010, HS-Nr. 8578143, Übergang-Minuten: 6 ... 8389120: 8302430 8389120 % Gruppe: 8389120, umfasst: 8302430, und 8389120 8500010: 8500010 8500146 8578143 % Gruppe: 8500010, umfasst: 8500010, 8500146, und 8578143 8500016: 8500016 8592322 % Gruppe: 8500016, umfasst: 8500016, und 8592322 ... |
Stammdaten | Haltestellen Koordinaten | BFKOORD_*
*WGS84, *LV95 | Liste der Haltestellen mit ihren Geo-Koordinaten. Datei beinhaltet:
Beispiel (Ausschnitt): ...lv95-Datei: 8500009 2718660 1098199 0 % HS-Nr. 8500009 LV-Läng. 2718660 LV-Breit. 1098199 Höhe 0 //Pregassona, Scuola Media 8500010 2611363 1266310 0 % HS-Nr. 8500010 LV-Läng. 2611363 LV-Breit. 1266310 Höhe 0 //Basel SBB 8500016 2610076 1268853 0 % HS-Nr. 8500016 LV-Läng. 2610076 LV-Breit. 1268853 Höhe 0 //Basel St. Johann ...wgs84-Datei: 8500009 8.971045 46.024911 0 % HS-Nr. 8500009 LV-Läng. 8.971045 LV-Breit. 46.024911 Höhe 0 //Pregassona, Scuola Media 8500010 7.589563 47.547412 0 % HS-Nr. 8500010 LV-Läng. 7.589563 LV-Breit. 47.547412 Höhe 0 //Basel SBB 8500016 7.572529 47.570306 0 % HS-Nr. 8500016 LV-Läng. 7.572529 LV-Breit. 47.570306 Höhe 0 //Basel St. Johann ... |
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): .....bhfart % Beschränkungen 0000132 B 3 % Bahn-2000-Strecke % HS-Nr. 0000132 Auswahlbeschränkung 0000133 B 3 % Centovalli % HS-Nr. 0000133 Auswahlbeschränkung ... % Globale IDs ... 8500009 G a ch:1:sloid:9 % HS-Nr. 8500009, Typ: SLOID-HS, SLOID = ch:1:sloid:9 8500010 G a ch:1:sloid:10 % HS-Nr. 8500010, Typ: SLOID-HS, SLOID = ch:1:sloid:10 8500016 G a ch:1:sloid:16 % HS-Nr. 8500016, Typ: SLOID-HS, SLOID = ch:1:sloid:16 .....bhfart_60 % Beschränkungen 0000132 B 3 % Bahn-2000-Strecke % HS-Nr. 0000132 Auswahlbeschränkung 0000133 B 3 % Centovalli % HS-Nr. 0000133 Auswahlbeschränkung ... % Globale IDs ... 8500010 G A ch:1:sloid:10 % HS-Nr. 8500010, Typ: SLOID-HS, SLOID = ch:1:sloid:10 8500010 G a ch:1:sloid:10:3:5 % HS-Nr. 8500010, Typ: SLOID-Steig, SLOID = ch:1:sloid:10:3:5 8500010 G a ch:1:sloid:10:22:35 % HS-Nr. 8500010, Typ: SLOID-Steig, SLOID = ch:1:sloid:10:22:35 8500010 G a ch:1:sloid:10:3:6 % ... 8500010 G a ch:1:sloid:10:2:4 % ... 8500010 G a ch:1:sloid:10:4:8 % ... 8500010 G a ch:1:sloid:10:4:7 % ... 8500010 G a ch:1:sloid:10:7:15 % ... 8500010 G a ch:1:sloid:10:8:16 % ... 8500010 G a ch:1:sloid:10:7:14 % ... 8500010 G a ch:1:sloid:10:5:10 % ... 8500010 G a ch:1:sloid:10:6:11 % ... 8500010 G a ch:1:sloid:10:6:12 % ... 8500010 G a ch:1:sloid:10:0:20 % ... 8500010 G a ch:1:sloid:10:21:30 % ... 8500010 G a ch:1:sloid:10:21:31 % ... 8500010 G a ch:1:sloid:10:2:3 % ... 8500010 G a ch:1:sloid:10:1:1 % ... 8500010 G a ch:1:sloid:10:1:2 % ... 8500010 G a ch:1:sloid:10:22:33 % ... 8500010 G a ch:1:sloid:10:8:17 % ... 8500010 G a ch:1:sloid:10:0:19 % HS-Nr. 8500010, Typ: SLOID-Steig, SLOID = ch:1:sloid:10:0:19 8500010 G a ch:1:sloid:10:5:9 % HS-Nr. 8500010, Typ: SLOID-Steig, SLOID = ch:1:sloid:10:5:9 ... 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):
... 8500009 16 Pregassona, Scuola Media % HS-Nr. 8500009 Prio Niedrig (16) 8500010 4 Basel SBB % HS-Nr. 8500010 Prio Erhöht (4) 8500016 16 Basel St. Johann % HS-Nr. 8500016 Prio Niedrig (16) ... |
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): ... 8500009 30 Pregassona, Scuola Media % HS-Nr. 8500009 Umstiegprio. 30 in Pregassona 8500010 5000 Basel SBB % HS-Nr. 8500009 Umstiegprio. 5000 in Basel SBB -> somit ein bevorzugter Umstiegsort 8500016 23 Basel St. Johann % ... ... |
Fahrplandaten | Gleis- bzw. Bussteiginformation | GLEISE_*
*WGS, *LV95 |
Liste der Gleis- bzw. Bussteiginformationen. Datei beinhaltet:
Beispiel (Ausschnitt): ... 8500010 000003 000011 #0000001 053751 % HS-Nr. 8500010, Fahrt-Nr. 3, TU-Code 11 (SBB), Link #1, keine Verkehrszeit, Verkehrstage-bit: 053751 (s. BITFELD-Datei) 8500010 000003 000011 #0000002 053056 % ... 8500010 000003 000011 #0000003 097398 % ... 8500010 000003 000011 #0000001 001345 % HS-Nr. 8500010, Fahrt-Nr. 3, TU-Code 11 (SBB), Link #1, keine Verkehrszeit, Verkehrstage-bit: 001345 (!) anders als erste Zeile! ... 8014413 005338 8006C5 #0000001 075277 % ... 8014331 005338 8006C5 #0000003 0025 049496 % HS-Nr. 8014331, Fahrt-Nr. 5338, TU-Code 8006C5 (DB Regio), Link #3, Verkehrszeit 00:25, Verkehrstage-bit: 049496 (s. BITFELD-Datei) 8014281 005339 8006C5 #0000002 080554 % ... ...
Bezeichnung ... 8500010 #0000004 G '9' % HS-Nr. 8500010, Link #4, Gleis "9" 8500010 #0000001 G '11' % HS-Nr. 8500010, Link #4, Gleis "11" -> Übereinstimmung mit Erster und vierter Zeile im Beispiel oben!, d.h. die beiden mit unterschiedlichen Gültigkeiten beziehen sich auf Gleis 11 8500010 #0000003 G '12' % ... ... 8014330 #0000001 G '2' % ... 8014331 #0000001 G '1' % ... 8014331 #0000002 G '2' % ... 8014331 #0000003 G '3' % HS-Nr. 8014331, Link #3, Gleis "3" -> Übereinstimmung mit zweiter Zeile im Zweiten Abschnitt im Beispiel oben! 8014332 #0000002 G '1' % ... ... 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): ... 8500207 #0000001 G '1' % Hs-Nr. 8500207, Link #1, Gleis "1" 8500207 #0000001 A 'AB' % Hs-Nr. 8500207, Link #1, Gleis-Abschnitt "AB" <-> Die verlinkte Fahrt hält an Gleis 1, Abschnitt AB (Tripel HS-Nr., Link, Bezeichnungen) 8503000 #0000002 G '13' % ... 8574200 #0000003 G '' % Hs-Nr. 8574200, Link #3, Gleis "" <-> Gleis hat keine explizite Bezeichnung am Ort 8574200 #0000003 g A ch:1:sloid:74200:1:3 % Hs-Nr. 8574200, Link #3, SLOID "ch:1:sloid:74200:1:3" <-> Gleis "" hat SLOID wie beschrieben 8574200 #0000003 k 2692827 1247287 680 % Hs-Nr. 8574200, Link #3, Koordinaten 269.. 124.. Höhe 680 <-> Gleis "" mit SLOID hat Koordinaten wie beschrieben ... |
Umsteigdaten | Umsteigezeit zwischen Fahrten | UMSTEIGZ | Liste der Fahrten-Paare, die eine besondere Umsteigebeziehung haben. Datei beinhaltet:
Beispiel (Ausschnitt): ... 1106587 020525 80_BOD 020461 80_BOD 000 Bad Schussenried, Bürgerstüble % HS-Nr 1106587, Fahrt-Nr 020525, TU-Code 80_BOD, Fahrt-Nr 020461, TU-Code 80_BOD, Umsteigezeit 0, HS-Name "Bad..." 8500218 002351 000011 002345 000011 002 056682 Olten % HS-Nr 8500218, Fahrt-Nr 002351, TU-Code 000011, Fahrt-Nr 002345, TU-Code 000011, Umsteigezeit 2, Verkehrstage 056682, HS-Name "Olten" 8500218 002351 000011 030351 000011 001 053724 Olten % HS-Nr 8500218, Fahrt-Nr 002351, TU-Code 000011, Fahrt-Nr 030351, TU-Code 000011, Umsteigezeit 1, Verkehrstage 053724, HS-Name "Olten" 8500218 031391 000011 031395 000011 003 020311 Olten % HS-Nr 8500218, Fahrt-Nr 031391, TU-Code 000011, Fahrt-Nr 031395, TU-Code 000011, Umsteigezeit 3, Verkehrstage 020311, HS-Name "Olten" 8500309 002058 000011 008421 000011 006 Brugg AG % ... ... |
Umsteigedaten | Umsteigezeit an einer Haltestelle | UMSTEIGB | Allgemeine Umsteigezeit bzw. pro Haltestelle. Die Datei beinhaltet:
Beispiel (Ausschnitt): 9999999 02 02 STANDARD % Standard Umsteigezeit 2
Beispiel (Ausschnitt): ... 8389120 05 05 Verona, stazione FS % HS-Nr 8389120, Umsteigzeit IC-IC = 5, Umsteigzeit sonst = 5, HS = Verona 8500010 05 05 Basel SBB % HS-Nr 8500010, Umsteigzeit IC-IC = 5, Umsteigzeit sonst = 5, HS = Basel 8500020 03 03 Muttenz % HS-Nr 8500020, Umsteigzeit IC-IC = 3, Umsteigzeit sonst = 3, HS = Muttenz ... |
Stammdaten | Umsteigezeit zwischen Linien | UMSTEIGL | Umsteigezeit pro Angebotskategorie und/oder Linie. Die Datei beinhaltet:
Beispiel (Ausschnitt): ... 1111145 sbg034 B 7322 H sbg034 TX 7322 H 000! Waldkirch (WT), Rathaus % HS-Nr 1111145, TU-Code sbg034, Angebotskategorie B, Linie 1, Richtung Hin, ... 1111145 sbg034 TX 7322 H sbg034 B 7322 H 000! Waldkirch (WT), Rathaus % HS-Nr 1111145, TU-Code sbg034, Angebotskategorie TX, Linie 1, Richtung Hin, ... 1111145 sbg034 TX 7322 H sbg034 TX 7322 H 000! Waldkirch (WT), Rathaus % ... 8301113 000011 S * * 007000 B * * 003 Luino (I) % ... 8301113 007000 B * * 000011 S * * 003 Luino (I) % ... 8500010 000011 EC * * 000011 TER * * 010 Basel SBB % ... 8500010 000011 EC * * 085000 TER * * 010 Basel SBB % ... 8500010 000011 EXT * * 000011 TER * * 010 Basel SBB % HS-Nr 8500010, TU-Code 11, Angebotskategorie EXT, alle Linien, alle Richtungen, ... ... |
Stammdaten | Umsteigezeit zwischen Transportunternehmen | UMSTEIGV | Umsteigezeit zwischen zwei Transportunternehmen:
Beispiel (Ausschnitt): ... 8101236 007000 085000 02 Feldkirch % HS-Nr 8101236, TU-Code 7000, TU-Code 85000, Mindestumsteigzeit 2, HS-Name Feldkirch 8101236 81____ 007000 02 Feldkirch % ... 8500065 000037 000037 00 Ettingen, Dorf % HS-Nr 8500065, TU-Code 000037, TU-Code 000037, Mindestumsteigzeit 0, HS-Name Ettingen, Dorf ... |