OpenRailwayMap/Signals in Italy

This is a proposal for a tagging scheme for Italian railway signals, now used de-facto. This is valid mainly for RFI network, should be fine also in Ferrovienord network, other networks might have some differences.
Signals
All Italian railway signals should have the following generic tags:
railway=signalrailway:signal:direction=(depending on how the way is mappedforward/backward/both)railway:signal:position=(depending on how the way is mappedleft/right/bridge/in_track)
Additionally, signals can also have:
railway:position:exact=123.456where 123.456 is an example. This is the point where the signal is located compared to the kilometric progressive of the railway.railway:position=123.5where 123.5 is an example. This is the approximate position of the signal.
Signal Types
Main Signals (1ª categoria)

1st category signals with one to three lights, additionally can have startup (avvio), advancement (avanzamento), direction indicators, letters, left arrow, rappel or speed triangle.
The main signals should be tagged as follow:
Necessary:
railway:signal:main=(according to the number of lights. Do not confuse this with the possible states, each light can show different colours.IT:1V/IT:2V/IT:3V)railway:signal:main:form=lightAs all main signals nowadays are light signals.
Optional:
railway:signal:main:states=*please indicate all the possible states of the signals using the "-" to separate different lights and ";" to separate the states. Use the "R" for red, "Y" for yellow and "G" for green starting from the upper light. Use (•) for blinking and (•-•) for for blinking simultaneously and (•)-(•) for blinking alternating. (Example: "G;R-G;R-Y;R-(Y)")
railway:signal:main:shape=(indicates the shape of the "vela" the sunscreen of the signal. "no" is used for tunnels. "round" is for signal on the left of the track and "square" if on the right.round/square/no)ref=*: signal identifier. For PBA the "P" means permissive, so add only the number. Permissive state goes as substitute signal "IT:P" (following paragraph). The internal/external(n) entry and exit signals should not be indicated in the "ref", see following tag.railway:signal:main:function=entry/exit/blockto indicate the function of the signals, "protezione" are entry, "partenza" are exit, "blocco" are block. Internal and external signals are still entry or exit depending if they are "partenza" or "protezione"railway:signal:main:function:exit=(In case of multiple exit signals indicates the position, in case of multiple internal or external add the number after "INT" or "EST"INT/EST/EST1/*)railway:signal:main:function:entry=(Same as above but for entry signalsINT/EST/EST1/*)
railway:signal:main:arrow=(no/yes)if the signal has an arrow on top indicate yes, usually lit when on green state and are used only on right side signals. (default no)railway:signal:main:caption=*use this field for other indications below the signal

Substitute signals
railway:signal:main:substitute_signal=IT:AVA"Avanzamento" signal should be tagged in this way. This signal is composed pairs of blue horizontal lights that can be off, still or blinking depending on the situation. They are used to indicate that a (entry) red non permissive signal, can be passed after calling the signaller and under some limitations. Avanzamento and Avvio can be present on the same signal, add both with ";" as separator.railway:signal:main:substitute_signal=IT:AVV"Avvio" this signal is composed pairs of white horizontal lights that can be off, still or blinking depending on the situation. They are used to indicate that a red (exit) non permissive signal, can be passed after calling the signaller and under some limitations. Avanzamento and Avvio can be present on the same signal, add both with ";" as separator.railway:signal:main:substitute_signal=Permissive signal indicator, after calling the signaller and getting the permission the red (block) signal can be passed with some limitations.P/(P)railway:signal:main:substitute_signal=IT:Additional letters that may appear as sign or light signals under main signals, if multiple are available add them separated by ";" [ex: {...}=IT:A;IT:(A) ]. For blinking letters use (•), L is the lambda or inverted "V".A/(A)/C/D/(D)/I/(L)/T/X
Speed indicators
Speed indicators complementary to main signals should be tagged as follows and in the same node of the main signal.
Triangle
railway:signal:speed_limit=IT:TRIrailway:signal:speed_limit:form=signrailway:signal:speed_limit:speed=(30/60)speed limit indicated by the triangle (empty=30).
Rappel
Panel that lights on horizontal bars to indicate max speed of the itinerary
railway:signal:speed_limit=IT:RAPrailway:signal:speed_limit:form=lightrailway:signal:speed_limit:speed=(30;60/30;60;100)speed limit given the max number of rappels, 1 rappel = 30;60; 1 or 2 rappels = 30;60;100. 30 is always included because no rappel means max 30 km/h.
Route indicators
Route indicators are panels under the main signal that indicates with a number the itinerary. Should be tagged in the same node of the main signal.
railway:signal:route=IT:ROUTErailway:signal:route:form=lightrailway:signal:route:states=*Add all the numbers of itineraries allowed separated by ";".
Distant Signals (Avviso)

These signals are on poles painted with alternating white and black horizontal stripes, they can only have maximum 2 lights and only of green or yellow lights. They announce the state of the following 1st category signal.
Necessary:
railway:signal:distant=(according to the number of lights. Do not confuse this with the possible states, each light can show different colors.IT:1V/IT:2V)railway:signal:distant:form=lightAs all distant signals nowadays are light signals.
Optional:
railway:signal:distant:states=*please indicate all the possible states of the signals using the "-" to separate different lights and ";" to separate the states. Use the "Y" for yellow anf "G" for green starting from the upper light. Use (•) for blinking and (•+•) for for blinking simultaneously and (•)+(•) for blinking alternating. (Example: "G; Y-F; (Y-G); (Y)-(G)").
ref=*: signal identifier. For PBA the "PBA" can be omitted(?)
Combined Signals
Combined signals (Accoppiati) should be tagged as main signals as only the possible states might differ from main signals, just changing "main" with "combined". Combined signals can be recognized by the yellow vertical line on the distance tables in the approach to the signal.
Follow the tagging of optional features of the "main" category, using "railway:signal:combined:*=" as key
ETCS markers
-
ETCS transition marker
-
Stop marker
-
Location Marker
Other than the standard direction and position, ETCS markers follow a different tagging scheme, these might be shared with a light signal.
ETCS transition marker:
Point where the transition to ETCS is possible or must be done. Transition might be from SCMT or another level of ETCS.
railway:signal:train_protection=IT:ETCS:LTrailway:signal:train_protection:form=signrailway:signal:train_protection:function=level_transition
ETCS stop marker:
Marker to unambiguously identify a location that must not be passed without a MA (Movement Authority) or other equivalent instructions.
railway:signal:train_protection=IT:ETCS:SMrailway:signal:train_protection:form=signrailway:signal:train_protection:function=stop_markerrailway:signal:train_protection:ref=*field to add the reference of the marker, might be also the name of the locality. Use this instead of "ref" to allow multiple references.
ETCS location marker:
Marker to unambiguously identify a location that is not safety critical, might represent the EOA location (End of Authority).
railway:signal:train_protection=IT:ETCS:LMrailway:signal:train_protection:form=signrailway:signal:train_protection:function=location_markerrailway:signal:train_protection:ref=*field to add the reference of the marker, might be also the name of the locality. Use this instead of "ref" to allow multiple references.
Level Crossing Signals
-
Main level crossing protection
-
Distant level crossing protection
On single track lines some level crossings (PLA) are protected with special signals, commonly referred as "Christmas tree" (Albero di Natale) that are composed by two signals, one distant and a main one.
In other cases normal one light signals with a panel indicating the level crossings protected is used.
Level Crossing Main
railway:signal:crossing=(IT:CT/IT:1V)IT_CT is used for Christmas tree signal, IT:1V for normal signals protecting only level crossings (PL indication below)railway:signal:crossing:form=lightIndicates that it is a light signal.
Level Crossing Distant
railway:signal:crossing_distant=(IT:D_CT/IT:1V)railway:signal:crossing_distant:form=lightIndicates that it is a light signal.
Level crossing signs
railway:signal:crossing_info=IT:PLrailway:signal:crossing_info:form=signrailway:position:exact=*add the position indicated in the sign
Departure indicators (Indicatori di partenza)
-
Railway departure indicator
-
Italian railway departure indicator lit with main signal on background
In some stations where the main signal is difficult to see, it's possible to also have a departure indicators, composed of 2 vertical white lights that turn on when the main signal state allows the train to pass it. The train can pass this signal even if not lit.
railway:signal:departure=IT:PARrailway:signal:departure:form=light
Substitute signals
This signal can be paired with itinerary indicators or startup signals
railway:signal:departure:substitute_signal=IT:AVVif the signal has startup (avvio) indicators, two horizontal blue lights. (default no)
Route indicators
Route indicators are panels under the departure signal that indicates with a number the itinerary. Should be tagged in the same node of the departure signal.
railway:signal:route=IT:ROUTErailway:signal:route:form=lightrailway:signal:route:states=*Add all the numbers of itineraries allowed separated by ";".
Speed Limits

Speed limit signals should be tagged as follows:
railway:signal:speed_limit=(IT:1R/IT:2R/IT:3R)with the number indicating the number of speed ranks represented.
railway:signal:speed_limit:speed=*enter the speed limit in a list separated by ";" beginning with rank A. (Example: "140;160;180")
railway:signal:speed_limit:arrow=(left/right)if the signal has an arrow pointing to the track that is signalling, add the direction of the arrow.railway:signal:speed_limit:form=sign
Speed Limits Distant
railway:signal:speed_limit_distant=(IT:1R/IT:2R/IT:3R)with the number indicating the number of speed ranks represented.
railway:signal:speed_limit_distant:speed=*enter the speed limit in a list separated by ";" beginning with rank A. (Example: "140;160;180")
railway:signal:speed_limit_distant:distance=(1/2)if the signal is a distant signal enter the number of stripes that indicate the distance, if it is not a distant signal do not use this tag.
railway:signal:speed_limit_distant:arrow=(left/right)if the signal has an arrow pointing to the track that is signalling, add the direction of the arrow.railway:signal:speed_limit_distant:form=sign
Remember that speed reduction is only effective after an adequate distance, check FL. Increase of speed is immediately effective.
Halt Signal

Halt signal is used to indicate the stopping position of a railway halt that does not have light signalling.
railway:signal:stop=IT:HALTrailway:signal:stop:form=sign
Distant Halt Signal
Before the halt signal there is always at least one distant halt signal
railway:signal:stop_distant=IT:HALTrailway:signal:stop_distant:form=signrailway:signal:stop_distant:distance=(1/2)add according to the number of stripes, 1 stripe is usually at braking distance from the halt, 2 stripes is usually at least 200m from the 1 stripe signal.
Shunting Signals
-
Low shunting signal (Marmotta)
-
High Shunting signals (the hexagonal ones)
-
Shunting limit signal, can be made of stone or painted metal
Shunting signals should be tagged as follows:
Low Shunting Signals (Marmotte)
Low shunting signals (Segnali bassi di manovra, also called marmotte) are signals used in shunting operations and movements to areas where standard signalling is not available. They are usually placed near the tracks, they have 3 lights in an L to form two aspects "|" for allowing to move forward and "-" to interdict movements.
railway:signal:shunting=IT:MARrailway:signal:shunting:form=light/(semaphore)semaphore to be used only in the few mechanical signals remaining.ref=*signal identifier.
High Shunting Signals (Segnali alti di manovra)
Signal for shunting, placed near the main signals, hexagonal.
railway:signal:shunting=IT:MANrailway:signal:shunting:form=lightref=*signal identifier.
Shunting Limit (Picchetto limite di manovra)
This signal is used to indicate the furthest point that can be reached while shunting, this limit should not be exceeded while shunting.
It's a pole, about 1.5m high with alternating white and black stipes.
railway:signal:shunting=IT:PLIMrailway:signal:shunting:form=sign

Milestones
Railway milestones (cippo/ cippo kilometrico) should be tagged as follows:
railway=milestone
Block sections and block type
On almost all the Italian railway line there are block sections of different types, this should be tagged on the railway line. While doing so it's possible to also tag the block system.
To tag the block section it's possible to indicate the general type, being axle counters, track circuits or no block section, so manual.
railway:block_section=(axle_counter,track_circuit,manual)
It's then possible to add the block system of the line. In Italy it's rare to find a block system that is not automatic, usually the type is BAcc or BAcf in main lines and BCA for minor lines, before adding make sure you know the type, please don't guess.
railway:block_system=(Manual,Automatic,Token,OTW)railway:block_system:type=(telephone,BAcc,BAcf,BCA,BEM,Radio)railway:cab_signalling=RSC4,RSC9,no
Notes
Multiple signals of the same category
In case of multiple signals of the same category in the same location, that so can't be tagged together, tag them as two separated signals very close to each other (less than 1m).
Examples
Here some examples on how to map the signals.
Example 1

Left signal is example 1a, right signal is 1b.
Example 1a
railway=signal
railway:signal:direction=forward/backward (depending on how the way is mapped)
railway:signal:position=left/right (depending on how the way is mapped)
railway:signal:main=IT:3V
railway:signal:main:shape=square
railway:signal:main:form=round
railway:signal:main:states=(R;...)
railway:signal:speed_limit=IT:RAP
railway:signal:speed_limit:form=light
railway:signal:speed_limit:speed=30;60;100
railway:signal:main:function:entry=INT 2
Example 1b
railway=signal
railway:signal:direction=forward/backward (depending on how the way is mapped)
railway:signal:position=left/right (depending on how the way is mapped)
railway:signal:main=IT:3V
railway:signal:shape=round
railway:signal:main:states=(R;R-Y;Y;G;...)
railway:signal:speed_limit=IT:RAP
railway:signal:speed_limit:form=light
railway:signal:main:function:entry=INT 2
Example 2

railway=signal
railway:signal:direction=forward/backward (depending on how the way is mapped)
railway:signal:position=left/right (depending on how the way is mapped)
railway:signal:distant=IT:2V
railway:signal:distant:shape=round
railway:signal:main:states=(V;Y;...)