OpenStreetMap

Bahnhöfe in OpenStreetMap

Posted by thomersch on 28 January 2014 in German (Deutsch).

Bahnhöfe in OSM

Wir beschäftigten uns gerade mit der Deutschen Bahn, was uns dazu verleitet hat, den Datensatz von OSM genauer zu betrachten.

Erst mal haben wir alle railway=station und railway=halt in eine Datenbank reingeholt und uns die Ergebnisse angesehen. Ein kleines Extrakt:

name
------------------------------------------------------------ 
Alexanderplatz - regional trains, S 5, S7, S75, U 2, U8, U5
Bleckede-Waldfrieden Draisinenbahn Haltestelle
München Airport Center (MAC) / Zentralbereich
Norddeich-Mole-Bushaltestelle-Behinderten-WC
Österreichischer Platz (WGV Versicherungen)
Eckartshaldenweg (HDI-Gerling Versicherung)
Österreichischer Platz (WGV Versicherungen)
Eckartshaldenweg (HDI-Gerling Versicherung)
MPSB Mecklenburg-Pommersche Schmalspurbahn
Betriebsbahnhof Mechterstädt-Sättelstädt

Bei der Analyse fallen direkt einige Dinge auf:

  • Die Bahnlinien gehören nicht in das name-Tag. Da das Gebäude (Zeile 1) ohnehin falsch war, ist es direkt rausgeflogen.
  • “Draisinenbahn” ist ganz klar eine Touristenattraktion und keine “richtige” Bahnanlage. Hier tendiere ich die Haltestelle mit usage=tourism zu taggen, da tourism=attraction aussagen könnte, dass ein Bahnhof auch eine Touristenattraktion ist.
  • Etwas wie “Österreichischer Platz (WGV Versicherungen)” ist eigentlich eine U-Bahn-Haltestelle und kein “echter” Bahnhof.

Wir haben also durchaus Probleme, die Bahnhöfe der klassischen Bahn “Deutsche Bahn” von sonstiger Infrastruktur auseinanderzuhalten. Hier würde es ggf. helfen, wenn Bahnhöfe der Deutschen Bahn durchgängig ein operator-Tag hätten. Peter sagte aber bereits, dass das eins der Ziele der OpenRailwayMap-Initiative wäre.

Vollständigkeitsanalyse

Außerdem wollten wir gleich prüfen, wie vollständig die Daten in OSM sind. Da habe ich mir die Daten von OpenPlanB zur Hand genommen, die angeblich unter ODbL stehen, aber nicht wirklich von OpenStreetMap verwendet werden können, weil die Deutsche Bahn empört war, wie man nur ihre Daten denn hacken könnte! Kurzum: Die Datenbank ist proprietär.

Nebeneinander legen der Daten dürfte uns aber keiner verbieten, solange wir sie nicht in OSM reinimportieren.

OpenStreetMap hat in Deutschland 5579 Bahnhöfe und 3361 Haltepunkte (insgesamt 8940), der Datensatz von OpenPlanB listet 10409. Da aber seltsamerweise OpenPlanB auch einige ausländische Bahnhöfe enthält und bei OSM teilweise Bahnhöfe mehrere Elemente mit dem Tag railway=station haben, ist hier nicht ganz auszumachen, wie vollständig unsere Daten sind. Es scheint aber so, dass wir recht weit sind.

Ein weiteres Problem ist, dass die Bezeichnungen in OpenStreetMap sind nicht immer mit den offiziellen Bezeichnungen der Deutschen Bahn decken, weshalb ein reines Vergleichen von Zeichenketten nur die halbe Geschichte erzählt, weswegen ich auch nach ähnlichen Zeichenketten im Datenbestand gesucht habe. Es gibt 4503 Bahnhofsbezeichnungen, die sich in beiden Datenbeständen befinden, also etwa 43 % aller OpenPlanB-Bahnhöfe. Außerdem gibt es 1468 Bahnhöfe, deren Bezeichnungen zu 80 % anderen Bezeichnungen der DB gleichen. Aufsummiert haben wir also eine Namensdeckung von etwa 57 %.

Disused

Es gibt zahlreiche Bahnstrecken und Bahnhöfe, die längst nicht mehr in Verwendung sind, die auch als solche mit disused=yes getaggt sind. So weit, so gut. Dennoch werden diese Element ganz normal von OSM.org gerendert und gleichwertig mit den in Betrieb befindlichen angezeigt.

