Neue Webseite zur Situation bei der S-Bahn Stuttgart

Die S-Bahn Stuttgart beschäftigt ihre Nutzerinnen und Nutzer. Die einen schimpfen über ihre dauernden Verspätungen und häufigen Ausfälle, andere wiederum verfallen in Resignation. Im ungünstigsten Fall kehren sie der S-Bahn komplett den Rücken und steigen stattdessen wieder auf das Auto um.

Benjamin, der sich im Januar mit uns in Verbindung setzte, wählte einen anderen Weg, der mich ein wenig an mich selbst vor gut 10 Jahren erinnerte. Er wollte das Elend bei der S-Bahn Stuttgart nicht einfach tatenlos ertragen, sondern setzte sich hin und begann zu programmieren. Im Unterschied zu mir kann er das aber richtig gut und das Resultat kann sich wirklich sehen lassen.

Neue Livekarte der S-Bahn Stuttgart (Screenshot)

Neue Livekarte der S-Bahn Stuttgart (Screenshot)

Genug der Einleitung, lassen wir Benjamin nun lieber selbst zu Wort kommen.

Projektziel und Inspiration

Als häufiger Nutzer der S-Bahn Stuttgart habe ich mir immer etwas wie eine Livekarte mit den Zugpositionen gewünscht. Die offizielle Livekarte vom Verkehrsverbund Stuttgart hat jedoch den Nachteil, dass die Züge nur für einen kleinen Kartenausschnitt angezeigt werden und scheint mehr für Umstiege zwischen den Verkehrsmitteln optimiert zu sein. Um schnell einen Überblick über die S-Bahn Linien zu bekommen, finde ich den Kartenhintergrund störend. Bei der Suche nach Visualisierungen bin ich auf Projekte wie „LineTracker“ oder „Live Trainboard“ gestoßen, die Zugpositionen mit LEDs auf einer Platine anzeigen. Die Übersichtlichkeit dieser Darstellung ist gut, aber einmal hergestellt kann das Kartenlayout nicht auf neue Stationen, wie die bald angefahrene Mittnachtstraße, angepasst werden. Eine weitere Limitation ist, dass die LEDs die Zugpositionen nur direkt an Haltestellen und ohne Zugrichtung anzeigen können. Das Design dieser Darstellung fand ich aber passend und habe mich entschieden eine digitale Version davon zu entwerfen.

Woher die Daten?

Die Idee für die Visualisierung war da, jetzt fehlen noch die Livedaten. Für die Abfrage und Analyse von Bahndaten gibt es den Vortrag von D. Kriesel auf dem 36C3 BahnMining. Er musste aber seine Abfragen mit relativ großen Aufwand verteilen und beim Betreiber um Erlaubnis fragen, da er die generelle Fahrplanauskunfts-Schnittstelle bei der DB verwendet hat. Für den Nahverkehr in Baden-Württemberg gibt es jedoch eine andere Lösung. Bei Mobidata BW werden Mobilitätsdaten im Auftrag des Verkehrsministeriums zusammengeführt und als Open-Data bereitgestellt. Neben Fahrplandaten stehen dort mittels der Trias-Schnittstelle auch Liveverkehrsdaten aus ganz Baden-Württemberg zum Abruf bereit.

Abfrage und Auswertung

Die Trias-Schnittstelle ist relativ allgemein gehalten, man kann Routen zwischen zwei Haltestellen oder Geopositionen planen, Abfahrten in der näheren Umgebung suchen oder wenn man schon einen Verweis auf die Reise hat aktuelle Informationen dazu abrufen. Um die Echtzeitinformationen mit möglichst wenigen Abfragen zu ermitteln, nutze ich ein „Stop Event Request“ mit dem alle Abfahrten an einer Haltestelle abgefragt werden können. Praktischerweise erhält man mit den Zusatzparametern „IncludePreviousCalls“ und „IncludeOnwardCalls“ die Echtzeitdaten zu allen Halten im Linienverlauf der S-Bahnen, die durch die Station fahren. Für jede Station bekommt man somit die Ankunfts- und Abfahrtszeit nach Fahrplan, sowie die Echtzeitversion dieser Zeiten. Die Verspätung wird dann als Differenz von Echtzeit- zu Fahrplanzeiten am letzten Halt berechnet. Zusätzlich zur Verspätung soll meine Karte noch die Position der Züge zwischen den Stationen visualisieren können. Ist der Zug gerade zwischen zwei Stationen, beispielsweise eine S-Bahn, die 12:00 beim Hauptbahnhof abfährt und 12:02 beim Nordbahnhof ankommt, so wird sie um 12:01 genau in der Mitte der Strecke zwischen den beiden Halten verortet. Ausgefallene Halte werden so behandelt, dass die Züge mit den Fahrplanzeiten plus ihrer letzten Verspätung fortgesetzt werden, und dann zusätzlich als ausgefallen markiert werden. Das mache ich damit diese Fahrten weiterhin in den Rohdaten zur Erstellung von Diagrammen auftauchen, auf der Livekarte werden sie aber nicht angezeigt. Für Tages und Wochenauswertungen werden abgeschlossene Fahrten in eine Datenbank abgelegt.

Verfügbare Daten und Karten

Die alle fünf Minuten verarbeiteten Daten mit den aktuellen Zugpositionen stehen auf meiner Webseite als JSON-Datei zum Abruf bereit. Aus diesen wird auch die dort verfügbare Livekarte mit den nach Verspätung eingefärbten S-Bahnen erstellt sowie ein Balkendiagramm im Stil des S-Bahn-Chaos Monitors. Als Tages- und Wochenauswertungen kann die Durchschnittsverspätung und der Anteil der ausgefallenen Halte für jeden Bahnhof als Karte heruntergeladen werden. Noch in der Testphase befindet sich eine Karte, bei der den Streckensegmenten die jeweils dort entstandene Verspätung zugeordnet wird. Dabei wird die durch die Segmente verursachte Verspätung mit der entstandenen Verspätung des vorgelagerten Haltepunktes kombiniert. Ohne diesen Schritt sind Unterschiede zwischen den Linien auf der Stammstrecke aufgetreten, vermutlich liegt das daran, wie meine Datenquelle die Verspätungen misst. Für das identische Gleis werden sie in einem Fall der Strecke und im anderen Fall der Station zugeschrieben.

Ausblick

Ich bin weiterhin dabei, die S-Bahn-Live-Karte zu verbessern. Um einen Überblick zu aktuellen Störungen im S-Bahn Netz zu geben, versuche ich, ob ich die Störungsmeldungen von der VVS-Website in die Karte integrieren kann. Vielleicht als Warndreieck über den betroffenen Stationen? Ansonsten freue ich mich über Verbesserungsvorschläge oder weitere Visualisierungsideen. Falls jemand darauf aufbauend weitere Livekarten, z.B. für die U-Bahn oder andere Nahverkehrssysteme in Baden-Württemberg erstellen will, steht der gesamte Quellcode für die Auswertung und Kartenerstellung auf GitHub zum download.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert