SBB Visualized


Eine Webapplikation entwickelt zur Visualisierung von Daten der Schweizerischen Bundesbahnen (SBB).
Erstellt durch Boris Djakovic und Marc Bratschi mithilfe der JavaScript-Bibliothek D3.js im Rahmen der Open Data Vorlesung an der Universität Bern im Frühlingssemester 2016.

Bahnhofdaten

Passagierfrequenzen nach Bahnhöfen

Mit dieser interaktiven Bubble Chart soll das Passagieraufkommen der Schweizer Bahnhöfe im Jahr 2014 visualisiert werden. Hierbei wurden die Ein- respektive Aussteiger aller wesentlichen Transportunternehmen wie SBB, BLS, Lyria SAS und RhB erfasst.

Wird der Cursor auf einen der Kreise gefahren, wird sogleich der Name des Bahnhofes sowie das entsprechende Passagieraufkommen angezeigt. Abhängig davon, welche Option angeklickt wird, wird entweder das durchschnittliche werktägliche Verkehrsaufkommen (DWV) oder das durchschnittliche tägliche Verkehrsaufkommen (DTV) visualisiert.

Deutlich erkennbar ist Zürich HB der am stärksten frequentierte Bahnhof der Schweiz. Mit grossem Abstand folgen die Hauptbahnhöfe in Bern, Basel, Lausanne, Winterthur und Luzern. Unmittelbar danach folgen mit Zürich Oerlikon und Zürich Stadelhofen bereits die nächsten Zürcher Bahnhöfe sowie der Bahnhof Olten. Das grosse Passagieraufkommen in Olten mag auf den ersten Blick erstaunen, ist Olten doch eine verhältnismässig kleine Ortschaft. Allerdings stellt der Bahnhof Olten zwischen den Zentren Zürich, Basel, Bern und Luzern einen bedeutenden Knotenpunkt dar.


Quelle Daten: https://sbb.opendatasoft.com/explore/dataset/passagierfrequenz/export/

Quelle D3.js-Visualisierung: http://bl.ocks.org/mbostock/4063269


Mit einer Bar Chart soll der Unterschied zwischen dem durchschnittlichen täglichen (DTV) und dem durchschnittlichen werktäglichen Passagieraufkommen (DWV) anhand der 20 grössten Schweizer Bahnhöfe verdeutlicht werden.

Durch platzieren des Cursors auf den Balken, zum Beispiel jenen von Zürich HB, werden sogleich die täglichen und werktäglichen Passagierfrequenzen des Züricher Hauptbahnhofs angezeigt. Unterhalb der Darstellung besteht die Option den täglichen oder werktäglichen Verkehr oder gar beide auszublenden.

Anhand der Bar Chart ist nun deutlicher Erkennbar, dass das durchschnittliche werktägliche Passagieraufkommen höher ist als das durchschnittliche tägliche Passagieraufkommen. Dies ist grösstenteils wohl auf Berufstätige, Studenten und Schüler zurückzuführen, die vor allem an den Werktagen (Montag bis Freitag) den öffentlichen Verkehr beanspruchen. Am Wochenende hingegen sind zum Beispiel weniger berufstätige Pendler anzutreffen und dies drückt den Schnitt des täglichen Passagieraufkommens.


Quelle: https://sbb.opendatasoft.com/explore/dataset/passagierfrequenz/export/

Quelle C3.js-Visualisierung: http://c3js.org/samples/chart_bar.html


Services

Anhand dieses Collapsible Intended Tree sollen am gewünschten Bahnhof mit einem Klick alle verfügbaren Services wie Geldwechsel, Gepäckaufbewahrung oder Fundbüros sichtbar gemacht werden.

Wird zum Beispiel der Bahnhof Aarau angeklickt, erscheint sofort eine Übersicht aller verfügbaren Services dieses Bahnhofs, nämlich Check-in am Bahnhof, Gepäck-Service, Eventtickets, Geldwechsel, Billett-Services und Western Union.


Quelle: https://sbb.opendatasoft.com/explore/dataset/service/export/

Quelle D3.js-Visualisierung: http://bl.ocks.org/mbostock/1093025


Nebenbetriebe

Mithilfe dieses Collapsing Trees soll mit einem Klick gezeigt werden, welche Nebenbetriebe am gewünschten Bahnhof verfügbar sind.

Werden weitere Informationen zum Bahnhof Aigle gewünscht, wird einfach auf "Aigle" geklickt und alle Nebenbetriebe wie der Mietwagenstand (Europcar), der Taxistand oder der Kiosk dieses Bahnhofes werden aufgelistet.


