Mechanischer Edit an Eisenbahnsignalen in Deutschland

Hallo,

ich beabsichtige einen mechanischen Edit bezüglich des deutschen Signaltaggings durchzuführen und kündige diesen hiermit an.

Schon seit über drei Jahren werden Signale in Deutschland nach dem OpenRailwayMap-Taggingschema getaggt. Dennoch ist das Tagging der meisten Signale sehr DB-zentriert. Ein Hauptsignal wurde bis vor einigen Monaten als railway:signal:main=hp getaggt, ohne dem “hp” ein Betreiber-, Regelwerks- oder Länderpräfix voranzustellen. (Hp ist bei deutschen Eisenbahnen die Abkürzung für ein Hauptsignalbauart)

Dass das auf Dauer keine Lösung sein kann, war schon im August 2013 einigen klar. Es hat jedoch noch etwa ein Jahr gedauert, bis ein Präfix für alle Signale, egal ob in Deutschland oder im Ausland, eingeführt wurde. Seit einigen Monaten sind diese Präfixe jetzt auch in den OpenRailwayMap-Taggingvorlagen für JOSM implementiert.

Folgende Präfixe sind derzeit in Gebrauch:

  • DE-ESO:* für die Signale der DB (ESO = Eisenbahn-Signalordnung)
  • DE-KVB:* für die Signale, die bei den Kölner Verkehrsbetrieben zusätzliche Signalbilder anzeigen können oder andere Bedeutungen haben
  • DE-AVG:* dto. für die Albtal-Verkehrsgesellschaft
  • DE-HHA:* Signale der Hamburger Hochbahn
  • DE-BVG:* Signale der Berliner U-Bahn
  • DE-BOStrab:* für Straßenbahnsignale
  • AT-V2:* für Signale der Österreichischen Bundesbahnen, Vorschrift Nr. 2
  • AT-WLB:* für Signale der Wiener Lokalbahn, die nicht auch in der ÖBB-Vorschrift 2 zu finden sind
  • demnächst wohl noch CH-FdV:* für Signale bei der SBB (FdV steht für Fahrdienstvorschrift)
  • LV:* wird schon in Litauen verwendet

Neben der Einführung von Präfixen möchte ich im Rahmen dieses mechanischen Edits auch noch einige andere Harmonisierungen durchführen (siehe weiter unten).