Konklusionen

Es sieht nicht ganz schlecht aus. In Anbetracht der Tatsache, dass es so viele Bahnnerds im OSM-Umfeld gibt, sollte eine Harmonisierung der Nomenklaturen (Bezeichnungen der Bahnhöfe, Auszeichnung der Bahnhöfe der Deutschen Bahn) sowie der Strukturen (nur ein railway=station bzw. railway=halt pro Bahnhof sowie eine klarere Abgrenzung von Tourismus und verlassener Infrastruktur) nicht allzu schwer fallen.

— thomersch

Discussion

Comment from poppei82 on 29 January 2014 at 10:03

Hi!

Interessanter Blogeintrag! Die Namensdeckung könnte man durch die Internationale Bahnhofsnummer leichter überprüfen. Doch leider fehlt eine konsequente Pflege der Daten in der OSM-Datenbank. vgl.: http://www.michaeldittrich.de/ibnr/index.php

Comment from lasstmichinruhe on 29 January 2014 at 10:26

Gude!

sehr interessant. Also die Bahn verwendet intern/evtl. auch offen eine Nummerierung aller Stationen. Mir fällt die Bezeichung davon grad nicht ein. Ich glaube es hatte auch irgendwas mit Hafas zu tun. Jedenfalls wäre es m.E. äußerst sinnvoll auch für semiprofessionelle Anwendungen zwecks Routing im ÖV diese einheitliche Nummerierung zu verwenden.

Sollte das mit opensource nicht vereinbar sein, wäre es sicher zweckmäßig eine eigene Numerierung systemisch anzulegen und für allgemeinverbindlich in OSM zu erklären. (Bitte keine Schelte ich bin in der Thematik was Befehl und freier Wille angeht nicht ganz drin).

Die Namen sind letzlich eigentlich egal, da besteht Verwechslungsgefahr durch doppelte Ortsnamen, verschieden mögliche Zusätze usw.. Ich hoffe ich verstehe das Thema überhaupt richtig ^^. Also als Beispiel aus meiner Ecke wäre z.B. Heidesheim am Rhein. Das könnte man auf X-verschiedene Arten namentlich taggen. Heidesheim (Rh.) Heidesheim am Rhein Bahnhof, Heidesheim Bahnhof, Heidesheim. Whatever. Man braucht auf jeden Fall eine einheitliche Nummerierung mit System.

Das System sollte so erdacht werden, dass es möglichst unabhängig von bestehenden administrativen sich schnell ändernden Sturkturen abhängig ist. Also nicht an Kreis- oder Gemeindekennziffern etwa orientieren, ich weiss aus leidlicher Erfahrung wie einem Gebietsneuordnungen permanent Listen zerhacken. An Bundesländern kann man sich schon eher orientieren, die werden sich wohl so schnell nicht neu ordnen.

Also Beispiel: Man baut ein x-stelliges System auf: Beginnend mit dem Bundesland in dem die Station liegt:

01 SLH 02 HH 03 NS 04 HB 05 NRW 06 HE 07 RLP 08 BaWü 09 BY 10 SL 11 B 12 BB 13 MV 14 SN 15 SA 16 TH

usw. bis man eine z.B. 5-stellige eindeutige Nummer für jede Station in D. hat.

Theretisch könnte, bzw müsste man das aber eiegntlich auch für alle anderen Stationen des ÖV durchführen. In der Realität sind Stationen nämlich häufig von mehreren Verkehrsträgern genutzt. Im Rostocker HBF halten auch Straßenbahnen, die Bus- und Straßenbahnhaltestellen vor dem Mainzer HBF gehören auch zum HBF usw. Um vernünftig Planen zu können muss man die als eins erfassen. Okay jetz komm ich vom hundertsten ind tausendste. Ich lass des erstmal so stehen und schau ob ich nich am Thema vorbei geredet hab. Viele Grüße

Lasstmichinruhe (wenn ihr kleingeister seid ;)

Comment from thomersch on 29 January 2014 at 11:21

@poppel82 und @lasstmichinruhe: Auf jeden Fall schön, dass sich jemand damit auseinandersetzt - finde ich echt klasse, dass die Mapper das nicht umsonst machen :)

