Dev:Examples for a non-zero operating day offset at the first ocpTT of a train run

From railML 2 Wiki
Revision as of 11:50, 23 May 2018 by Christian Rößiger (talk | contribs) (New headline, Changed wording and formatting, provided additional english translations)
Jump to navigation Jump to search

Examples for a non-zero operating day offset at the first <ocpTT> of a train run / Beispiele für einen Verkehrstage-Offset ungleich Null an der ersten <ocpTT> eines Zuglaufs

Route of the train is not completely mapped in the railML file / Laufweg des Zuges ist nicht vollständig in der railML-Datei abgebildet

If a train is not included in the railML file with its entire itinerary and already has a midnight transition before "entering" the railML file network, either its <operatingPeriod> must be rotated or moved or it has an arrivalDay / departureDay greater then 0 on its first <ocpTT>.

Ist ein Zug nicht mit seinem gesamten Laufweg in der railML-Datei enthalten und weist er vor dem „Eintritt“ in das Netz der railML-Datei bereits einen Mitternachtsübergang auf, so muss entweder seine <operatingPeriod> rotiert bzw. verschoben werden oder er hat an seiner ersten <ocpTT> einen arrivalDay / departureDay größer als 0.

<operatingPeriod id="opp0" bitMask="0111110..0111110" name="Montag-Freitag" />

<trainPart id="tp1">
  <operatingPeriodRef ref="opp0"/>
  <ocpsTT>
    <ocpTT ocpRef="ocp1" sequence="1" ocpType="stop">
      <times scope="scheduled" arrivalDay="1" arrival="02:00:00" departureDay="1" departure="02:15:00"/>
    </ocpTT>
    <ocpTT ocpRef="ocp2" sequence="2" ocpType="stop">
      <times scope="scheduled" arrivalDay="1" arrival="02:30:00"/>
    </ocpTT>
  </ocpsTT>
</trainPart>

The train already starts outside the infrastructure of the railML file on the "Monday-Friday" operating days. Since it is already over midnight before entering the railML file infrastructure, all its <ocpTT> elements have an arrivalDay / departureDay of 1, i.e. the train actually passes these operating points the following day from Monday to Friday, i.e. Tuesday to Saturday.

Der Zug beginnt bereits außerhalb der Infrastruktur der railML-Datei jeweils an den Verkehrstagen „Montag-Freitag“. Da er vor dem Eintritt in die Infrastruktur der railML-Datei bereits einmal über Mitternacht verkehrt ist, haben alle sein <ocpTT>-Elemente ein arrivalDay / departureDay von 1, d.h. an diesen Betriebsstellen kommt der Zug tatsächlich jeweils am Folgetag von Montag-Freitag vorbei, also Dienstag-Samstag.

Wing train synchronization before and after midnight/Synchronisation von Flügelzügen vor und nach Mitternacht

Given is a construction of 2 winged trains, whose train parts are linked to operational trains as follows:

Gegeben ist ein Konstrukt aus 2 Flügelzügen, deren Zugteile wie folgt zu betrieblichen Zügen verknüpft sind:

Flügelzug.png

Illustration in railML with 2 operational trains: Bf_A - Bf_C - Bf_D (blue) Bf_B - Bf_C (red) The vehicles of train section "tp1_1" from train 1 are to be transferred to train 2 in Bf_C and from there continue as train section "tp1_2" (without changing traffic days).

Abbildung in railML mit 2 betrieblichen Zügen: Bf_A – Bf_C – Bf_D (blau) Bf_B – Bf_C (rot) Die Fahrzeuge des Zugteiles “tp1_1” von Zug 1 sollen in Bf_C auf den Zug 2 umgekuppelt werden und von dort aus als Zugteil „tp1_2“ (ohne Verkehrstagewechsel) weiterlaufen.

<train trainNumber="1" type="operational">
  <!-- From Bf_B to Bf_C -->
  <trainPartSequence sequence="1">
    <trainPartRef ref="tp1_1"/>
  </trainPartSequence>
</train>

<train trainNumber="2" type="operational">
  <!-- From Bf_A to Bf_C -->
  <trainPartSequence sequence="1">
    <trainPartRef ref="tp2_1"/>
  </trainPartSequence>
  <!-- From Bf_C to Bf_D -->
  <trainPartSequence sequence="2">
    <trainPartRef ref="tp2_2" position="1"/>
    <trainPartRef ref="tp1_2" position="2"/>
  </trainPartSequence>
</train>