Geplant sind folgende Änderungen wegen der Einführung der neuen Präfixe

  • railway:signal:main=hp → railway:signal:main=DE-ESO:hp
  • railway:signal:main:states=hp0;hp1;hp2 → Allen Teilen des Values wird “DE-ESO:” vorangestellt.
  • railway:signal:main=hl → railway:signal:main=DE-ESO:hl
  • railway:signal:main:states=hp0;hl1;hl2;hl3a;hl3b;hl4;hl5;hl6a;hl6b → Allen Teilen des Values wird “DE-ESO:” vorangestellt.
  • railway:signal:main=ks → railway:signal:main=DE-ESO:ks
  • railway:signal:main:states=hp0;ks1 → railway:signal:main:states=DE-ESO:hp0;DE-ESO:ks1
  • railway:signal:main:substitute_signal=dr:zs1 → railway:signal:main:substitute_signal=DE-ESO:dr:zs1
  • railway:signal:main:substitute_signal=db:zs1 → railway:signal:main:substitute_signal=DE-ESO:db:zs1
  • railway:signal:main:substitute_signal=db:zs7 → railway:signal:main:substitute_signal=DE-ESO:db:zs7
  • railway:signal:main:substitute_signal=db:zs12 → railway:signal:main:substitute_signal=DE-ESO:db:zs12
  • railway:signal:combined=hl → railway:signal:main=DE-ESO:hl
  • railway:signal:combined:states=hp0;hl1;hl2;hl3a;hl3b;hl4;hl5;hl6a;hl6b;hl7;hl8;hl9a;hl9b;hl10;hl11;hl12a;hl12b → Allen Teilen des Values wird “DE-ESO:” vorangestellt.
  • railway:signal:combined=ks → railway:signal:main=DE-ESO:ks
  • railway:signal:combined:states=hp0;ks1;ks2 → railway:signal:combined:states=DE-ESO:hp0;DE-ESO:ks1;DE-ESO:ks2
  • railway:signal:combined=sv → railway:signal:main=DE-ESO:sv
  • railway:signal:combined:states=hp0;sv1;sv2;sv3;sv4;sv5;sv6;sv0 → Allen Teilen des Values wird “DE-ESO:” vorangestellt.
  • railway:signal:combined:substitute_signal=dr:zs1 → railway:signal:combined:substitute_signal=DE-ESO:dr:zs1
  • railway:signal:combined:substitute_signal=db:zs1 → railway:signal:combined:substitute_signal=DE-ESO:db:zs1
  • railway:signal:combined:substitute_signal=db:zs7 → railway:signal:combined:substitute_signal=DE-ESO:db:zs7
  • railway:signal:combined:substitute_signal=db:zs12 → railway:signal:combined:substitute_signal=DE-ESO:db:zs12
  • railway:signal:distant=vr → railway:signal:main=DE-ESO:vr
  • railway:signal:distant:states=vr0;vr1;vr2 → Allen Teilen des Values wird “DE-ESO:” vorangestellt.
  • railway:signal:distant=hl → railway:signal:main=DE-ESO:hl
  • railway:signal:distant:states=hl1;hl4;hl7;hl10 → Allen Teilen des Values wird “DE-ESO:” vorangestellt.
  • railway:signal:distant=ks → railway:signal:main=DE-ESO:ks
  • railway:signal:distant:states=ks1;ks2 → railway:signal:distant:states=DE-ESO:ks1;DE-ESO:ks2
  • railway=buffer_stop + railway:signal:minor=sh0 → railway=buffer_stop + railway:signal:minor=DE-ESO:sh0
  • railway=buffer_stop + railway:signal:minor=sh2 → railway=buffer_stop + railway:signal:minor=DE-ESO:sh2
  • railway=derail + railway:signal:minor:states=sh0;sh1 → railway=derail + railway:signal:minor=DE-ESO:sh0;DE-ESO:sh1
  • railway:signal:crossing=bü → railway:signal:crossing=DE-ESO:bü
  • railway:signal:crossing:states=bü0;bü1 → -Allen Teilen des Values wird “DE-ESO:” vorangestellt.
  • railway:signal:crossing_distant=bü2 → railway:signal:crossing_distant=DE-ESO:bü2
  • railway:signal:crossing_distant=bü3 → railway:signal:crossing_distant=DE-ESO:bü3
  • railway:signal:whistle=db:bü4 → railway:signal:whistle=DE-ESO:db:bü4
  • railway:signal:ring=bü5 → railway:signal:ring=DE-ESO:bü5
  • railway:signal:electricity=el1v → railway:signal:electricity=DE-ESO:el1v
  • railway:signal:electricity=el1 → railway:signal:electricity=DE-ESO:el1
  • railway:signal:electricity=el2 → railway:signal:electricity=DE-ESO:el2
  • railway:signal:electricity=el3 → railway:signal:electricity=DE-ESO:el3
  • railway:signal:electricity=el4 → railway:signal:electricity=DE-ESO:el4
  • railway:signal:electricity=el5 → railway:signal:electricity=DE-ESO:el5
  • railway:signal:electricity=el6 → railway:signal:electricity=DE-ESO:el6
  • railway:signal:speed_limit_distant=lf1 → railway:signal:speed_limit_distant=DE-ESO:lf1
  • railway:signal:speed_limit=dr:lf1/2 → railway:signal:speed_limit=DE-ESO:dr:lf1/2
  • railway:signal:speed_limit=lf2 → railway:signal:speed_limit=DE-ESO:lf2
  • railway:signal:speed_limit=lf3 → railway:signal:speed_limit=DE-ESO:lf3
  • railway:signal:speed_limit_distant=db:lf4 → railway:signal:speed_limit_distant=DE-ESO:db:lf4
  • railway:signal:speed_limit_distant=dr:lf4 → railway:signal:speed_limit_distant=DE-ESO:dr:lf4
  • railway:signal:speed_limit=db:lf5 → railway:signal:speed_limit=DE-ESO:db:lf5
  • railway:signal:speed_limit=dr:lf5 → railway:signal:speed_limit=DE-ESO:dr:lf5
  • railway:signal:speed_limit_distant=lf6 → railway:signal:speed_limit_distant=DE-ESO:lf6
  • railway:signal:speed_limit=lf7 → railway:signal:speed_limit=DE-ESO:lf7
  • railway:signal:main=ne1 → railway:signal:main=DE-ESO:ne1
  • railway:signal:distant=db:ne2 → railway:signal:distant=DE-ESO:db:ne2
  • railway:signal:stop=ne5 → railway:signal:stop=DE-ESO:ne5
  • railway:signal:station_distant=ne6 → railway:signal:station_distant=DE-ESO:ne6
  • railway:signal:snowplow=ne7 → railway:signal:snowplow=DE-ESO:ne7
  • railway:signal:whistle=dr:pf1 → railway:signal:whistle=DE-ESO:dr:pf1
  • railway:signal:whistle=dr:pf2 → railway:signal:whistle=DE-ESO:dr:pf2
  • railway:signal:humping=ra → railway:signal:humping=DE-ESO:ra
  • railway:signal:humping:states=ra6;ra7;ra8;ra9 → railway:signal:humping:states=DE-ESO:ra6;DE-ESO:ra7;DE-ESO:ra8;DE-ESO:ra9
  • railway:signal:shunting=ra10 → railway:signal:shunting=DE-ESO:ra10
  • railway:signal:shunting=ra11 → railway:signal:shunting=DE-ESO:ra11
  • railway:signal:shunting:states=ra11;sh1 → railway:signal:shunting:states=DE-ESO:ra11;DE-ESO:sh1
  • railway:signal:shunting=ra11b → railway:signal:shunting=DE-ESO:ra11b
  • railway:signal:minor=sh → railway:signal:minor=DE-ESO:sh
  • railway:signal:minor:states=hp0;sh1 → railway:signal:minor:states=DE-ESO:hp0;DE-ESO:sh1
  • railway:signal:minor:form=semaphore + railway:signal:minor:states=sh0;sh1 → railway:signal:minor:form=semaphore + railway:signal:minor:states=DE-ESO:sh0;DE-ESO:sh1
  • railway:signal:minor=sh2 → railway:signal:minor=DE-ESO:sh2
  • railway:signal:distant=dr:so3 → railway:signal:distant=DE-ESO:dr:so3
  • railway:signal:crossing_distant=so14 → railway:signal:crossing_distant=DE-ESO:so14
  • railway:signal:crossing_distant=so15 → railway:signal:crossing_distant=DE-ESO:so15
  • railway:signal:crossing=so16 → railway:signal:crossing=DE-ESO:so16
  • railway:signal:crossing:states=so16a;so16b → railway:signal:crossing:states=DE-ESO:so16a;DE-ESO:so16b
  • railway:signal:distant=so106 → railway:signal:distant=DE-ESO:so106
  • railway:signal:brake_test=zp → railway:signal:brake_test=DE-ESO:zp
  • railway:signal:brake_test:states=db:zp6;db:zp7;db:zp8 → railway:signal:brake_test:states=DE-ESO:db:zp6;DE-ESO:db:zp7;DE-ESO:db:zp8
  • railway:signal:departure:states=zp9 → railway:signal:departure:states=DE-ESO:zp9
  • railway:signal:departure:states=zp10 → railway:signal:departure:states=DE-ESO:zp10
  • railway:signal:route=zs2 → railway:signal:route=DE-ESO:zs2
  • railway:signal:route_distant=zs2v → railway:signal:route_distant=DE-ESO:zs2v
  • railway:signal:speed_limit=zs3 → railway:signal:speed_limit=DE-ESO:zs3
  • railway:signal:speed_limit_distant=zs3v → railway:signal:speed_limit_distant=DE-ESO:zs3v
  • railway:signal:wrong_road=db:zs6 → railway:signal:wrong_road=DE-ESO:db:zs6
  • railway:signal:wrong_road=dr:zs7 → railway:signal:wrong_road=DE-ESO:dr:zs7
  • railway:signal:wrong_road=db:zs8 → railway:signal:wrong_road=DE-ESO:db:zs8
  • railway:signal:wrong_road=dr:zs8 → railway:signal:wrong_road=DE-ESO:dr:zs8
  • railway:signal:speed_limit=db:zs10 → railway:signal:speed_limit=DE-ESO:db:zs10
  • railway:signal:radio=zugfunk-kanalhinweis → railway:signal:radio=DE-ESO:zugfunk-kanalhinweis
  • railway:signal:crossing_info=bü-kennzeichentafel → railway:signal:crossing_info=DE-ESO:bü-kennzeichentafel
  • railway:signal:crossing_info=DE:bü-kennzeichentafel → railway:signal:crossing_info=DE-ESO:bü-kennzeichentafel