Quelle: https://sbb.opendatasoft.com/explore/dataset/nebenbetriebe/export/

Quelle D3.js-Visualisierung: http://mbostock.github.io/d3/talk/20111018/tree.html


Zugfrequenzen

Die Folge Karte stellt das Zugstreckennetz der Schweiz dar. Durch platzieren des Cursors auf einem Streckenabschnitt wird die entsprechende Anzahl Züge pro Tag dieses Streckenabschnitts angezeigt. Um sich einen bestimmten Abschnitt genauer anzeigen zu lassen, kann auf die Zoomfunktion zurückgegriffen werden. Ausserdem hat die Karte eine Suchfunktion, mit der bestimmte Ortschaften gesucht werden können.



Quelle: Cartograph

Mit dem folgenden Circle Packing wurde versucht, die Zugfrequenz der Strecken sowie der einzelnen Streckenabschnitte zu visualisieren. Wird der Cursor auf einen der Kreise platziert, erscheint ein Tooltip, das den Namen der entsprechenden Strecke sowie die Anzahl Züge auf dieser Strecke pro Tag offenbart. Wird der Cursor auf einen kleineren Kreis dieser Strecke gefahren, wird der entsprechende Streckenabschnitt, der Name der Strecke sowie das Zugaufkommen auf diesem Streckenabschnitt angezeigt.

So stellt zum Beispiel der grösste Kreis die Strecke Genève Aéroport - Lausanne dar. Innerhalb dieses Kreises sind kleinere Kreise, die die einzelnen Streckenabschnitte darstellen und das entsprechende Zugaufkommen auf diesem Streckenabschnitt aufzeigen.


Quelle: https://sbb.opendatasoft.com/explore/dataset/zugzahlen/export/

Quelle D3.js-Visualisierung: http://bl.ocks.org/mbostock/4063530


Interpretation

Konzept und Dokumentation

Zur Erstellung der Webapplikation und der Visualisierungen stellte uns unser Data Coach Christian Trachsel von der SBB eine Vielzahl an Datensätzen zu Perrons, Haltestellen und Passagierfrequenzen der Schweizer Bahnhöfe sowie Daten zum Rollmaterial oder den Zugfrequenzen zur Verfügung. Nach einer ersten Sichtung und Analyse der Daten, dachten wir zunächst an eine Visualisierung der Zugfrequenzen pro Streckenabschnitt mittels Geomapping. Ursprünglich war die Idee, das Schweizer Streckennetz darzustellen. Je nach Frequentierung sollte die Strecke entsprechend visuell hervorgehoben werden. Allerdings erwiesen sich sowohl das Präparieren des Datensatzes als auch das Geomapping als grössere Herausforderungen als erwartet. Deshalb entschieden wir uns, uns zumindest vorerst einem anderen Datensatz zu widmen.

Im weiteren Verlauf legten wir unseren Fokus auf den Datensatz zu den Passagierfrequenzen der Schweizer Bahnhöfe im Jahr 2014. Wir verfolgten die Absicht, mit unseren Visualisierungen das unterschiedliche Passagieraufkommen der verschiedenen Bahnhöfe zu verdeutlichen sowie das durchschnittliche werktägliche und das durchschnittliche tägliche Passagieraufkommen zu vergleichen. Nachdem klar war, welche Daten visualisiert erkundeten wir die D3.js- sowie die C3.js-Bibliothek und suchten passende Visualisierungsformen. Um primär die Passagierfrequenz der Bahnhöfe zu vergleiche, entschieden wir uns für eine Bubble Chart. Anhand der Bubble Chart ist sehr schön erkennbar, in welchem Verhältnis die Passagieraufkommen der einzelnen Bahnhöfe zu einander stehen. Ausserdem wollten wir die werktäglichen und die täglichen durchschnittlichen Passagierzahlen miteinander vergleichen. Der Unterschied war allerdings anhand der Bubble Chart nur schwer erkennbar. Deshalb entschieden wir uns, zusätzlich eine Bar Chart zu erstellten.

