Bahn API Chaos

Ein Überblick über das Datenchaos Bahn

Was für Daten aggregierst du?

  • Stationsdaten
  • Abfahrts und Ankunfts Echtzeitdaten
  • Wagenreihung
  • Auslastungsprognose
  • Routen

Aber die Bahn macht doch jetzt Open Data?

Ja, aber...

Stationsdaten

Wie bekomm ich raus welche Stationen es gibt?

  • Haltestellendaten (CSV)
  • Stationsdaten (CSV)
  • StaDa - Stationsdaten
  • OpenDB
  • Hafas (ajax-getstop/mgate)
  • Timetable (noncd/OpenDB)
  • Favendo

Stationsdaten

Haltestellendaten (CSV)

  • Quelle: Open Data Portal
  • Kennt nur Deutsche Bahnhöfe
  • Dafür alle
  • Aktualisiert ~1x Jährlich (theoretisch)

Stationsdata (CSV)

  • Quelle: Open Data Portal
  • Kennt alle Deutschen Bahnhöfe
  • Aktualisiert ~1x Jährlich

StaDa - Stationsdaten

  • Quelle: Open Data Portal
  • Kennt nur Deutsche Bahnhöfe
  • Aber nicht alle
  • 100 requests/min
  • Gibt Bahnhofsinfos

OpenDB

  • Quelle: Erste Open Data API, braucht "Zugangsdaten"
  • War für ein "DBhack" in "Frankfurt" in "0316" gedacht
  • Kennt Bahnhöfe im Ausland
  • Kennt leider nicht alle in Deutschland
  • Inzwischen legacy

Hafas (ajax-getstop / mgate)

  • Quelle: bahn.de / DB Navigator
  • Kennt wirklich alle Bahnhöfe
  • Und alles andere an dem ÖPNV hält
     
  • OpenDB langsam & weniger features

Timetable (noncd/OpenDB)

  • Quelle: Bahnhofswebtafeln
  • Stationssuche zur Timetable API
  • Kennt alles an dem ein Deutscher Zug hält
  • Gibt nur genau 1 Result
     
  • OpenDB Variante 20 requests/min & langsam

Favendo

  • Quelle: Bahnhof Live app
  • Kennt die meisten deutschen Bahnhöfe
  • Sortiert resultate passend

Schreibweise Frankfurt

  • Frankfurt (M)
  • Frankfurt (Main)
  • Frankfurt(Main)
  • Frankfurt am Main
  • Frankfurt a.M.
  • FRANKFURT(MAIN)

Apis sind in sich nicht konsistent. Selber innerhalb werden verschiedene Schreibweisen benutzt.

Abfahrtsdaten

Wie bekomm ich raus welcher Zug demnächst bei mir ankommt oder abfährt?

HAFAS (Stationboard)

  • Quelle: DB Navigator
  • Gleiche Daten wie DB Navigator.
  • Etwas ungenau
  • "Unwichtiges" wird nicht angezeigt
  • Kann Verkehrsmittel filtern

 

Gibts auch als OpenDB Variante (Fahrplan). Nur ohne filtern in langsamer.

Timetable (IRIS)

  • Quelle: Bahnhofs Webtafeln
  • Viel XML, keine Doku
  • Dafür genaue Infos
  • Detaillierte Meldungen warum etwas im Zug passierte
  • Leider ohne den Freitext zu den Freitext Meldungen

Danke an @derfnull. Er hier viel Arbeit in reverse engineering gesteckt!

Timetable (OpenDB)

  • Weniger features als proprietäre
  • gleiches mieses XML
  • langsamer
  • nur 20 requests/min
  • etwas Doku, auch für IRIS Version gültig

Wagenreihung

Wie ist mein Fernverkehrszug gereiht?

Wagenreihung (DB Navigator)

  • Kann nur ICE Reihung
  • Weiß nicht welcher ICE Typ einfährt
  • Weiß nicht ob ICE Redesign (für ICE 3)
  • Kann keine Infos über Sitzplätze geben
  • Keine Infos über Bahn.Comfort Lage, Ruheabteil oder Kleinkindabteil
  • Gleis hat aktuellere Infos
  • Kann nur ICE Reihung
  • Weiß nicht welcher ICE Typ einfährt
  • Weiß nicht ob ICE Redesign (für ICE 3)
  • Kann keine Infos über Sitzplätze geben
  • Keine Infos über Bahn.Comfort Lage, Ruheabteil oder Kleinkindabteil
  • Gleis hat aktuellere Infos

Auslastungsprognose

Wie voll ist mein Zug?

Auslastungsradar

  • Vorreiter für die Auslastung im Navigator
  • Braucht "Zugangsdaten"
  • War für die "db" und "exklusiv" dafür gedacht
  • Glaskugel

HAFAS (Teil von TripSearch)

  • Dank Feedback erstellt
     
  • Jetzt einfach in HAFAS Routing integriert
     
  • Für meinen Fall jetzt anstrengender
     
  • Immer noch viel Glaskugel

Fazit

Ja es gibt Open Data. Nein es reicht nicht.

Fragen?

Made with Slides.com