Änderungen, die nicht im Zusammenhang mit der Präfixeinführung stehen

Im Jahr 2008 wurde das Signal Gsp 2 bei der DB in Wn 7 umbenannt. Als das Taggingschema entwickelt wurde, wurde aber nicht die offizielle Richtlinie zu Rate gezogen, sondern eine privat betriebene Website (die etwas veraltet war). Daher möchte ich folgende Änderung durchführen:

  • railway=derail + railway:signal:minor:states=sh0;gsp2 → railway=derail + railway:signal:minor:states=DE-ESO:sh0;DE-ESO:wn7

Um dem Tagging die DB-Lastigkeit zu nehmen, haben wir beschlossen, Kennlichter anders zu taggen. Als Kennlicht wird ein weiße Licht bezeichnet, das aufleuchtet, wenn das Signal ausgeschaltet ist und vom Lokführer nicht wie ein gestörtes Signals zu behandeln ist (Fahrdienstleiter anrufen, Befehl einholen, …). Daher ist folgende Taggingänderung geplant:

  • railway:signal:distant:marker_light=yes → railway:signal:distant:states=* wird um “DE-ESO:kennlicht” ergänzt.
  • railway:signal:main:marker_light=yes → railway:signal:main:states=* wird um “DE-ESO:kennlicht” ergänzt.
  • railway:signal:combined:marker_light=yes → railway:signal:combined:states=* wird um “DE-ESO:kennlicht” ergänzt.

