Skip to content

Formationsdaten

Stand September 2024.  Informationen zu kontinuierlichen Anpassungen findest Du in unserem Changelog.

Hintergrund

Was sind Formationsdaten?

Formationsdaten sind Informationen zu den Wagen (und Loks) eines Zuges. Sie beinhalten nicht nur die Position der einzelnen Wagen eines Zuges, sondern auch ihre Eigenschaften. Bspw. kann man mit den Formationsdaten herausfinden, welcher Wagen eines spezifischen Zuges (bspw. Zugnummer 1234) einen Niederflurzugang bereitstellt, d.h. einen einfachen Zugang von Rollstühlen oder mit Kinderwägen erlaubt.

Wer steckt dahinter?

Der Dienst wird durch das Team Systemaufgaben Kundeninformation Plus (SKI+) im Auftrag des Bundesamts für Verkehr (BAV) in der Schweiz bereitgestellt

Die Formationsdaten werden uns über die SBB bereitgestellt. Ausserdem nutzen wir, um die Daten mit mehr Informationen zu füllen auch das Echtzeitdatensystem der Systemaufgaben Kundeninformation (SKI), genannt “CUS”.

Warum bietet die Open Data-Plattform das an?

Daten über den Typ der Wagen, aber vor allem über Eigenschaften wie Niederflurzugänge, erlauben es DatenkonsumentInnen Dienste für Endnutzer bereitzustellen, wie bspw. für NutzerInnen mit Einschränkungen. Andere Eigenschaften wie die Verfügbarkeit einer Ruhezone, die Erreichbarkeit von bestimmten Wagen aus anderen Wagen heraus erlauben zudem ein verbessertes Reiseerlebnis.

Wie komme ich an die Daten/Schnittstellen ran?

Daten

Die Formationsdaten werden als Schnittstelle bereitgestellt, dementsprechend gibt es keinen Datei-Download

Schnittstellen

Die Formationsdaten werden hier bereitgestellt: https://opentransportdata.swiss/dataset/formations

Fachliche Beschreibung

Die Formationsdaten können, je nach Anwendungsfall, auf zwei Grundarten abgefragt werden, die wir im folgenden genauer erläutern möchten:

  • Halt-basiert: das bedeutet, für jede Haltestelle entlang dessen ein Zug fährt wird die Formations ausgegeben. Ein möglicher Anwendungsfall wäre die Formation eines Zuges auf einem Gleis für eine spezifische Haltestelle anzuzeigen. Diese Abfrage beinhaltet nicht alle Details zu jedem Wagen.
  • Fahrzeug-basiert: das bedeutet, für jeden Wagen/jede Lok eines Zuges wird der Pfad entlang der verschiedenen Haltestellen ausgegeben. Zudem werden Details für jeden Wagen ausgegeben. Ein möglicher Anwendungsfall ist die Verfolgung eines spezifischen Wagens. Diese Abfrage beinhaltet nicht die Gesamtsicht auf den Zug entlang der Haltestellen.
    • Wichtig: die Beschränkungen für diese Daten beachten!
  • Es gibt eine dritte Abfrageform – die “volle”: bei dieser Variante kann man die Daten Halt- und Fahrzeug-basiert abfragen.

Beschränkungen

  1. Die Daten beschränken sich auf die Eisenbahnverkehrsunternehmen (EVU) die ihre Formationen über die Schweizerischen Bundesbahnen (SBB) bereitstellen und der Veröffentlichung ihrer Daten als Open Data zugestimmt haben.
  2. Der Dienst stellt nur dann alle Daten und die Fahrzeug-basierten Daten zur Verfügung, wenn alle Quellen (siehe Anmerkung 1) über alle erforderlichen Daten verfügen. Dies ist besonders wichtig, wenn man bedenkt, dass CUS nur Daten für heute + 3 Tage hat.
  3. Konkret stammen die Daten stammen aus dem SKI-Echtzeitsystem (CUS – CUstomer (Information) System – VerkehrsMittel (VM)) und den Formation-Services (FOS) der SBB.

Technische Beschreibung

Zugriff auf das API

Um die API/Schnittstelle nutzen zu können braucht es einen Token. Dieser Token kann über das Developer Portal bezogen werden.

Die spezifischen Endpunkte

Die drei oben beschriebenen Endpunkte können über die folgenden URLs abgerufen werden:

  • https://api.opentransportdata.swiss/formations_stop_based
  • https://api.opentransportdata.swiss/formations_vehicle_based
  • https://api.opentransportdata.swiss/formations_full

Die Parameter sind wie folgt:

Parameter Wertbeschrieb und Beispielswert
evu Das EVU für das die Anfrage gestellt werden soll. Derzeit erlaubt: BLSP
operationDate Das Datum an dem der Zug fährt und für das man die Anfrage stellen will. Bspw. 2024-09-18
trainNumber Die Zugnummer für das man die Formationsdaten abfragen möchte. Bspw. 2806
includeOperationalStops Ob die betrieblichen (für die KundInnen idR nicht relevanten!) halte mit ausgegeben werden sollen. Bspw. false

Eine Beispielanfrage wäre somit: https://api.opentransportdata.swiss/formations_stop_based?evu=BLSP&operationDate=2024-09-18&trainNumber=2806&includeOperationalStops=false

Wir werden an dieser Stelle nicht das vollständige Datenmodell beschreiben, sondern stattdessen auf das folgende YAML verweisen: formations_yaml_change_file_ending (Datei ist ein “.txt”, muss in “.yaml” geändert werden).

[ggf. wird an dieser Stelle zukünftig eine Swagger-Dokumentation bereitstehen]