Dev:Types of ocps

From railML 2 Wiki
Jump to navigation Jump to search

This article explains basic concepts: How to encode different types of stations in "macro" infrastructure models.
Dieser Artikel erklärt Grundlagen des Umganges mit Betriebsstellen bei "Makro"-Modellierung im Infrastructure-Subschema.

Encoding of different types of <ocp>s (stations)

In a “macro” infrastructure model, some basic infrastructure elements (as switches, sidings, signals) are aggregated into “higher elements”. A very common aggregation is to form larger “stations” for timetabling. Even nowadays, in a time of very detailed software tools, it’s still necessary to use highly aggregated infrastructure information e. g. for passenger information.

In different countries, there are different definitions for such aggregated infrastructure elements.
In railML, they are generally described by the element <ocp>.
This article shall summarise the usage of <ocp> for different types of (national) aggregated infrastructure elements.

There are also some examples published at Dev:Guides (link to the railML® website), e.g. Passenger station (link to the railML® website), Intermodal terminal (link to the railML® website)

🗒️ Please help extending this article by adding the types of your country.


Germany

The <ocp> types introduced here relate to the classical definition of Betriebsstelle of the (former) Operation Rule Book Fahrdienstvorschrift. Not all of these types need to be used as <ocp>s in a railML file. Rather, it depends on the use case which types are necessary. For instance, blocking signals are optional <ocp>s in case a timetable for passenger information shall be described.

Some attributes and sub-elements of <ocp> as <area>, <geoCoord>, <designator> are omitted for better clarity.
The sub-element <propEquipment> is described at the end for all types.
Attributes marked with =… can have any permitted value depending on the actual situation.
Examples are taken from iRFP’s railML example files Ostsachsen (link to the railML® website, PDF, visited on 2018-06-18; Model of eastern Syxony by iRFP; official railML example file; only for registered users) or Südthüringen (southern Thuringia) and can also be viewed following the link in a complete railML file.


Basic types

Bahnhof für Reise- und Güterverkehr • Station for passengers and freight with switches

example track map of a station
      <ocp id=… name=…>
        <propOperational operationalType='station' orderChangeable='true' ensuresTrainSequence='true'/>
        <propService passenger='true' service=… goodsLoading='true'/>
      </ocp>
For instance: <ocp id='ocp_DKA' name='Kamenz (Sachsen)' in [1]

Bahnhof nur für Reiseverkehr • Passenger-only station with switches

example track map of a passenger-only station
      <ocp id=… name=…>
        <propOperational operationalType='station' orderChangeable='true' ensuresTrainSequence='true'/>
        <propService passenger='true' service=…/>
      </ocp>
For instance: <ocp id='ocp_DN' name='Dresden-Neustadt' in [1]

Haltepunkt • Passenger-only halt; station without switches

example track map of a halt
      <ocp id=… name=…>
        <propOperational orderChangeable='false' ensuresTrainSequence='false'/>
        <propService passenger='true' service=…/>
      </ocp>
For instance: <ocp id='ocp_DKRD' name='Kleinröhrsdorf' in [1]

Bahnhof nur für Güterverkehr • Freight-only station

example track map of a freight-only station
      <ocp id=… name=…>
        <propOperational operationalType='station' orderChangeable='true' ensuresTrainSequence='true'/>
        <propService goodsLoading='true' goodsIntermodal=…/>
      </ocp>
For instance: <ocp id='ocp_BHG' name='Horka [Wehrkirch] Gbf.' in [1]

Betriebsbahnhof • Loop and/or overtaking track with no passenger nor freight access

example track map of a smaller loop
example track map of a loop-only station
      <ocp id=… name=…>
        <propOperational operationalType='station' orderChangeable='true' ensuresTrainSequence='true'/>
        <propService/>
      </ocp>
For instance: <ocp id='ocp_BGRA' name='Graustein Bbf.' in [1]
For instance: <ocp id='ocp_UTHE' name='Übf. Theuern' in [2]

