- 1 Preface
- 2 The term "signal"
- 3 Where to Map
- 4 General Tags
- 5 Other Tags
- 6 Tagging Examples
- 7 Porting this tagging scheme
- 8 Weak Points of This Tagging Scheme
Railway signals are a very topic which differs much between countries. Therefore the OpenRailwayMap tagging scheme cannot provide a tags for you which are ready to use. As an replacement, the authors of OpenRailwayMap tagging scheme decided to create an abstract tagging scheme. Therefore, you have to derive a tagging scheme adapted to the local signalling rules. You cannot map the details of railway signals if there nobody has created a tagging scheme for railway signals in your country.
There are currently following tagging schemes:
- Austria, currently only available in German
- Czechia (Czech only)
- Finland, currently only available in Finnish
- Germany (ESO, i.e. heavy railways and narrow gauge railways), full version currently only available in German, English translation not finished yet
- Germany (BOStrab, i.e. trams, light rails and subways) (under draft), currently only available in German
- North America (United States, Canada, and Mexico)
- Poland, currently only available in German
- Switzerland, currently only available in German
- United Kingdom
Your country is missing in this list? Adapting the tagging scheme to another country is a lot of work. Therefore currently only some countries are supported. If you need help adapting the tagging scheme to your country, don't hesitate to seek for help at OpenRailwayMap mailing list. (You have to subscribe the list before you can send emails to it)
The term "signal"
This page (and the whole OpenRailwayMap tagging scheme) is based on following definition of a signal:
Signals are not only light and semaphore signals but also signs (boards) along the tracks which give instructions to the driver. Milestones (and mileage signs) are no signals.
Where to Map
Signals are mapped as nodes. The node of the signal is placed on the track (and is part of the way which represents the track).
There are a few tags which are equal all over the world:
|Note: Disused and abandoned signals can be mapped by adding |
|ref||<signal designation>||signal designation||The name or designation of a signal.|
|railway:position||<distance value, such as
||distance||The rounded distance position of a signal. If using miles, prefix the number with
|railway:position:exact||<distance value, such as
||exact distance||The exact (three-place) distance position of a signal. If using miles, prefix the number with
|railway:signal:position||left/right/bridge/overhead/in_track||location||Indicates the location of the signal in references to the track.
|railway:signal:direction||forward/backward/both||direction of displaying||Determines how you have to drive to have a view on the signal. Values are in reference to way direction in OpenStreetMap.|
|railway:signal:catenary_mast||yes/no||catenary mast||Is the signal attached to a catenary mast?|
This tagging scheme has a strong separation between keys and values. Keys are equal all over the world while values differ from country to country. If you find a node with railway:signal:main=* (values is not
no), you can be sure that it is a main signal independent from the country where the signal is located. The key describes the general type of the signal (i.e. main, distant, speed, shunting, …), the value describes the exact type.
|Hint for software developers
The tagging scheme described at this page is like an abstract class/interface. You have to derive a class (tagging scheme)/implement this interface.
The keys follow this scheme:
to describe the type of the signal.
CATEGORY is one of the signal categories listed in section Signal Categories. PREFIX is a prefix which describes the country (ISO code) – sometimes the ruleset or the railway company in addition. VALUE is the name of the signal (usually the local language because translations are error-prone).
To tag additional properties (e.g. aspects the signal can show, speed of a speed limit signal, …), we use
CATEGORY is the signal category. PROPERTY is a predefined property (see below)
- railway:signal:main=AT-V2:hauptsignal is a main signal (German "Hauptsignal") in Austria. We use the category "main" because it is a main signal.
ATis the alpha-2 ISO 3166-1 country code of Austria.
V2is the name of the guideline which describes how signals look in Austria and what they mean. If ÖBB (Österreichische Bundesbahn) were the only railway operator which used this signals in Austria, we would use
- railway:signal:main:form=light describes that the signal is a light signal. (There are also some semaphore main signals in Austria)
- railway:signal:main:states=AT-V2:halt;AT-V2:frei is an additional tag for a main signal in Austria. It describes that the signal can display the stop aspect ("Halt") and the proceed aspect ("frei").
|main||Main signal||A signal that gives the permission to enter a station, leave a station or enter the next block section of a track. A main signal controls mainline and shunting movements and indicates the clearness of a track up to the next signal.|
|main_repeated||Duplicated signal||A signal to indicate the state of the main signal. Not to be confused with a Distant signal.|
|distant||Distant signal||A distant signal is placed at braking distance from a main/combined signal and indicates the aspect of the following signal to ensure that a train can stop before reaching the main/combined signal.|
|minor||Minor signal||A signal with a lower priority than main signal. In most cases they are used inside stations to protect occupied sections or control low speed (shunting) movements. It does not require any distant signal and applies to both mainline and shunting movements.|
|minor_distant||Minor Distant signal||A Distant signal for Minor signals.|
|combined||Combined signal||A signal that combines the function of a main and a distant signal. It indicates the state of the next two block sections and is valid for all train movements.|
|shunting||Shunting signal||A signal that controls low speed shunting movements inside stations. It does not apply to mainline movements.|
|crossing||Level crossing signal||A signal that indicates that the technical equipment (lights, barriers, bells) of a level crossing is active to warn automobile drivers about an approaching train.|
|crossing_distant||Level crossing distant signal||A signal which notifies the train driver to attend a level signal which will follow.|
|crossing_info||Level crossing marker board||A signal which describes the level crossing. It is usually mounted next to the level crossing and shows information like the current position (kilometre/miles) or the crossing number.|
|crossing_hint||Level crossing announcement board||A signal which notifies about a level crossing he will reach soon.|
|electricity||Catenary signal||A signal for electric locomotives indicating when and where the pantograph or other collector needs to be lowered. (e.g.: between different electrical systems.)|
|humping||Hump yard signal||This signal controls the speed of locomotives pushing cars towards the hump.|
|speed_limit||Speed Limit indicator||A signal that displays the maximum permissible speed in a track section.|
|speed_limit_distant||Distant Speed Limit indicator||A signal indicating an upcoming speed limit change.|
|whistle||Horn signal||A signal indicating the operator should use the horn.|
|ring||Bell signal||A signal indicating the operator should use the bell.|
|route||Route indicator||A signal that indicates the set up route.|
|route_distant||Route Change Distant||A signal indicating an upcoming route indicator.|
|wrong_road||Wrong Road signal||A signal indicating the movement to a track that normally would have traffic in the oncoming direction.|
|stop||Stop post / Stop Board||In general, this signal marks a position on a track, where a train needs to stop. In most cases it indicates the position where a passenger train should stop at a platform. On branch lines with simplified operational rules, this signal may also be used to mark a position where a train has to stop to wait for a permission to proceed.|
|stop_demand||Stop-on-demand indicator||A signal at small halts that is operated by waiting passengers to visualize their demand for a stop of the next train.|
|station_distant||Upcoming Station||A signal indicating an upcoming station.|
|radio||Radio Change||A signal providing instructions on radio usage.|
|departure||Departure signal||A signal indicating that a passenger train is ready to leave the station.|
|resetting_switch||Resetting Switch signal||A signal indicating the status of a resetting switch.|
|resetting_switch_distant||Resetting Switch Distant||A signal indicating an upcoming resetting switch.|
|snowplow||Snowplow signal||A signal that give instructions to vehicles with a snowplow. In most cases they are placed to warn the crew to raise the snowplow to avoid hitting any obstructions such as level crossings or bridges.|
|short_route||Short entry indicator||A signal which shows the train driver that he has to stop earlier than usual (usual = exit signal). Used if the train drives into a dead-end signal or joins another train.|
|brake_test||Signal used for break tests||This signal supports the communication between the train driver and the personnel checking the breaks.|
|fouling_point||Clear-of-points marker/Track contact marker||A signal that indicates up to which limit a track may be occupied to avoid collisions and malfunctions of signals and switches.|
|helper_engine||Signals related to helper engines||A signal giving instructions for helper engines at steep railroad lines (e.g. in mountain areas).|
|train_protection||Signals related with train protection system topics||Signals of this category show beginning/end of railway sections with a specific or any train protection system. This category also covers the signals (usually signs) mounted along railway lines with cab signalling. This section has been replacing the old sections lzb and lzb_start since 2014.|
|steam_locomotive||Signals related to steam locomotives||Signals that give instructions to the staff of steam locomotives.|
|form||Display/Style||The physical format of the signal: (|
|deactivated||Signal Activity||Is the signal still operational? Either (|
|height||Signal Height||Height design of signal: either (|
|states||Signal Aspects||For variable signals, a list of possible signal aspects, each separated by a semicolon (e.g.: |
|shortened||Shortened Braking Distance||Is the signal placed closer than usual to the next signal? Either (|
|repeated||Repeater signal||When a main/combined signal is not visible from distance (e.g. because of track curves), a repeater is installed to repeat the aspect of the main/combined signal. Use |
|frequency||Frequency||When activated, the frequency reading of the signal in Hertz (Hz).|
|voltage||Voltage||When activated, the voltage reading of the signal in Volts (V).|
|speed||Signal Speed||The displayed signal speed in Kilometers/Hour. For values in Miles/Hour, it is necessary to prefix it with |
|function||Signal Function||The exact function of the signal, such as an Entry Signal (|
|caption||Additional Text||Additional text specified on a signal. This tag was merged with the deprecated |
|only_transit||Valid only for Passing Trains||Does the signal only apply to trains that go through the following breakpoint/station? Either (|
|substitute_signal||Substitute Signal||A signal added to another signal, and indicates the behaviour in cases of failures of the actual signal. Also known as caution signal. For example the train may pass the signal at low speed and must be prepared to stop at any obstacle. Either (|
|twice||Double Signal||Is the signal instruction to be carried out twice? Either (|
|type||Subtype or order||The subtype of a signal or what has to be down at/after this signal.|
|for||Vehicle type||Specifies for which types of vehicles this signal is valid. This can be multiple units (|
Porting this tagging scheme
There are currently implementations of this tagging scheme in some countries. This sections lists some decisions those people had to make.
In Germany signal types are more often known by their abbreviations. Therefore the German tagging scheme uses the official abbreviations.
Because many railway companies use the same signalling rules in Germany, we use
ESO instead of
DB (DB = Deutsche Bahn). ESO is the abbreviation of “Eisenbahnsignalordnung” (Railway Signalling Act).
From 1945 to 1994, the two parts of Germany had their own national railway company. Therefore signalling rules were different between the two parts. East Germany had some different abbreviations in use. Sometimes the same abbreviation has/had two different meanings in East and West Germany. Abbreviations with different meanings are prefix with either
dr: (DB = Deutsche Bundesbahn/West Germany, DR = Deutsche Reichsbahn/GDR):
Trams have their own signalling rules, they use the
Weak Points of This Tagging Scheme
To make this scheme not more complex and difficult as it already is, some occasions of reality cannot be covered by this scheme perfectly.
Signals for both directions
If there is a signal which is valid for both directions it has to have the same properties for both directions. If you want to map a speed signal at a location where the speed limit changes in both directions, you have to map two nodes next to each other (distance ~ 1 metre).
Two Signals of same Category at a Pole
There are signal poles which carry two speed limit signals. This happens sometimes in Germany. We decided not to introduce an additional category. You have to map two nodes next to each other (distance ~ 1 metre).
Signals Which Apply To Two Tracks
If a signal applies to two tracks, you have to map it twice. We decided not to use a "signal relation" which links the signal's real location and the track it applies to" because it were too difficult to map.