Im Juli 2014 wurde in Köln beschlossen, einige railway:signal:stop:description= durch railway:signal:stop:caption= zu ersetzen. (Das sind die kleinen Zusatzschilder, die auf Stationen unter den H-Tafeln hängen und angeben, für welche Zuglänge das Schild den Halteplatz markiert) Im Rahmen dieses mechanischen Edits möchte ich diese Änderung auch bei älteren Signalen umsetzen.

Im Juli 2014 wurde in Köln beschlossen, einige railway:signal:snowplow:order=up/down durch railway:signal:snowplow:type=up/down zu ersetzen. (Dieses Tag gibt dem Schneepflugführer an, ob er den Pflug heben oder senken soll.) Im Rahmen dieses mechanischen Edits möchte ich diese Änderung auch bei älteren Signalen umsetzen.

Schon vor einigen Jahren wurde bei der DB das Lichtsignal Sh 0 in Hp 0 umbenannt. Daher möchte ich folgende Änderung durchführen:
railway:signal:minor:form=light + railway:signal:minor:states=sh0;sh1 → railway:signal:minor:form=light + railway:signal:minor:states=DE-ESO:hp0;DE-ESO:sh1

Im Rahmen der Internationalisierung haben wir den Key railway:signal:lzb=* und railway:signal:lzb_start=* durch railway:signal:train_protection=* ersetzt. Dies führt zu folgenden Änderungen:

  • railway:signal:lzb=DE:lzb_blockkennzeichen → railway:signal:train_protection=DE-ESO:blockkennzeichen + railway:signal:train_protection:type=block_marker + railway:signal:train_protection:form=sign
  • railway:signal:lzb:deactivated=* → railway:signal:train_protection:deactivated=*
  • railway:signal:lzb_start=DE:lzb-bereichskennzeichen → railway:signal:train_protection=DE:lzb-bereichskennzeichen + railway:signal:train_protection:form=sign + railway:signal:train_protection:type=start/section