Anschlussstelle • Line-side goods or private siding outside station limits

example track map of a private siding
      <ocp id=… name=…>
        <propOperational orderChangeable='false' ensuresTrainSequence='false'/>
        <propService goodsSiding='true'/>
      </ocp>
For instance: <ocp id='ocp_DIN' name='Dresden Industriegelände Anst.' in [1]

Abzweigstelle • Junction of two lines

example track map of a junction of two lines
      <ocp id=… name=…>
        <propOperational operationalType='junction' orderChangeable='true' ensuresTrainSequence='true'/>
        <propService/>
      </ocp>
For instance: <ocp id='ocp_BSAE' name='Abzw. Särichen' in [1]

Überleitstelle zwischen zwei- und einsgleisigen Streckenabschnitten • Junction as change between double and single track (of the same line)

example track map of a junction between single and double track
      <ocp id=… name=…>
        <propOperational operationalType='crossover' orderChangeable='true' ensuresTrainSequence='true'/>
        <propService/>
      </ocp>
For instance: <ocp id='ocp_DOZ_U' name='Üst. Oberoderwitz' in [1]

Überleitstelle auf einer zweigleisigen Strecke • Crossovers between two tracks (of the same line)

example track map of a crossover
      <ocp id=… name=…>
        <propOperational operationalType='crossover' orderChangeable='true' ensuresTrainSequence='true'/>
        <propService/>
      </ocp>
For instance: <ocp id='ocp_XPBL' name='Bielawa Dolna [Nieder-Bielau]' in [1]
For instance: <ocp id='ocp_UMA' name='Ülst. Massertal' in [2]

Blocksignal • Blocking signal or any other blocking location (ETCS, LZB)

example track map of blocking signals
Each signal group at same location (i. e. per direction) should be a separate <ocp> to reduce “location errors”. Also used for any other signals (which are not blocking signals but act as such, e. g. home signals) alongside a line.
      <ocp id=… name=…>
        <propOperational operationalType='blockSignal' orderChangeable='false' ensuresTrainSequence='true'/>
        <propService/>
      </ocp>
For instance: <ocp id='ocp_DKT_903' name='Sbk 903' in [1]

Typical combinations

Blockstelle • Locally staffed block post

example track map of a block post
“Deprecated” combination of a signal box and typically one or two blocking signals; the location of the <ocp> is rather the signal box than the location of the signals.
      <ocp id=… name=…>
        <propOperational operationalType='blockPost' orderChangeable='false' ensuresTrainSequence='true'/>
        <propService/>
      </ocp>
For instance: <ocp id='ocp_BBAE' name='Bärhaus' in [1]

Haltestelle (Haltepunkt mit Anschlussstelle) • Combination of a line-side goods or private siding outside station limits and a passenger halt

example track map of a combination of private siding and passenger halt
      <ocp id=… name=…>
        <propOperational orderChangeable='false' ensuresTrainSequence='false'/>
        <propService passenger='true' goodsSiding='true'/>
      </ocp>
For instance: <ocp id='ocp_DSML' name='Schmölln (Oberlausitz)' in [1]

Haltepunkt mit Blockstelle • Combination of a passenger halt with blocking signals

example track map of a combination of passenger halt with blocking signals
Can be combined into one <ocp> if the stopping place at a signal is the same as for the passenger halt (signals at end of platform).
      <ocp id=… name=…>
        <propOperational operationalType='blockPost' orderChangeable='false' ensuresTrainSequence='true'/>
        <propService passenger='true'/>
      </ocp>
For instance: <ocp id='ocp_BLA' name='Lauta (Niederlausitz)' in [1]

Bahnhofsteile • Longer station with more than one “stopping place” per route

