User:Nakaner/Mechanical Edit German on Railway Signals
This page is the documentation of a mechanical edit on railway signals in Germany. For the German documentation and discussion see its thread at the German OSM Forum.
Please note that an OSM object can be counted twice, triply or more often, i.e. you cannot add up the numbers below.
Why is this edit necessary?
When the first German signals had been mapped in December 2011 people did not think about tagging signals outside of Germany. That's why tag values without any country prefix have been used for a long time. But time went on and people outside Germany started to tag signals to. To be able to differentiate between a German signal and a similar, but different signal of another railway company outside Germany, railway mappers decided to introduce a prefix for all tag values which are country-specific. We decided to add a country-company prefix. DE-ESO:
is now used for German signals which follow DB KoRil 301. Other German companies with different signalling system (e.g. trams) have different prefixes, e.g. DE-BOStrab
or DE-KVB
.
A prefix on signal values is necessary in order that data users (e.g. renderers) can render different icons for signals which have a different function or look different but have the same OSM key.
How will this edit be done?
I will download all objects which have the old tagging using Taginfo (if it is a small number) or personal Overpass queries (if it is a large number) and check each of it manually if it is on a track of DB or an other company using Eisenbahn-Signalordnung for signalling. Mass modifying will be done using JOSM's search & replace or Level0.
What will be touched? Which edits have been done yet?
Each tag is followed by the number of OSM objects (in brackets) which my possibly be modified by this mechanical edit.
railway:signal:main=hp -> railway:signal:main=DE-ESO:hp (3668)
railway:signal:main:states=hp0;hp1;hp2 -> Each part of the value will get the new "DE-ESO:" prefix. (ca. 2300)
Changeset 30236392 was reverted due to a mistake in this changeset changing semaphore to light signals.
railway:signal:main=hl -> railway:signal:main=DE-ESO:hl (103)
railway:signal:main:states=hp0;hl1;hl2;hl3a;hl3b;hl4;hl5;hl6a;hl6b -> Each part of the value will get the new "DE-ESO:" prefix. (ca. 20)
railway:signal:main=ks -> railway:signal:main=DE-ESO:ks (873)
railway:signal:main:states=hp0;ks1 -> railway:signal:main:states=DE-ESO:hp0;DE-ESO:ks1 (794)
apart from some signals which seem tagged false
railway:signal:main:substitute_signal=dr:zs1 -> railway:signal:main:substitute_signal=DE-ESO:dr:zs1 (230)
railway:signal:main:substitute_signal=db:zs1 -> railway:signal:main:substitute_signal=DE-ESO:db:zs1 (1287)
railway:signal:main:substitute_signal=db:zs7 -> railway:signal:main:substitute_signal=DE-ESO:db:zs7 (391)
railway:signal:main:substitute_signal=db:zs12 -> railway:signal:main:substitute_signal=DE-ESO:db:zs12 (10)
railway:signal:combined=hl -> railway:signal:combined=DE-ESO:hl (77)
railway:signal:combined:states=hp0;hl1;hl2;hl3a;hl3b;hl4;hl5;hl6a;hl6b;hl7;hl8;hl9a;hl9b;hl10;hl11;hl12a;hl12b -> Each part of the value will get the new "DE-ESO:" prefix. (ca. 20)
railway:signal:combined=ks -> railway:signal:combined=DE-ESO:ks (1000)
apart from some signals which seem tagged false
railway:signal:combined:states=hp0;ks1;ks2 -> railway:signal:combined:states=DE-ESO:hp0;DE-ESO:ks1;DE-ESO:ks2 (976)
apart from some signals which seem tagged false
railway:signal:combined=sv -> railway:signal:combined=DE-ESO:sv (157)
apart from some signals with strange tagging
railway:signal:combined:states=hp0;sv1;sv2;sv3;sv4;sv5;sv6;sv0 -> Each part of the value will get the new "DE-ESO:" prefix. (ca. 30)
railway:signal:combined:substitute_signal=dr:zs1 -> railway:signal:combined:substitute_signal=DE-ESO:dr:zs1 (63)
railway:signal:combined:substitute_signal=db:zs1 -> railway:signal:combined:substitute_signal=DE-ESO:db:zs1 (1206)
railway:signal:combined:substitute_signal=db:zs7 -> railway:signal:combined:substitute_signal=DE-ESO:db:zs7 (371)
railway:signal:combined:substitute_signal=db:zs12 -> railway:signal:combined:substitute_signal=DE-ESO:db:zs12 (10)
railway:signal:distant=vr -> railway:signal:main=DE-ESO:vr (2002)
railway:signal:distant:states=vr0;vr1;vr2 -> Each part of the value will get the new "DE-ESO:" prefix. (1561)
railway:signal:distant=hl -> railway:signal:main=DE-ESO:hl (54)
railway:signal:distant:states=hl1;hl4;hl7;hl10 -> Each part of the value will get the new "DE-ESO:" prefix. (ca. 60)
railway:signal:distant=ks -> railway:signal:main=DE-ESO:ks (7)
railway:signal:distant:states=ks1;ks2 -> railway:signal:distant:states=DE-ESO:ks1;DE-ESO:ks2 (786)
railway=buffer_stop + railway:signal:minor=sh0 -> railway=buffer_stop + railway:signal:minor=DE-ESO:sh0 (194)
railway=buffer_stop + railway:signal:minor=sh2 -> railway=buffer_stop + railway:signal:minor=DE-ESO:sh2 (153) – one wrong tagged signal at KVB infrastructure remained
Changed, but there may be added new signals with old tagging in the following days due to a bug at the JOSM presets! 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ü (449)
railway:signal:crossing:states=bü0;bü1 -> -Each part of the value will get the new "DE-ESO:" prefix. (435)
railway:signal:crossing_distant=bü2 -> railway:signal:crossing_distant=DE-ESO:bü2 (254)
railway:signal:crossing_distant=bü3 -> railway:signal:crossing_distant=DE-ESO:bü3 (42)
railway:signal:whistle=db:bü4 -> railway:signal:whistle=DE-ESO:db:bü4 (223)
railway:signal:ring=bü5 -> railway:signal:ring=DE-ESO:bü5 (26)
railway:signal:electricity=el1v -> railway:signal:electricity=DE-ESO:el1v (3)
railway:signal:electricity=el1 -> railway:signal:electricity=DE-ESO:el1 (69)
railway:signal:electricity=el2 -> railway:signal:electricity=DE-ESO:el2 (88)
railway:signal:electricity=el3 -> railway:signal:electricity=DE-ESO:el3 (0)
railway:signal:electricity=el4 -> railway:signal:electricity=DE-ESO:el4 (0)
railway:signal:electricity=el5 -> railway:signal:electricity=DE-ESO:el5 (0)
railway:signal:electricity=el6 -> railway:signal:electricity=DE-ESO:el6 (76)
railway:signal:speed_limit_distant=lf1 -> railway:signal:speed_limit_distant=DE-ESO:lf1 (12)
- railway:signal:speed_limit=dr:lf1/2 -> railway:signal:speed_limit=DE-ESO:dr:lf1/2 (2)
railway:signal:speed_limit=lf2 -> railway:signal:speed_limit=DE-ESO:lf2 (13)
railway:signal:speed_limit=lf3 -> railway:signal:speed_limit=DE-ESO:lf3 (8)
railway:signal:speed_limit_distant=db:lf4 -> railway:signal:speed_limit_dis-tant=DE-ESO:db:lf4 (24)
- railway:signal:speed_limit_distant=dr:lf4 -> railway:signal:speed_limit_distant=DE-ESO:dr:lf4 (8)
only signals in East Germany
- railway:signal:speed_limit=db:lf5 -> railway:signal:speed_limit=DE-ESO:db:lf5 (15)
only signals in West Germany
railway:signal:speed_limit=dr:lf5 -> railway:signal:speed_limit=DE-ESO:dr:lf5 (0)
railway:signal:speed_limit_distant=lf6 -> railway:signal:speed_limit_distant=DE-ESO:lf6 (958)
- railway:signal:speed_limit=lf7 -> railway:signal:speed_limit=DE-ESO:lf7 (3185)
except signs of KVB
railway:signal:main=ne1 -> railway:signal:main=DE-ESO:ne1 (62)
railway:signal:distant=db:ne2 -> railway:signal:distant=DE-ESO:db:ne2 (61)
railway:signal:stop=ne5 -> railway:signal:stop=DE-ESO:ne5 (796)
only signal which are not tagged as stop positions
railway:signal:station_distant=ne6 -> railway:signal:station_distant=DE-ESO:ne6 (59)
railway:signal:snowplow=ne7 -> railway:signal:snowplow=DE-ESO:ne7 (81)
railway:signal:whistle=dr:pf1 -> railway:signal:whistle=DE-ESO:dr:pf1 (36)
railway:signal:whistle=dr:pf2 -> railway:signal:whistle=DE-ESO:dr:pf2 (24)
railway:signal:humping=ra -> railway:signal:humping=DE-ESO:ra (1)
railway:signal:humping:states=ra6;ra7;ra8;ra9 -> railway:signal:humping:states=DE-ESO:ra6;DE-ESO:ra7;DE-ESO:ra8;DE-ESO:ra9 (1)
railway:signal:shunting=ra10 -> railway:signal:shunting=DE-ESO:ra10 (186)
railway:signal:shunting=ra11 -> railway:signal:shunting=DE-ESO:ra11 (49)
railway:signal:shunting:states=ra11;sh1 -> railway:signal:shunting:states=DE-ESO:ra11;DE-ESO:sh1 (8)
railway:signal:shunting=ra11b -> railway:signal:shunting=DE-ESO:ra11b (3)
railway:signal:minor=sh -> railway:signal:minor=DE-ESO:sh (1725)
apart from some signals of Albtalbahn in Karlsruhe and semaphore signals
railway:signal:minor:states=hp0;sh1 -> railway:signal:minor:states=DE-ESO:hp0;DE-ESO:sh1 (247)
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 (less than 800)
railway:signal:minor=sh2 -> railway:signal:minor=DE-ESO:sh2 (153)
railway:signal:distant=dr:so3 -> railway:signal:distant=DE-ESO:dr:so3 (6)
railway:signal:crossing_distant=so14 -> railway:signal:crossing_distant=DE-ESO:so14 (14)
railway:signal:crossing_distant=so15 -> railway:signal:crossing_distant=DE-ESO:so15 (2)
railway:signal:crossing=so16 -> railway:signal:crossing=DE-ESO:so16 (89)
railway:signal:crossing:states=so16a;so16b -> railway:signal:crossing:states=DE-ESO:so16a;DE-ESO:so16b (83)
railway:signal:distant=so106 -> railway:signal:distant=DE-ESO:so106 (4)
railway:signal:brake_test=zp -> railway:signal:brake_test=DE-ESO:zp (41)
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 (41)
railway:signal:departure:states=zp9 -> railway:signal:departure:states=DE-ESO:zp9 (101)
railway:signal:departure:states=zp10 -> railway:signal:departure:states=DE-ESO:zp10 (34)
railway:signal:route=zs2 -> railway:signal:route=DE-ESO:zs2 (270)
railway:signal:route_distant=zs2v -> railway:signal:route_distant=DE-ESO:zs2v (57)
railway:signal:speed_limit=zs3 -> railway:signal:speed_limit=DE-ESO:zs3 (1439)
railway:signal:speed_limit_distant=zs3v -> railway:signal:speed_limit_distant=DE-ESO:zs3v (653)
railway:signal:wrong_road=db:zs6 -> railway:signal:wrong_road=DE-ESO:db:zs6 (198)
railway:signal:wrong_road=dr:zs7 -> railway:signal:wrong_road=DE-ESO:dr:zs7 (30)
railway:signal:wrong_road=db:zs8 -> railway:signal:wrong_road=DE-ESO:db:zs8 (5)
railway:signal:wrong_road=dr:zs8 -> railway:signal:wrong_road=DE-ESO:dr:zs8 (6)
railway:signal:speed_limit=db:zs10 -> railway:signal:speed_limit=DE-ESO:db:zs10 (23)
railway:signal:radio=zugfunk-kanalhinweis -> railway:signal:radio=DE-ESO:zugfunk-kanalhinweis (0)
railway:signal:crossing_info=bü-kennzeichentafel -> railway:signal:crossing_info=DE-ESO:bü-kennzeichentafel (0)
railway:signal:crossing_info=DE:bü-kennzeichentafel -> railway:signal:crossing_info=DE-ESO:bü-kennzeichentafel (128)
What will this mechanical edit edit, too?
That's the main part of the edit but this mechanical edit contains some other mechanical edits which correct minor tagging bugs due to wrong decisions taken at time the tagging scheme was invented.
Gsp 2
Derail signal called Gsp 2 has been renamed in Wn 7 in 2008 by DB Netz AG. The developers of this tagging scheme used an inofficial documentation at a private website which was out-of-date at this point. That's why the tagging has to be corrected at 8 objets. [1]
This edit will change
railway=derail + railway:signal:minor:states=sh0;gsp2
to
railway=derail + railway:signal:minor:states=DE-ESO:sh0;DE-ESO:wn7
Kennlicht (marker light)
The tagging scheme is very Germany-centric at this point. That's why this edit will change tagging of marker lights on German signals as following. (original decision at Bad Nauheim Meeting)
- railway:signal:distant:marker_light=yes -> "DE-ESO:kennlicht" will be added to railway:signal:distant:states=* and railway:signal:distant:marker_light=* removed (500 objects)
only railway:signal:distant:marker_light=yes
- railway:signal:main:marker_light=yes -> "DE-ESO:kennlicht" will be added to railway:signal:main:states=* and railway:signal:main:marker_light=* removed (262 objects)
only signals which already had railway:signal:main:states=*
railway:signal:combined:marker_light=yes -> "DE-ESO:kennlicht" will be added to railway:signal:combined:states=* and railway:signal:combined:marker_light=* removed (114 objects)
description -> caption
railway:signal:stop:description=* will be changed to railway:signal:stop:caption=* because there is no funtional difference between the text printed on a Ne 5 sing and text printed on a crossing info sign ("Bü-Ankündigungstafel"). See the original decision. This will affect 424 objects.
not in Austria
order -> type
railway:signal:snowplow:order=* will be changed to railway:signal:snowplow:type=* because unify tagging of electricity and snowplow signal orders. See the original decision. This will 291 objects.
not in Austria
Sh 0 -> Hp 0
Sh 0 light signal has been renamed to Hp 0 many years ago. That's why we have to correct tagging at this place in order to be correct. This will affect about 500 to 1000 objects.
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
International Tagging of Train Protection Signals
Tagging of train protection signals used
railway:signal:lzb=*
and railway:signal:lzb_start=*
up to end of 2014. We decided to move to a international tagging scheme using railway:signal:train_protection=* (and the sub-tags for states, type, form and height). This will affect about 10 objects.
- 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
Encountered Errors
During reviewing all these signals, I have found lots of errors. At a couple of stations/lines Ks and Hl or Hp and Ks signals have been mixed up. The following list contains locations were a review is necessary:
- Schifferstadt
Karlsruhe-Durlach–Heidelberg HbfBruchsal–BrettenGotha–Leinefeld, no error, it was already correctall existing Ks signals in Thüringen without DE-ESO prefix, checked and fixed- railway:position=* tagged as railway:pos=* around Mannheim/Ludwigshafen
- usage of German signal tagging in Kosovo
- usage of German signal tagging in Sweden
Missed Objects
Some objects are missed for one or another reason:
- railway:signal:main=hp added by user ohligser around Cologne in May 2015
- Node 1241286256 because it is not tagged railway=signal