Dev:Defining temporal availability of infrastructure elements and speed profiles

From railML 2 Wiki
Jump to navigation Jump to search

(introduced with version 2.4)

General / Allgemeines

This article describes the representation of general time restrictions using newly introduced attributes in railML® 2.4. This approach applies to the following elements:

The representation of temporal validities is characterized by start and end time, as well as start date and duration. It is also possible to represent periodically occurring validities with the equal start and end times.

Der Artikel beschreibt die Abbildung allgemeiner zeitlicher Einschränkungen unter Nutzung der neu in railML® 2.4 eingeführten Attribute. Verwendet wird dieser Ansatz für die folgenden Elemente:

Die Abbildung zeitlicher Gültigkeiten wird durch Anfangs- und End-Zeitpunkt, sowie Anfangs-Datum und Dauer charakterisiert. Eine Abbildung periodisch auftretender Gültigkeiten mit gleichen Anfangs- und Endzeitpunkt ist ebenfalls möglich.

Concept / Konzept

The temporal aspect of the restriction is defined by four attributes:

  • operatingPeriodRef xs:IDREF: Reference to an <operatingPeriod>. It defines the dates on which the restriction begins. If the <operatingPeriod> contains more than one day, it is a periodic restriction.
  • startTime xs:time: Start time of the restriction. If no startTime is specified, 0.00 is assumed.
  • endTime xs:time: End time of the restriction. If no endTime is specified, 24.00 is assumed.
  • endDayOffset xs:nonNegativeInteger: Number of midnight transitions over which the restriction lasts. If no endDayOffset} is specified, a value of 0 is assumed.

The duration of a restriction is calculated from the difference between endTime and startTime, and the number of midnight transitions multiplied by 24 hours:

duration = endTime - startTime + 24h * endDayOffset

If the end time is before the start time, endDayOffset must be greater than 0, since the restriction lasts at least once above midnight.

Der zeitliche Aspekt der Einschränkung wird durch vier Attribute definiert:

  • operatingPeriodRef xs:IDREF: Verweis auf eine <operatingPeriod>. Diese definiert die Tage, an denen die Einschränkung beginnt. Enthält die <operatingPeriod> mehr als einen Tag, so handelt es sich um eine periodische Einschränkung.
  • startTime xs:time: Anfangs-Zeitpunkt der Einschränkung. Ist keine startTime angegeben, so ist 0 Uhr anzunehmen.
  • endTime xs:time: End-Zeitpunkt der Einschränkung. Ist keine endTimeangegeben, so ist 24 Uhr anzunehmen.
  • endDayOffset xs:nonNegativeInteger: Anzahl der Mitternachtsübergänge über die die Sperrung andauert. Ist kein endDayOffsetangegeben, so wird ein Wert von 0 angenommen.

Die Dauer einer Einschränkung berechnet sich aus der Differenz aus endTimeund startTime, sowie der Anzahl Mitternachts-Übergänge multipliziert mit 24 Stunden:

Duration = endTime - startTime + 24h * endDayOffset

Befindet sich der End-Zeitpunkt zeitlich vor dem Anfangs-Zeitpunkt, so muss endDayOffset größer als 0 sein, da die Einschränkung mindestens einmal über Mitternacht andauert.

Examples / Beispiele

Periodic closing of a track / Periodische Sperrung eines Gleises

<timetablePeriod id="ttp_2020_21" startDate="2020-12-13" endDate="2021-12-11" description="2020/2021"/>

<operatingPeriod id="opp_0" description="nur 10.-16.02." timetablePeriodRef="ttp_2020_21" 
bitMask="000…00001111111000…000" />
<!-- Die <operatingPeriod> enthält die 6 Tage, an denen die Sperrung jeweils um 20 Uhr beginnt -->

<track id="tr_0" name="4711">
  <states>
    <state disabled="true" startTime="20:00:00" endTime="22:00:00" endDayOffset="0" operatingPeriodRef="opp_0">
      <!-- Die Sperrung verläuft nicht über Mitternacht, daher ist endDayOffset=0 -->
      <from ocpRef="_ocpStart" pos="0" />
      <to ocpRef="_ocpEnd" pos="4532" />
    </state>
  </states>
</track>

The track is closed from 10 to 16 February 2021, between 20.00 and 22.00 each day / Das Gleis wird an 6 aufeinander folgenden Tagen (10.-16.02.2021) jeweils 20-22 Uhr gesperrt.

Continuous non-periodic closure of a track over midnight / Fortlaufende einmalige Sperrung eines Gleises über Mitternacht

<timetablePeriod id="ttp_2020_21" startDate="2020-12-13" endDate="2021-12-11" description="2020/2021"/>

