User:Adjuva/ds100

From OpenStreetMap Wiki
Jump to navigation Jump to search

Daten

Die Deutsche Bahn hat im Rahmen ihrer Open-Data-Initiative das offizielle_Betriebsstellenverzeichnis (DS100, Richtlinie 100) veröffentlicht.

Nun liegt es nahe die Inhalte nach OpenStreetMap zu übernehmen bzw. die Inhalte zur Qualitäts- und Vollständigkeitskontrolle zu nutzen. Die ist ein Tagging-Vorschlag, wie man diese Ziele umsetzen kann.

Vorraussetzungen

Ich gehe von folgenden Vorraussetzungen aus, die beim Tagging berücksichtigt werden sollen

- mit railway=station und railway=halt werden nur Betriebsstellen mir Personenverkehr getaggt. Der genaue Grund dafür ist mir nicht bekannt.

- Die OpenStreetMap-Daten sollten so beschaffen sein, dass man allein aus ihnen die Ursprungsdaten wiederherstellen könnte

- es soll keine deutsche Sonderlösung entstehen, sondern das Tagging soll mit anderen Ländern kompatibel sein. Das schließt allerdings kleine Deutschland-spezifische Ergänzungen nicht aus.

Tagging

Ich schlage folgendes Schema vor. Das Schema berücksichtigt erst mal nur 11 Typen von Betriebsstellen, die unmittelbar mit dem Bahnbetrieb zu tun haben. Insgesamt enthält das Verzeichnis über 120 verschiedene Typen.

Grundlegendes

Die verschiedenen Typen von Betriebsstellen werden wie folgt auf den Schlüssel railway=* und ggf. auf den Schlüssel site=* abgebildet:

Typ Tag railway=* Tag site=* OSM-Element Bemerkung
Bf railway=station node neben Gleisen Bahnhof mit Personenverkehr
railway=yard node neben Gleisen Bahnhof mit Güterverkehr
railway=service_station node neben Gleisen Überholbahnhof, Abstellbahnhof, Betriebshof, Werk
railway=technical_station node neben Gleisen Bahnhof. In einem anderen Tagging-Schema vermutlich das Gleiche wie railway=service_station.
Bft railway=site oder passendes railway=* node neben Gleisen Bahnhofsteil. Siehe unten
Hp railway=halt node neben Gleisen Haltepunkt mit Personenverkehr
Abzw railway=junction node neben Gleisen Abzweigstelle
Üst railway=crossover node neben Gleisen Überleitstelle
Bk railway=blockpost node neben Gleisen oder closed way auf Stellwerk. Blockstelle
Dkst railway=blockpost site=Dkst node neben Gleisen oder closed way auf Stellwerk. Deckungsstelle, wenn es ein eigenes Stellwerksgebäude gibt
railway=site site=Dkst node neben Gleisen Deckungsstelle
Anst railway=spur_junction site=Anst node neben Gleisen Anschlussstelle
Awanst railway=spur_junction site=Awanst node neben Gleisen Ausweichanschlussstelle
Strw railway=site site=Strw node auf jedem Gleis Streckenwechsel
Gp railway=border node auf jedem Gleis Staatsgrenze
railway=owner_change node auf jedem Gleis Grenze zu einem anderen Eisenbahn-Infrafstruktur-Unternehmen
Bf Abzw wie bei Typ 'Bf' site=Abzw node neben Gleisen Sonderfall, der durch das zusätzliche site=Abzw gekennzeichnet wird. Der Bahnhof wird trotz des Leerzeichens im Typ durch genau einen Node dargestellt.
Bft Abzw railway=junction site=Abzw node neben Gleisen Sonderfall, der durch das zusätzliche site=Abzw gekennzeichnet wird. Der Bahnhofsteil wird trotz des Leerzeichens im Typ durch genau einen Node dargestellt.

Jedes Element enthält zusätzlich ein Tag railway:ref=*, in dem das Ds100-Kürzel steht. Das Kürzel besteht nur aus Großbuchstaben und doppelte Leerzeichen (bei Bahnhofsteilen kommen die vor) werden vermieden.

Mit einem Tag operator=* wird die Zugehörigkeit zum Konzern Deutsche Bahn gekennzeichnet. Typischerweise ist das operator=DB Netz AG oder für die regionalen Infrastrukturgesellschaften operator=DB RegioNetz Infrastruktur GmbH. Bei letzterem kann man zusätzlich auch noch das Teilnetz angeben wie operator=DB RegioNetz Infrastruktur GmbH; Kurhessenbahn oder operator=DB RegioNetz Infrastruktur GmbH; Erzgebirgsbahn.

Mehrere Typen