Train 2 (train part tp2_1 from Bf_A to Bf_C) has the operating days "Monday-Friday" and runs once above midnight even before its connection with train 1 in Bf_C. Since in Bf_C no changes of traffic days are planned, the train parts tp2_2 and tp1_2 still have the operating days "Monday-Friday" after their union and on their first <ocpTT> a departureDay=1. Two valid options remain for the operating days of the train section tp1_1 to ensure consistent operating days with the other train sections at Bf_C:

  1. same operating days "Monday-Friday" and departureDay=1 (as tp1_2) or
  2. operating days "Tuesday-Saturday" and departureDay=0 ("shift" the <operatingPeriod> one day backwards)

Option 1 therefore also leads to a departureDay>0 on the first <ocpTT> of the train run.

Zug 2 (Zugteil tp2_1 von Bf_A nach Bf_C) hat die Verkehrstage "Montag-Freitag" und fährt bereits vor seiner Vereinigung mit Zug 1 in Bf_C einmal über Mitternacht. Da in Bf_C kein Wechsel der Verkehrstage geplant ist, haben die Zugteile tp2_2 und tp1_2 nach ihrer Vereinigung weiterhin die Verkehrstage "Montag-Freitag" und an ihrer ersten <ocpTT> einen departureDay=1. Damit die Zugteile an Bf_C ohne „übrig bleibende“ Verkehrstage aneinanderpassen, bleiben für die Verkehrstage des Zugteils tp1_1 zwei gültige Möglichkeiten:

  1. Ebenfalls Verkehrstage „Montag-Freitag“ und departureDay=1 (wie tp1_2) oder
  2. Verkehrstage „Dienstag-Samstag“ und departureDay=0 („shiften“ der <operatingPeriod> um einen Tag nach „hinten“)

Die Abbildungsvariante 1 führt daher ebenfalls zu einem departureDay=0 an der ersten <ocpTT> des Zuglaufs.

First train of the timetable year before midnight/Erster Zug des Fahrplanjahrs vor Mitternacht

By specifying a value <> 0 for arrivalDay / departureDay, operating day information for trains outside the actual timetable period can also be specified. For example, a train could start just a few minutes before midnight and have its first operating day on the last evening before the start of the current timetable period..

Durch die Angabe eines Wertes <> 0 für arrivalDay / departureDay können auch Verkehrstage-Informationen für Züge außerhalb der eigentlichen Fahrplanperiode (timetablePeriod) angegeben werden. Denkbar wäre z.B. ein Zug, der kurz wenige Minuten vor Mitternacht beginnt und seinen ersten Verkehrstag bereits am letzten Abend vor Beginn der aktuellen Fahrplanperiode hat.

<timetablePeriod id="ttp0" startDate="2020-12-13" endDate="2021-12-11" name="2020/21"/>

<operatingPeriod id="opp0" timetablePeriodRef="ttp0" bitMask="11111...11111" name="täglich"/>

<trainPart id="tp1">
  <operatingPeriodRef ref="op1"/>
  <ocpsTT>
    <!-- Zug soll bereits am "Vorabend" des Fahrplanwechsels, d.h. am 12.12.2020 das erste Mal beginnen. Dies wird durch departureDay="-1" ausgedrückt -->
    <!-- Train is planned to start the first time on the evening before the current timetable period begins. This is expressed bei departureDay="1" -->
    <ocpTT ocpRef="ocp1" sequence="1" ocpType="stop">
      <times scope="scheduled" departure="23:55:00" departureDay="-1"/>
    </ocpTT>
    <!-- hier erfolgt Mitternachtsübergang, d.h. arrivalDay/departureDay springt von -1 auf 0 -->
    <!-- midnight overrun, i.e. arrivalDay/departureDay jumps from -1 to 0 -->
    <ocpTT ocpRef="ocp3" sequence="3" ocpType="stop">
      <times scope="scheduled" arrival="00:01:00" arrivalDay="0" departure="00:02:30" departureDay="0"/>
    </ocpTT>
    <ocpTT ocpRef="ocp4" sequence="4" ocpType="stop">
      <times scope="scheduled" arrival="00:04:00" arrivalDay="0"/>
    </ocpTT>
  </ocpsTT>
</trainPart>

Note: In this figure, the last day on which the train can start in this timetable year is 10.12.2021 (penultimate day of the timetable period), as the train can only run as often as the timetable year has days = length of the bitmask.

Anmerkung: Bei dieser Abbildung ist der letzte Tag, an dem der Zug in diesem Fahrplanjahr beginnen kann, der 10.12.2021 (vorletzter Tag der Fahrplanperiode), da der Zug nur so oft verkehren kann, wie das Fahrplanjahr Tage aufweist = Länge der Bitmaske.