example track map of a longer station with two parts
A station with several parts - where one train can stop several times – may be split into several <ocp>s to encode the departure, arrival and run time between the different station parts.
For instance: <ocp id='ocp_DKT' name='Dresden-Klotzsche' and <ocp id='ocp_DKT_B' name='Dresden-Klotzsche Bbf.' in [1]

German specialities

The following German specialities are not common in other countries and not regarded as international agreed. They may occur in German railML® files but should not be used as general “pattern”.

Endhaltepunkt • Passenger-only halt (station without switches) where trains regularly terminate and restart (turn, change direction)

example track map of a halt
No infrastructural difference to a simple halt, just difference in declaration: For reasons of bureaucracy, the beginning and ending of trains is regarded as “train order change”.
      <ocp id=… name=…>
        <propOperational operationalType='station' orderChangeable='true' ensuresTrainSequence='true'/>
        <propService passenger='true'/>
      </ocp>
For instance: <ocp id='ocp_BHOR' name='Horka [Wehrkirch] Hp.' in [1]
For instance: <ocp id='ocp_USMS' name='Schmalkalden-Fachhochschule (Stillertor)' in [2]
For instance: <ocp id='ocp_UCF' name='Cursdorf' in [2]

Ausweichanschlussstelle • Line-side goods or private siding outside station limits which allows crossings or overtaking of trains

example track map of an Ausweichanschlussstelle
This is a rather old-fashioned German speciality: The difference between a freight-only station, an Anschlussstelle and an Ausweichanschlussstelle lies in interlocking details and is not very objective. Because there is no relevant functional difference, we do currently not encode any differences to Anschlussstelle here:
      <ocp id=… name=…>
        <propOperational orderChangeable='false' ensuresTrainSequence='false'/>
        <propService goodsSiding='true'/>
      </ocp>
For instance: <ocp id='ocp_BKSB' name='Awanst. Kodersdorf Sandberg' in [1]

The additional (optional) element <propEquipment>.<summary> easily follows the same patterns:

  • The attribute hasSwitches is true if the <ocp> has at least one switch. This is true for line-side goods or private sidings, junctions, crossovers and for all stations except halts.
  • The attribute hasHomeSignals is surely false for halts, junctions, crossovers and line-side goods or private sidings. For all other <ocp>s, it is normally true except in rare simplified cases like Radio Electronic Token Block (external link) (RETB). It is also true if the home signals are replaced by marker boards with the same function (ETCS or German Ne1/So5) – it does not matter here whether the signals are switchable or not.
  • The attribute hasStarterSignals is surely false for halts and line-side goods or private sidings. For all other <ocp>s including block posts, junctions and crossovers, it is true. So, it is practically redundant to the attribute ensuresTrainSequence: Both have always the same value in normal German railway operation where trains operate in blocking distances (at least one signal has to ensure the blocking distance). It is also true if the starter signals are replaced by marker boards with the same function (ETCS or RETB “Stop board” or German Ne5/So8) – it does not matter here whether the signals are switchable or not.

For a typical “fully operational” station with switches:

        <propEquipment>
          <summary hasHomeSignals='true' hasStarterSignals='true' hasSwitches='true'/>
        </propEquipment>

For a simple halt or line-side goods or private siding:

        <propEquipment>
          <summary hasHomeSignals='false' hasStarterSignals='false' hasSwitches='false'/>
        </propEquipment>

For a typical junction or crossover:

        <propEquipment>
          <summary hasHomeSignals='false' hasStarterSignals='true' hasSwitches='true'/>
        </propEquipment>

For a block post, signal, LZB/ETCS block marker board or Endhaltepunkt:

        <propEquipment>
          <summary hasHomeSignals='false' hasStarterSignals='true' hasSwitches=false'/>
        </propEquipment>

Files

[1] Ostsachsen (link to the railML® website, PDF, visited on 2018-06-18; Model of eastern Saxony by iRFP; official railML example file; only for registered users)
[2] Example file Südthüringen by iRFP