Dev:Border between infrastructure managers and countries

From railML 2 Wiki
Revision as of 12:46, 15 January 2024 by RailML Coord Documentation (talk | contribs) (Bild retour)
Jump to navigation Jump to search
Border between infrastructure managers Správa železnic in the Czech Republic and Deutsche Bahn Netz in Germany (By Falk2/Image source/CC BY-SA 3.0)

The overarching objective of the EU Directive 2012/34/EU is to establish a single European railway area. Contributing to this objective is the requirement for improved cooperation of infrastructure managers and ‘cross-border agreements’ to enable seamless operations for train paths crossing borders, or ‘handover points’ (defined in [1] as “the point where legal responsibility changes between the infrastructure managers”).

Border between infrastructure managers ÖBB Infra (Wiki banner.png) in Austria and DB InfraGO (Wiki banner.png 🇩🇪) in Germany

The photo shows an example of a ‘handover point’ at the Germany-Czech Republic border on the Děčín to Dresden-Neustadt 6240 railway line. This line is operated by two different rail operating companies, Správa železnic in the Czech Republic and Deutsche Bahn Netz in Germany, meaning there is a change in infrastructure managers.

In the source code, shown below, there are two tracks belonging to two infrastructure managers. Ownership is represented by <ownerChange> elements. Further information is given in the <infrastructureManager> element and corresponding code list (link to the railML® website).

<metadata>
  <organizationalUnits>
    <infrastructureManager id="ima01" code="DBN"/>
    <infrastructureManager id="ima02" code="SZD"/>
  </organizationalUnits>
</metadata>
..
<track id="tr01">
  <trackTopology>
    <trackBegin id="tb01" pos="0" absPos="0">..</trackBegin>
    <trackEnd id="te01" pos="500" absPos="500">..</trackEnd>
  </trackTopology>
  <trackElements>
    ..
    <ownerChange id="och01" pos="0" absPos="0" infrastructureManagerRef="ima01"/>
    ..
  </trackElements>
</track>
<track id="tr02">
  <trackTopology>
    <trackBegin id="tb02" pos="0" absPos="500">..</trackBegin>
    <trackEnd id="te02" pos="500" absPos="1000">..</trackEnd>
  </trackTopology>
  <trackElements>
    ..
    <ownerChange id="och02" pos="0" absPos="500" infrastructureManagerRef="ima02" name="Bahnverw.grenze Bad Schandau Gr"/>
    ..
  </trackElements>
</track>

It is important to ensure the correct definition of the railway tracks. Every railway track should have an <ownerChange> at the beginning of the track positioned at a zero coordinate. Additional semantic constraints apply for the <speedChange> [2].

In the example code above there are two railway tracks. Each of them has <ownerChange> positioned at the beginning. This is due to the reasoning that every track should be considered a separate system with its own properties defined. But technically one track is also enough because there is no need for the second track to represent change. See example of one track representing a "Border between infrastructure managers" below. To answer a question which example to use when, this seems to be a preference of a user. Both examples are syntactically and semantically valid and actually came from two different users of railML2.

<metadata>
  <organizationalUnits>
    <infrastructureManager id="ima01" code="DBN"/>
    <infrastructureManager id="ima02" code="SZD"/>
  </organizationalUnits>
</metadata>
..
<track id="tr01">
  <trackTopology>
    <trackBegin id="tb01" pos="0" absPos="0">..</trackBegin>
    <trackEnd id="te01" pos="500" absPos="1000">..</trackEnd>
  </trackTopology>
  <trackElements>
    ..
    <ownerChange id="och01" pos="0" absPos="0" infrastructureManagerRef="ima01"/>
    <ownerChange id="och02" pos="500" absPos="500" infrastructureManagerRef="ima02" name="Bahnverw.grenze Bad Schandau Gr"/>
    ..
  </trackElements>
</track>

References