<operatingPeriod id="opp_0" description="nur 10.02." timetablePeriodRef="ttp_2020_21' bitMask='000…00001000000000…000" />
<!-- Die Sperrung ist nicht periodisch, daher wird der Beginn der Sperrung als Einzeltag definiert. -->

<track id="tr_0" name="4711">
  <states>
    <state disabled="true" startTime="20:00:00" endTime="22:00:00" endDayOffset="6" operatingPeriodRef="opp_0">
      <!-- Die Sperrung verläuft insgesamt sechs Mal über Mitternacht, daher ist endDayOffset=6 -->
      <from ocpRef="_ocpStart" pos="0" />
      <to ocpRef="_ocpEnd" pos="4532" />
    </state>
  </states>
</track>

The track is closed from 10 February 2021, 20.00 over 6 nights to 16 February 2021, 22.00 / Die Gleissperrung beginnt am 10.02.2021, 20 Uhr und dauert über 6 Nächte bis 16.02.2021, 22 Uhr an.

Track closure over three weekends, each from Friday to Monday / Gleissperrung über drei Wochenenden, jeweils von Freitag bis Montag

<timetablePeriod id="ttp_2020_21" startDate="2020-12-13" endDate="2021-12-11" description="2020/2021"/>

<operatingPeriod id="opp_0" description="nur 20., 27.02.; 06.03." timetablePeriodRef="ttp_2020_21" bitMask="000…000010000001000000100…000">
<!-- Die Sperrung beginnt an drei Wochenenden aufs Neue, daher sind die 3 Starttermine (Freitage) als Einzeltage definiert -->

<track id="tr_0" name="4711">
  <states>
    <state disabled="true" startTime="22:00:00" endTime="04:00:00" endDayOffset="3" operatingPeriodRef="opp_0" >
      <!-- Die Sperrung verläuft insgesamt drei Mal über Mitternacht (Freitag-Montag), daher ist endDayOffset=3 -->
      <from ocpRef="_ocpStart" pos="0" />
      <to ocpRef="_ocpEnd" pos="4532" />
    </state>
  </states>
</track>

The track is closed on three weekends (20/21 February, 27/28 February and 06/07 March 2021), each from Friday, 22.00 to Monday, 04.00 / Das Gleis ist an drei Wochenenden gesperrt (20./21.02., 27./28.02. und 06./07.03.2021), jeweils von Freitag, 22.00 Uhr bis Montag, 04.00 Uhr

New speed profile becomes effective during timetable period / Neues Geschwindigkeitsprofil tritt innerhalb einer Fahrplanperiode in Kraft

<timetablePeriod id="ttp_2020_21" startDate="2020-12-13" endDate="2021-12-11" description="2020/2021"/>

<operatingPeriod id="opp_0" description="nur 10.02." timetablePeriodRef="ttp_2020_21' bitMask='000…000010000000…000" />

<speedProfile id="spf_0" operatingPeriodRef="opp_0" endDayOffset="304" />

The <speedProfile> becomes effective on 10.02.2021. The <operatingPeriod> contains only the start date. Since no start and end time is specified, the <speedProfile> is valid 304 days from 0.00 on 10.02.2021 (until 11.12.2021, 24.00). / Das <speedProfile> tritt am 10.02.2021 in Kraft. Die <operatingPeriod> enthält nur das Anfangsdatum. Da keine Anfangs- und Endzeitpunkt angegeben ist, gilt das <speedProfile> 304 Tage vom 10.02.2021, 0.00 Uhr an (bis zum 11.12.2021, 24.00).


The same situation can also be expressed by specifying a daily (0.00-24.00) repeating validity. / Derselbe Sachverhalt kann auch durch Angabe einer sich täglich (0.00-24.00 Uhr) wiederholenden Gültigkeit ausgedrückt werden.

<timetablePeriod id="ttp_2020_21" startDate="2020-12-13" endDate="2021-12-11" description="2020/2021"/>

<operatingPeriod id="opp_0" description="10.02.2021-11.12.2021" timetablePeriodRef="ttp_2020_21' bitMask='000…00001111111…111" />

<speedProfile id="spf_0" operatingPeriodRef="opp_0" />

In this case, the <operatingPeriod> contains all days of validity. endDayOffset is 0 and can be omitted, since the <speedProfile> is valid daily from 0.00-24.00. / In diesem Fall enthält die <operatingPeriod> alle Tage der Gültigkeit. endDayOffset ist 0 und kann entfallen, da das <speedProfile> täglich von 0.00-24.00 gültig ist.

Related information / Verwandte Informationen