Unser nächster Ansatz war, Datensätze die aus Sicht der Kunden der SBB von Interesse sein könnten zu visualisieren. Dabei stiessen wir auf die Daten zu den angebotenen Services (Stand 16. Februar 2016) sowie den Nebenbetrieben (Stand 16. Februar 2016) an den Schweizer Bahnhöfen. Deshalb entschieden wir uns, zwei weitere informative Visualisierungen zu erstellen. Anhand dieser Visualisierungen soll der SBB-Kunde mit einem Klick die verfügbaren Services und Nebenbetriebe der SBB an einem bestimmten Bahnhof abfragen können. Der Datensatz zu den Nebenbetrieben war allerdings nicht komplett vollständig und dementsprechend standen uns nicht zu allen Bahnhöfen Daten zur Verfügung. Zur Darstellung der Daten zu den Services erstellten wir einen Collapsible Intended Tree. Die Daten zu den Nebenbetrieben werden durch einen Collapsing Tree dargestellt. Parallel zur Entwicklung der Visualisierungen befassten wir uns ausserdem fortlaufend mit der Erstellung der Webseite mithilfe von Bootstrap.

Zu den grössten Herausforderungen bei der Erstellung der Visualisierungen gehörten sicher das Präparieren der Daten und dementsprechend die saubere Erstellung der JSON-Dateien. Unter anderem mussten wir für die meisten Visualisierungen die zunächst als CSV-Dokument gespeicherten Daten zuerst in eine JSON-Datei konvertieren. Obwohl die Daten sowohl als Excel-, CSV- oder JSON-Datei zur Verfügung standen, mussten für die meisten von uns erstellten Visualisierungen die CSV-Dateien mithilfe eines Online-Tools in ein FLARE.JSON-Format konvertiert werden.

Nachdem die meisten Visualisierungen fertiggestellt waren, banden wir diese in die bereits vorbereitete Webseite ein. Das Layout der Webseite basiert auf dem Flathood Bootstrap Template.

Bedienungsanleitung

  1. Bubble Chart - Passagierzahlen
      Mouse-Over: Der durchschnittliche tägliche und werktägliche Verkehr wird durch die Positionierung der Maus auf den entsprechenden Daten visualisiert.
      Mouse-Click: Durch den Mouse-Click auf einen der Buttons werden entsprechend entweder die durchschnittlich werktäglichen oder durchschnittlich täglichen Passagierzahlen visualisiert.
  2. Bar Chart - Passagierzahlen
      Mouse-Over: Der durchschnittliche tägliche und werktägliche Verkehr wird durch die Positionierung der Maus auf den entsprechenden Daten visualisiert.
      Mouse-Click: Die täglichen und werktäglichen Daten können ein- und ausgeblendet werden.
  3. Collapsible Intended Tree - Services
      Mouse-Click: Die Daten zum im Menu gewählten Bahnhof werden durch anklicken des entpsrechenden Bahnhofes angezeigt..
  4. Collapsing Tree - Nebenbetriebe
      Mouse-Click: Die Daten zum im Menu gewählten Bahnhof werden durch anklicken des entpsrechenden Bahnhofes angezeigt.
  5. Circle Packing - Zugfrequenzen
      Mouse-Over: Die Daten zum gewünschten Streckenabschnitt werden durch Platzieren des Cursors auf dem entsprechenden Kreis angezeigt.

Erkenntnisse

Bubble & Bar Chart (Passagierfrequenz)

Beim interaktiven Bubble Chart wurden die Passagieraufkommen im Jahr 2014 visualisiert. Die Passagieraufkommen wurden durch den durchschnittlichen täglichen Verkehr (Montag bis Sonntag) und den durchschnittlichen werktäglichen Verkehr (Montag bis Freitag) unterteilt. Die Passagierfrequenzen wurden nach den gleichen Kategorien auch beim Bar Chart unterteilt.

Beide Visualisierungen, der Bubble Chart und der Bar Chart, zeigen deutlich, dass die Bahnhöfe Zürich HB und Bern eine grosse Passagierfrequenz gemäss Ein-und Aussteiger vorweisen, und dies mit einem grossen Abstand gegenüber den restlichen Bahnhöfen. Unter den Top 20 Bahnhöfen mit den grössten Passagierfrequenzen, sind fünf aus der Region Zürich (Zürich HB, Zürich Oerlikon, Zürich Stadelhofen, Zürich Hardbrücke, Zürich Flughafen und Zürich Altstetten).

Bei der Betrachtung der Daten muss man auch berücksichtigen, dass viele Bahnhöfe auch als Zwischenstationen (Knotenpunkte) dienen, darunter auch die grössten Bahnhöfe wie Basel SBB, Zürich HB und Bern, was einer der Gründe für das grosse Passagieraufkommen ist. Der Bar Chart fasst die Top 20 Bahnhöfe mit den grössten Passagierfrequenzen zusammen. Dabei ist deutlich erkennbar, dass der durchschnittliche werktägliche Verkehr (Montag – Freitag) grösser als der tägliche Verkehr (Montag – Sonntag) ist. Das liegt daran, dass während dem Wochenende (Samstag und Sonntag) die Transportwege weniger genutzt werden und dies den Durchschnitt runterzieht. Bei den vorhandenen Daten handelt es sich nur um die Anzahl der ein- und ausgestiegenen Passagiere. Die Finalen Daten, d.h. die Bahnhöfe, bei denen ein einzelner Passagier ein- und ausgestiegen ist, waren nicht gegeben, wodurch weitere Interpretationen nicht möglich waren.