Technische Umsetzung
Ich werde die Objekte, die die oben genannten Tags haben, mit der Overpass-API (oder, wenn es ganz wenige Objekte sind, direkt per Taginfo von der OSM-API) herunterladen, in JOSM oder Level0 editieren und dann mit JOSM oder Level0 hochladen. Die editierten Signale werden von mir manuell gesichtet, da ich z.B. nicht alle Hp-Signale umstellen möchte. Divese Lichtsignale der Stuttgarter Straßenbahnen sind derzeit auch als Hp-Lichtsignale getaggt. Mir liegt jedoch kein SSB-Signalbuch vor, sodass ich diese richtig taggen könnte (daher werden sie ihre alten Tags behalten).

Viele Grüße

Michael

PS Die OpenRailwayMap unterstützt schon seit einigen Wochen/Monaten beide Schemata. Mit etwas zeitlichem Abstand zum Umtag-Edit werden wir wahrscheinlich die Unterstützung für das alte Schema entfernen.

EDIT: Copy-Paste-Fehler behoben (DE-ESO:* gibt es natürlich nur bei den neuen Tags, also rechts vom Pfeil, nicht links davon)

Hallo Michael,

danke für die ausführliche Darstellung!

Deine Änderungen betreffen nur DE/DACH, soweit ich das sehe. Wenn das so ist, würde ich nochmal auf talk-de/-at/-ch auf diesen Eintrag verlinken (so noch nicht geschehen; ich lese keine Mailinglisten (nur meta über die Wochennotiz)), und deren Hinweise aufnehmen, falls noch welche kommen.

Nach MEP/AECoC müsstest du dann wohl auch eine Spezialwikiseite als Doku anlegen: http://wiki.openstreetmap.org/wiki/Automated_Edits_code_of_conduct#Document_thoroughly .

Außerdem würde ich keine Änderungen außerhalb DACH vornehmen (wobei mir da nicht klar ist, wieviele Signale überhaupt nach euren Schemata außerhalb DACH getaggt sind), sofern die nicht mit der lokalen Community abgestimmt sind.

Vielen Dank und viele Grüße!

Hallo,

der Edit ist auf Deutschland (Admin-Grenze) beschränkt. Es gibt in der Nähe von Grenzbahnhöfe sowie an diversen Stellen in der Schweiz vor Ort auch deutsche Signale auf Schweizer Boden (Basel Badischer Bahnhof und die Strecke Erzigen (Baden)–Gottmadingen), diese sind aber alle schon nach dem neuen Schema gemappt.

In Polen gab es zwischen Görlitz und Zittau gerade eben noch ein deutsches Signal ein paar Meter hinter der Grenze in Polen, das habe ich umgetaggt. Bei Venlo steht ein deutsches(?) Signale etwas weiter hinter der Grenze in den Niederlanden. Das hat rurseekatze damals gemappt, d.h. er muss es selber umtaggen.

Im Wiki werde ich den Mechanical Edit noch dokumentieren.

Die WN wird die Benachrichtigung derjenigen übernehmen, die nicht im Forum lesen. Extra auf talk-de posten will ich nicht.

Viele Grüße

Michael