Disclaimer: Ich bin kein Bahn-Experte. Also haut nicht mich nicht, wenn ich Quatsch erzähle - ich bin noch lernfähig. Was ich soweit gehört und verstanden habe, ist, dass die Bahn eindeutige Strings für die Bahnhöfe hat, die durchgängig so verwendet werden. Es ist wohl auch ein Ziel, diese in OSM genau so zu führen, damit die Eindeutigkeit gegeben wird.

Die IBNR kannte ich noch nicht, wäre aber sicher eine Option, diese auch mit aufzuführen. Ein weitere Parameter, der von der Deutschen Bahn vergeben wird, ist das Betriebsstellenkürzel (z.B. Dresden Hauptbahnhof = DH). Diese sind teilweise in OSM schon unter dem Key railway:ref vorhanden, aber auch das soll noch vervollständigt werden, wie ich hörte.

Eine Einführung einer neuen Nummer halte ich tatsächlich für nicht so sinnvoll, weil wir damit keine Kompatibilität mit anderen herstellen könnten und wir erst einen Mechanismus aufbauen müssten, um IDs nicht mehrfach zu vergeben. Der Durchsuchbarkeit würde es auch nicht helfen, da niemand nach einem solchen String suchen würde – außer vielleicht ein paar eingefleischten Nerds ;)

Es gibt allerdings ein Taggingschema für Relationen public_transport=stop_area, das Elemente von stop und platform zusammenfasst. Dieses Schema wird z.B. in Dresden genutzt.

— thomersch

Comment from lasstmichinruhe on 29 January 2014 at 11:56

Servus nochmal,

jetzt hab ichs wieder. Genau das Kürzel hab ich gemeint, keine Nummer. War etwas durcheinander vorhin. Wenn man die Bahnhofskürzel verwenden kann wäre das natürlich zu bevorzugen. Im Endeffekt geht es ja auch nicht darum etwas händisch zu durchsuchen, sondern das man große Datenmengen automatisiert abfragen kann mittels Apps und sonstigen Programmen.

Falls man die Kürzel verwenden darf, wäre ich dabei, systematisch alle Bahnhöfe in D. auf die Art zu taggen. Die Kürzel gibts übrigens auch für Betriebsbahnhöfe, Rangierbahnhöfe und soweit ich mich erinnern kann auch für S- und U-Bahnhöfe in Berlin.

~~Lasstmichinruhe

Comment from thomersch on 30 January 2014 at 15:34

@lasstmichinruhe: Ich wüsste jetzt nicht, was dagegen sprechen würde, die Betriebsstellenkürzel zu übernehmen, solange wir hier keine kompletten Datenbanken spiegeln. Interessanterweise funktionieren diese Kürzel z.B. nicht in der Verbindungssuche der Deutschen Bahn und ich habe sie auch noch nicht in OpenPlanB gefunden. Ich werde mal bigbug21 fragen, woher man diese sonst beziehen kann.

— thomersch

Comment from malenki on 1 February 2014 at 11:33

Zu stillgelegen Bahnhöfen:
Da es keine Bahnhöfe mehr sind, kann man railway=station im Prinzip löschen. Ich ändere es lieber in disused:railway=station.
Wenn man nur disused=yes an das Objekt schreibt, kann das zum Einen mehrdeutig sein (z.B. am Bahnhofsgebäude), zum anderen wird das Tag nirgends ausgewertet. Dementsprechend findet man die so “stillgelegten” Bahnhöfe unerwünschterweise weiterhin in allen Anwendungen.

Das Bahnhofsgebäude kann natürlich weiterhin mit building=train_station gemappt werden.

Comment from dieterdreist on 6 February 2014 at 18:12

@malenki: +1, disused:= also der Präfix ist auf jedem Fall im Vergleich zu einem zusätzlichen tag wie disused=yes zu bevorzugen, um Verwechslungen und Fehlinterpretationen zu reduzieren. Dass disused=yes für stations nirgends ausgewertet wird, stimmt allerdings nicht, selbst auf der Hauptkarte hatte ich in Erinnerung, dass das berücksichtigt wird, die Erinnerung hielt einer Überprüfung allerdings nicht Stand, das tag wird zwar bei Kanälen und Bahngleisen ausgewertet, bei Bahnhöfen aber in der Tat nicht.

Comment from rayquaza on 6 February 2014 at 22:21

@dieterdreist: Habe ich auch so in Erinnerung, und früher war das wohl auch mal so, allerdings mit dem “falschen” disused=yes.

Log in to leave a comment