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 ReihungWeiß nicht welcher ICE Typ einfährtWeiß nicht ob ICE Redesign (für ICE 3)Kann keine Infos über Sitzplätze gebenKeine Infos über Bahn.Comfort Lage, Ruheabteil oder KleinkindabteilGleis 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?
Bahn API Chaos
By marudor
Bahn API Chaos
#GPN19 talk
- 649