Collapsible Intended Tree (Services) & Collapsing Tree (Nebenbetriebe)

Die verfügbaren Service-Leistungen vom Bahnhof werden anhand des Collapsible Intended Trees angezeigt. Durch die alphabetische Anordnung ist eine schnelle Orientierung möglich. Die grösseren Bahnhöfe, wie z.B. Basel SBB und Zürich HB, bieten bis zu dreizehn verschiedene Service-Angebote, wobei die kleineren Bahnhöfe durchschnittlich nur fünf vorweisen. Zu den wesentlichen Service-Leistungen gehören die Gepäckaufbewahrung, Eventticketverkauf, Geldwechselmöglichkeit und natürlich der Billett- und Abonnementenverkauf. Je grösser die Passagierfrequenz beim Bahnhof, desto grösser auch die Anzahl an verschiedenen Service-Leistungen. Dies liegt daran, dass die Nachfrage bei grossen Bahnhöfen nach zusätzlichen Leistungen grösser ist, als bei kleineren Bahnhöfen.

Ein ähnliches Bild sieht man bei den Nebenbetrieben anhand der Collapsing Tree Visualisierung. Je grösser der Bahnhof, desto mehr Nebenbetriebe sind vorhanden. Bei fast allen Bahnhöfen sind die wesentliche Nebenbetriebe vorhanden. Zu den wesentlichen Nebenbetrieben gehören eine Verpflegungsmöglichkeit, ein Geldautomat und weitere Transportmöglichkeiten (Taxi). Auch hier kann man die Quantität der Nebenbetriebe anhand von Angebot und Nachfrage erklären.

Circle Packing (Zugfrequenzen)

Die Anzahl Züge pro Streckenabschnitt wird durch ein Circle Packing dargestellt. Wird der Cursor auf einen der Kreise platziert, erscheint ein Tooltip, das den Namen der entsprechenden Strecke sowie die Anzahl Züge auf dieser Strecke pro Tag offenbart. Wird der Cursor auf einen kleineren Kreis dieser Strecke gefahren, wird der entsprechende Streckenabschnitt, der Name der Strecke sowie das Zugaufkommen auf diesem Streckenabschnitt angezeigt. Dabei ist erkennbar, dass Streckenabschnitte zwischen grösseren Ortschaft wie zum Beispiel Genève Aéroport und Lausanne deutlich stärker frequentiert sind als Streckenabschnitte zwischen kleineren Ortschaften.

Schlussfolgerung

Durch die Datenvisualisierung sind quantitativ grosse Datenmenge auf einfache, übersichtliche und kreative Weise dargestellt. Durch den Bubble und Bar Chart sind die Passagierfrequenzen der verschiedenen Bahnhöfe der Schweiz einfacher zu vergleichen und die Dimensionen sind einfacher ersichtlich.

Durch den Collapsible Intended Tree und Collapsing Tree wurden die verschiedenen Services und Nebenbetriebe alphabetisch und farbenfroh dargestellt. Dies ermöglicht eine schnellere und amüsantere Informationssuche. Leider fehlen noch einige Bahnhöfe mit den jeweiligen Nebenbetrieben (z.B. Zürich HB) weil die Daten nicht vorhanden waren.

Durch das Circle Packing soll dargestellt werden, wie stark die einzelnen Zugstrecken und Zugstreckenabschnitte der Schweiz frequentiert sind. Das Circle Packings liefert eine schöne Übersicht über die verschiedenen Strecken und deren Streckenabschnitte. Anhand der grösse des Kreises wird sofort ersichtlich, wie stark die Strecken im Vergleich frequentiert sind.


Daten und Quellen

Rohdaten
Passagierfrequenzen Link
Services Link
Nebenbetriebe Link
Zugfrequenzen Link
Visualisierungen
Bubble Chart Link
Bar Chart Link
Collapsible Intended Tree Link
Collapsing Tree Link
Circle Packing Link
Weitere Quellen
Flathood Bootstrap Link


Kontakt

Boris Djakovic
db.opendata@gmail.com

Marc Bratschi
db.opendata@gmail.com