Siehst du denn Konfliktpotenzial? Grade dann wäre es leider angebracht vorher zu fragen, auch wenn es das Ganze verlangsamt.

Ich bin der Meinung das ihr als ORM-Leute da sowieso viel mehr Ahnung von habt, und euch daher inhaltlich nicht verstecken müsst. Der Mechanical Edit ist doch vorbildlich dokumentiert und soll dann auch vorbildlich durchgeführt werden; ich denke vor talk-de musst du da keine Angst haben.

Allerdings kenne ich talk-de und deren Stimmung auch nicht und hoffe aber, das da (wie hier) großteils vernünftige Leute sind.

Viele Grüße,
gormo

Die “Leute” sind absolut vernünftig und haben definitiv Ahnung. Früher war das ja auch die “Profi-Ecke” und hier das “Laber-Forum” :wink:

Und daran liegt es wohl. man mag sich halt nicht.

Gruss
walter

Wenn ich darf würde ich diesen Thread gerne dort verlinken.

Grüße
Chris

Sie erhalten hiermit die Erlaubnis zur Verknüpfung der Diskussionsstränge. :slight_smile:

http://gis.19327.n5.nabble.com/Mechanischer-Edit-an-Eisenbahnsignalen-in-Deutschland-tp5839966.html

In der obigen Auflistung haben sich drei Copy-Paste-Fehler eingeschlichen:

Falsch

  • railway:signal:combined=hl → railway:signal:main=DE-ESO:hl
  • railway:signal:combined=ks → railway:signal:main=DE-ESO:ks
  • railway:signal:combined=sv → railway:signal:main=DE-ESO:sv

Richtig

  • railway:signal:combined=hl → railway:signal:combined=DE-ESO:hl
  • railway:signal:combined=ks → railway:signal:combined=DE-ESO:ks
  • railway:signal:combined=sv → railway:signal:combined=DE-ESO:sv

Ich bitte um Entschuldigung.

Damit die Form gehalten wird und der Mechanical Edit Policy genüge getan ist, habe ich jetzt eine Wiki-Seite angelegt. Ich habe auch gezählt, welche Tags überhaupt noch wie oft vorkommen.

Hallo,

ich habe mit den Umstellarbeiten begonnen und mit dem Umtaggvorgang

angefangen. https://www.openstreetmap.org/changeset/30150058

Da ich alle Signale manuell in JOSM optisch prüfe, ob sie auch an einer Eisenbahnstrecke (und nicht bei der Frankfurter oder Stuttgarter Stadtbahn) stehen, habe ich nur die Signale in Hessen, Rheinland-Pfalz, Baden-Württemberg und Bayern umgetaggt. Im Saarland gab es, glaube ich, nichts umzutaggen.

Es war wohl gut, dass ich viele Signale “gesichtet” habe. Ein User in Franken fiel auf, da er vermutlich Ks- mit Hp-Lichtsignalen verwechselt hat. Die Signalnummern liesen mich an der Zuordnung zweifeln. Bei einem User in Nordbaden* war mir das Problem bekannt, dort gibt es daher noch eine größere Zahl an zu korrigierenden “Altfällen”. Er hat soeben von mir eine freundliche Mail bekommen.

Aufgrund einer seltsamen Signalnummerierung habe ich auch die Signale im Betriebsbahnhof Mühlhausen (Wern) nicht umgetaggt.

Wo mir beim Sichten die Ortskenntnis gefehlt hat, habe ich mich auf zuverlässige User verlassen. Das sind u.a. bigbug21, rurseekatze, rayquaza und weitere Mapper.

Für die Stadtbahnen in Frankfurt und Stuttgart muss ich mir mal ein Signalbuch besorgen, damit ich denen bessere Tags als railway:signal:main=hp geben kann.

Morgen geht es dann wohl mal in Nord- oder Ostdeutschland weiter.

Viele Grüße

Michael

*) Da gibt es gleich drei, daher ist die Aussage leicht anonym.