OpenRailwayMap/Tagging in Netherlands
![]() |
Conventies: |
Deelprojecten: |
![](https://upload.wikimedia.org/wikipedia/commons/thumb/5/5e/NL_ATB_ETCS.png/400px-NL_ATB_ETCS.png)
Below you will find a description of the Dutch railway system and a guide (tagging scheme) on how to cope with it while mapping. Like on the general ORM tagging page, this chapter is divided in the several parts that together form a system which we call 'the railway network'.
Tracks (sporen)
Track geometry (alignment)
All OSM railway tracks in the Netherlands are imported from the databases of the infrastructure manager ProRail. The databases are country-wide, so consequence is that all tracks are present. Tracks with this source are tagged with at least the following tags:
- source=ProRail
- source:date=(the date at which the shape was exported from ProRail)
- ref:ProRailID=(unique identifier of the imported way)
- ref:ProRailSpoortak=(unique identifier of the rail branch)
The last two tags might need some more explanation. Both tags help with keeping the OSM information up to date. When a stretch of track is changed, the ProRail databases provide a new version of a rail branch while the unique identifier of the rail branch stays the same. Moreover, a rail branch may contain several subsequential ways of which one or more are changed. The combination of source:date and both references ease the implementation of future updates.
Track usage (hoofdrailnet en nevenlijnen)
Track usage is tagged according to the so-called Hoofdrailnet (EN: main railway network). This part of the Dutch railways is officially specified as the core of the network (with consequences for contracts). In OSM it provides a useful distinction between main lines and branch lines. The only exception is the so-called Betuweroute (do not confuse with Betuwelijn). The Betuweroute is a freight-only corridor from the Rotterdam harbour to Zevenaar (at the German border).
Track service (emplacementen, wachtsporen, raccordementen, overloopwissels)
Outside the passenger tracks, the Dutch railways are not tagged with 'usage'. Instead, tracks are given a 'service' tag. This because of the Dutch definition of spurs. As soon as a train leaves a passenger track, it is either on a yard (emplacement), siding (wachtspoor), spur (raccordement) or crossover (overloopwissel). Again, the only exception is the Betuweroute railway.
- emplacement service=yard
- wachtspoor service=siding
- raccordement service=spur
- overloopwissel service=crossover
Highspeed (HSL)
The only official high speed track in the Netherlands is HSL-Zuid (high speed line south). The track has a different operator, named Infraspeed.
Operator (beheersgebieden)
- HSL-Zuid operator=InfraSpeed
- Betuweroute operator=ProRail (KeyRail has been acquired by ProRail as of the 1st of July 2015 [1])
- the majority of track operator=ProRail
- some of the spurs operator=Strukton Rail Short Line (NS spooraanslutingen has been acquired by Strukton as "Strukton Rail Short Line" in 2015 [2])
Speed limits (baanvaksnelheden)
The ProRail import of all Dutch tracks contained a maxspeed tag. Because of this, all tracks have a maxspeed tag.
Line reference/description (geocodes)
Railway lines and their respective tracks are referred to in various ways. First of all, every Dutch railway line has a certain 'geocode'. This is ProRail's referencing system that gives all Dutch areas containing railway tracks a certain number. Some geocodes are split in several subsections, which causes the addition of an a, b, c, etc.
Along with the geocode reference number comes a geocode name. The geocode name is simply a description of the area (and thus not a track name).
- ref=667a
- description=Prinsenbeek
Name (lijnnamen)
Some of the Dutch railway lines have names that are more common than the previously mentioned description tag. Examples are Hanzelijn and Twentekanaallijn. These names are added with the name tag.
- name=IJssellijn
Gauge (spoorwijdte)
The Dutch railways use the standard track gauge.
Electrification systems (bovenleidingssystemen)
An overview of the Dutch electrification systems is presented.
Non-electrified
Regular electrified tracks
HSL-Zuid / Betuweroute
Deviations
- trams
- metros
- transition zones
Train protection (treinbeïnvloeding)
Domestic systems
- railway:atb=yes Automatische Trein Beïnvloeding (Automatic Train Influencing)
- railway:atb-eg=yes first generation ATB
irrelevant for OpenRailwayMap
- railway:atb-ng=yes second generation ATB (improved safety at single-track lines)
irrelevant for OpenRailwayMap
- railway:atb-vv=yes addition to ATB-eg (improved safety at multiple-track lines)
irrelevant for OpenRailwayMap
- railway:atb+=yes modification to ATB-eg to allow 160 km/h
irrelevant for OpenRailwayMap
- railway:etcs=yes European Train Control System
- railway:etcs=1 Dutch lineside signals with Eurobalises (ETCS beacons)
- railway:etcs=2 cab signalling through the combination of Eurobalises and a GSM-R link
Foreign systems at cross-border tracks
- railway:pzb=yes & railway:atb=yesGerman PZB beacons combined with Dutch track circuit and Dutch lineside signals
- railway:tbl=yes & railway:atb=yesBelgian crocodile beacons combined with Dutch track circuit and Dutch lineside signals
Tracks (meersporigheid)
The 'tracks' tag is unnecessary in the Netherlands. It shows the amount of tracks that a OSM way represents, but all Dutch tracks are present as individual ways.
Passenger lines (aantal sporen per lijn)
The passenger lines tag is (to some extent) a neighbour of the tracks tag. It shows how many tracks a railway line contains.
Signalling (signalering)
ATB is the Dutch 'Automatic Train Influencing' (Automatische Trein Beïnvloeding) system. It van be categorised as a so-called legacy system and is the default signalling system in the Netherlands. In contrast to that, some railway lines are equipped with ETCS. This section shows how to tag these systems. An overview of railway lines and their train protection systems can be found at this [1] wiki page.
Every signal must be tagged with the direction it is facing, in relation to the direction of the OpenStreetMap way:
The signal can also be tagged with the position relative to the direction of the OpenStreetMap way:
ATB signalling (ATB seinen)
Compared to other native signalling systems, ATB signals are relatively simple. It incorporates a singe standard with almost no exceptions throughout the country.
Main signals
The ATB main signal consists of three lights and has the possibility of a so-called number box. The three upper lights are always green, yellow and red. The number box contains a matrix of white lights. All lamps are capable regular or flashing light.
In OpenRailwayMap, the main signal is displayed in the signalling layer without its number box.
- railway:signal:main:form=light
- railway:signal:main:states=NL:201;NL:206;NL:212;NL:214;NL:215
The number box (if present) is depicted in the maxspeed layer. Its tags are added as follows:
- railway:signal:speed_limit=NL
- railway:signal:speed_limit:form=light
- railway:signal:speed_limit:states=4;6;8;13;off
- railway:signal:speed_limit:speed=*
- railway:signal:main:states=NL:201;NL:202;NL:206;NL:209;NL:210;NL:212;NL:214;NL:215
* speed limits can be tagged as a single speed in km/h (i.e. 40
) but can also be tagged as multiple possibilities (i.e. 40;60;80;130
for the most advanced system)
Note that there are number boxes that show a H
/L
/X
/G
instead of a number. These cannot be tagged with railway:signal:speed_limit:speed=* but can still be tagged with railway:signal:speed_limit:states=*.
Main signals can be normal or dwarf signals ("dwergseinen"). Tag dwarf signals as follows:
- railway:signal:main:height=dwarf
- railway:signal:main:states=NL:206;NL:212;NL:214;NL:215
Main signals can have various functions. The functions have to do with their position with respect to interlockings. Block signals are fully outside an interlocking, entry signals protect the entrance, exit signals are the last signal you'll see before leaving the interlocking and (lastly) intermediate signals are fully inside an interlocking. Interlockings come in all shapes and sizes. A movable bridge with a signal on both sides is an example of a small interlocking and a large station might feature several big interlockings.
- railway:signal:main:function=block
- railway:signal:main:function=entry
- railway:signal:main:function=exit
- railway:signal:main:function=intermediate
Main signals can have a sign with a P on their pole. This shows that the signal is a permissive signal. Permissive signals are not remotely operated by traffic control. They simply check whether the next two blocks are unoccupied. Therefore, the default aspect of a permissive signal is always green. Non-permissive signals have red as default aspect, because they are only yellow/green if traffic control decides so. OpenRailwayMap renders the signals with their default aspect.
Permissive signals can be passed on red aspect / power outages, if the train driver is unable to communicate with traffic control. Such an action requires driving 'on sight', with a maximum speed of 40 km/h. Note that signals that are part of an interlocking are never permissive.
Permissive signals are tagged with railway:signal:traversable:type=on_no_contact_on_sight.
Main signals can have an additional aspect to show a white light for shunting movements.
- railway:signal:main:states=NL:201;NL:206;NL:212;NL:214;NL:215;NL:216 (note the addition of
NL:216
compared to a normal main signal) - railway:signal:shunting=NL
- railway:signal:shunting:form=light
- railway:signal:shunting:states=NL:216
Repeat signals (herhalingsseinen)
Repeats the following main signal.
For now, repeat signals are being imported with the following characteristics:
- railway:signal:main_repeated=NL
- railway:signal:main_repeated:form=light
- railway:signal:main_repeated:states=NL:272;NL:273
Distant signals (voorseinen)
The distant signal looks similar to the main signal, but is tagged differently.
- railway:signal:distant=NL
- railway:signal:distant:form=light
- railway:signal:distant:states=NL:217;NL:219
The distant signal may have a number box. If present, it is depicted in the maxspeed layer. Its tags are added as follows:
- railway:signal:speed_limit=NL
- railway:signal:speed_limit:form=light
- railway:signal:speed_limit:speed=*
- railway:signal:speed_limit:states=6;off
- railway:signal:distant:states=NL:217;NL:218;NL:219
* speed limits can be tagged as a single speed in km/h (i.e. 40
) but can also be tagged as multiple possibilities (i.e. 40;60;80;130
for the most advanced system)
Note that there are number boxes that show a H
/L
/X
/G
instead of a number. These cannot be tagged with railway:signal:speed_limit:speed=* but can still be tagged with railway:signal:speed_limit:states=*.
Warning lights (waarschuwingsinstallaties)
At certain locations, it is important to notify service personnel about incoming trains. This happens by means of four different mechanisms:
- WUBO: Waarschuwingsinstallatie bij Uitzicht Belemmerende Objecten (warning lights at sight-limiting objects)
- WIBR: WaarschuwingsInstallatie bij Bruggen (warning mechanism at bridges)
- WIT: WaarschuwingsInstallatie in Tunnels (warning mechanism in tunnels)
- WIDO: WaarschuwingsInstallatie voor DienstOverpaden (warning mechanism at service crossings)
All such mechanisms are, for now, being imported with the following characteristics:
In the future, they might be specified further.
Departure signals (vertreklichten)
When a train departs at a Dutch station, it needs two types of clearance before doing so. First of all, the interlocking signal should indicate that the route is set. Second, if a departure signal is available, it should be lit before the train departs. In this way, the traffic controller can clear a train route without immediately sending the train away from the station.
All reference numbers of departure signals start with VL (VertrekLicht). After that, the reference number of the main signal is presented (a departure light is always connected to a main signal).
One platform may contain multiple departure lights. This might be necessary at long and curved platforms. In this case, the reference number has the addition of /1 or /2 or /3 etc. for the various 'copies' of the signal.
For now, departure signals are being imported with the following characteristics:
- railway=signal
- ref=(reference) (i.e. VL1080/2 for departure light 2 belonging to main signal 1080)
- railway:signal:departure=NL
Departure signals with a countdown timer (installed since 2016):
Some departure signals have lights on two sides:
In the future, they might be specified further.
ATB code change signals (ATB-codewisselseinen)
- railway:signal:train_protection=NL:330
- railway:signal:train_protection:states=NL:330;off
- railway:signal:train_protection:form=light
ETCS signalling (ETCS seinen)
336 ETCS cab signalling start
Start of the cab signalling.
- railway:signal:train_protection=NL:336
- railway:signal:train_protection:type=start
- railway:signal:train_protection:form=sign
337 ETCS cab signalling end
End of the cab signalling.
- railway:signal:train_protection=NL:337
- railway:signal:train_protection:type=end
- railway:signal:train_protection:form=sign
227 ETCS stop marker
The ETCS stop marker can be found in two different layouts, in the Netherlands. The first option is similar to the French TVM stop marker and is tagged as:
- railway:signal:train_protection=NL:227
- railway:signal:train_protection:type=block_marker
- railway:signal:train_protection:form=sign
- railway:signal:train_protection:shape=triangle
The second option is only present at the Betuweroute railway and complies with the German standards. These signs can be tagged as:
- railway:signal:train_protection=NL:227
- railway:signal:train_protection:type=block_marker
- railway:signal:train_protection:form=sign
- railway:signal:train_protection:shape=arrow
228 ETCS/ATB stop marker
This signal is unique for the Netherlands. It combines a regular ATB (main) signal with an ETCS stop marker. This combination is used at lines with dual signalling, where ATB and ETCS are active simultaneously (like Amsterdam-Utrecht). The signal displays a colored aspect for ATB-protected trains and a strip of white lights for ETCS-protected trains.
- railway:signal:train_protection=NL:228
- railway:signal:train_protection:type=block_marker
- railway:signal:train_protection:form=light
- railway:signal:main=NL
Milestones (hectometerpaaltjes)
In the Netherlands, so called hectometre signs are used. They show the distance in kilometres, from a certain reference point. Reference points are located at the start of railway lines, or at intersections.
ProRail has a semi-public dataset, which on request is allowed to be published on OSM, with all hectometre signs in the Netherlands. These hectometre signs however, are placed at the centre of their railway line (a railway line can contain several tracks). Milestones should however, according to the international ORM tagging scheme, be mapped as nodes on their respective OSM railway tracks. Regarding this fact, imports from the ProRail hectometre sign dataset should never override correctly mapped hectometre signs that were already present.
Tagging the hectometre signs in the Netherlands is a bit simpler than described in the international tagging scheme. This because hectometre signs in the Netherlands only show their distance at a precision of 100 metres and aren't used for anything else than that specific purpose (note: negative values are never used in the Netherlands). For the example sign, the following tags would apply:
Electrification (tractie)
The Dutch railways incorporate the following types of electrification signals. Mapping these signs (and thus developing the tagging scheme) has less priority.
Speed limitations (snelheidsbegrenzingen)
In the Netherlands, the following speed limitation signals are applied. These signals are also not implemented on OSM / ORM yet.
Tunnels, hills, freight and humping
L-signal
This signal is tagged in the same way as a main/distant signal with a number box which can show an L
symbol.
H-signal
This signal is tagged in the same way as a main/distant signal with a number box which can show an H
symbol.
Freight signal
This signal is tagged in the same way as a main/distant signal with a number box which can show an X
or G
symbol.
Humping yards (heuvelen)
This signal can only be found at Kijfhoek.
Operating sites (dienstregelingspunten)
Dutch railway operators use, among stations, additional nodes in their timetables: so called dienstregelingspunten (timetable points). These consist of shunting yards, freight yards, bridges and intersections/joinings and help to achieve a better timetable.
In English, the word 'Operating site' is quite comparable. Keep in mind though, that timetable points are more specific: fewer possible types of nodes and a specific purpose for timetabling.
All Dutch operating sites are already findable on OpenRailwayMap.
Electrical facilities (energievoorziening)
Substations (onderstations)
These facilities are used to feed power from the grid into the catenary wires, allowing electrical traction. They convert the specific type of grid power to the voltage of the catenaries using a transformer. This holds 1.5 kV DC in most of the Netherlands and 25 kV AC for the High Speed Line South (HSL-zuid) and the Betuweroute (which is a dedicated freight line from Rotterdam Eurogate towards Germany). The 25 kV AC lines allow more spacing between the substations and from the Betuweroute it is known that autotransformers are used, which are a specific type of power transformers. ProRail therefore considers the substations at the Betuweroute as a separate object category called 'AutoTransformerStation'. The 25 kV AC substations at HSL-zuid are managed by Siemens through Infraspeed. Infraspeed is the separate infrastructure operator for HSL-zuid and is a governmental body.
Jumperings (schakelstations)
Jumperings are the backup system of the electrical traction system. Their name in Dutch (translated as 'switch sites') already makes a suggestion towards their function. In a normal situation, the jumpering disconnects the influence zones from the two neighbouring substations. When a substation cannot deliver power to the catenaries (for whatever reason) the switching station connects the electrical circuit of the disconnected substation to it's neighbour. In this way, all sections remain powered more or less. 'More or less' because the temporary increased substation interval causes bigger voltage drops between the substations, limiting trains in their traction.
Links
Sporenplan.nl
Sporenplan.nl contains thorough schematic drawings of allmost all railway tracks in the Netherlands and is the Dutch counterpart of Gleisplan.net. Their detailled drawings even contain signals, track references and switch types for example. Sporenplan.nl has been contacted about usage of their drawings and provided permission to use the drawings for OSM mapping.
To get there, go to the sporenplan website, click 'Sporenplannen' in the top left, click on the Netherlands, click 'Actuele tekeningen - uitgebreid' and select the rail stretch which you'd like to view.
Example piece of drawing - copyright: sporenplan.nl
ProRail data
At OpenOV.nl, free to use Dutch public transport data is stored. The ProRail section contains very interesting information. For example, a map all Dutch rails (literally every known track) and their speed limits, can be extracted and rendered in QGIS. This QGIS file is available on request, through user talk.
ProRail has a lot more information to offer, which can freely be used by OSM/ORM mappers.