Es gibt Betriebsstellen, die mehr als einen Typ haben. In der Ds100 werden die Typen dann einfach durch Leerzeichen getrennt hintereinander gesetzt. Beispiele sind Haltepunkte, die zusätzlich auch Abzweigstelle, Blockstelle, Anschlussstelle oder Überleitstelle sein können. Auch kann ein Bahnhof zusätzlich auch betriebsfremde Anlagen wie ein Eisenbahnmuseum, eine Schifflandestelle (Schiffsanleger) oder eine Bushaltestelle umfassen.

In OpenStreetMap wird jeder Typ als einzelnes Element nach obiger Tabelle getaggt. Dabei werden diese Elemente implizit miteinander verbunden, indem sie alle das Gleiche DS100-Kürzel in railway:ref=* enthalten. Normalerweise wäre das eine Inkonsistenz in den Daten. Mit einem zusätzlichen Tag railway:ref:count=* wird darauf hingewiesen, dass das Absicht ist. In diesem Tag werden nach dem Schema <nr>/<anzahl> die einzelnen Elemente durchnummeriert. Zum Beispiel bekommt das erste von drei Elementen railway:ref:count=1/3 und das letzte railway:ref:count=3/3. Dies erscheint mir einfacher als extra dafür eine Relation anzulegen.

Mehrere Gleise

Bei den Betriebsstellen 'Gp' und 'Strw', die auf jedem Gleis getaggt werden, wird der gleiche Mechanismus mit dem Tag railway:ref:count=* benutzt, wie in obigen Kapitel bei 'Mehreren Typen'. Alle Nodes auf den Gleisen werden identisch getaggt und dann mit railway:ref:count=* durchnummeriert. Damit wird die Inkonsistenz, dass das gleiche Kürzel an mehreren Elementen auftaucht, beseitigt.

Bahnhofsteile

Bahnhofsteile sind Anlagen in einem Bahnhof, die ein eigenes DS100-Kürzel besitzen. Das können umfangreiche Bahnanlagen wie der Personen- oder Güterbahnhof sein, ein einzelnes Stellwerk, ein Haltepunkt oder eine Abzweigstelle sein.

In OpenStreetMap wird jeder Teil als einzelnes Element nach obiger Tabelle getaggt. Im Tag {tag|railway}} wird dabei der am besten passende Wert benutzt (z.B. railway=halt für einen Haltepunkt oder railway=yard für den Güterbahnhof. Wenn nichts passt kann man einfach railway=site benutzen.

Im Tag railway:ref=* wird das Kürzel des Bahnhofsteil eingetragen und im railway:ref:parent=* das Kürzel des gesamten Bahnhofs. Am Node für den ganzen Bahnhof ist nicht erkennbar, dass der Bahnhof Bahnhofsteile besitzt.

Ausnahme von der Regel

Eigentlich sollte ein Bahnhofteil nicht über weitere Betriebsstellen-Typen verfügen, aber tatsächlich trifft man in der DS100 die Kombination 'Bft Abzw' 47 mal an (und die Kombination 'Bf Abzw' 7 mal). Um aus den OSM-Daten diese beiden Sonderfälle wiederherstellen zu können müssen sie gesondert gekennzeichnet werden. Dazu wird das Tag site=Abzw hinzugefügt, das in diesen Fällen normalerweise fehlt.

Welchen betrieblichen Sinn es macht einen Bahnhof oder einen Bahnhofsteil noch zusätzlichen als Abzweigstelle zu kennzeichnen, erschließt sich mir nicht. In einem Bahnhof darf man alles was man in einer Abzweigstelle darf. Deswegen betrachte ich diese Typ-Kombination nur als einen eigenen Typ mit einem komischem Namen (nämlich mit Leerzeichen). Mit diesem Konzept wird der Umgang mit dieser Anomalie deutlich einfachen. Das Leerzeichen im Typ wird quasi zu einem geschütztem Leerzeichen.

Zielerreichung

Die oben genannten Anforderungen werden erfüllt:

- Die Tags railway=station und railway=halt werden nur bei Zugangsstellen des Personenverkehrs benutzt - egal ob eigene Betriebsstelle oder nur ein Bahnhofsteil.

- Durch das Tag

- Die Schlüssel railway:ref:parent=*, railway:ref:count=* und site=* ergänzen DS100-spezifische Informationen (z.B. bei railway=spur_junction den Unterschied zwischen Anst und Awanst oder bei [[Key:|]]=railway den zwischen Bk und Dkst. Das Tag railway=junction wird immer gleich benutzt - egal ob als eigene Betriebsstelle, verbunden mit einem Haltepunkt oder als Bahnhofsteil.

Werkzeuge

TODO