Example Train Annex 4 v2

Version 2 of example annex 4

from networkx import DiGraph

from tom.util import example, dump_routing_info_as_xml
from tom.tom import make_train_from_yml, TrainRun, RouteSection, Route
from tom.plot import *

Load example annex 4 version 2 from yaml specification

pattern = 'annex-4-2'
_, t_spec_file = example('../tests/data', pattern)
print(t_spec_file.read_text())

Out:

---
coreID: ID1
lead_ru: RU1
version: 2 # RoutingInfo version
sections:
    - id: 10
      version: 2 # RouteSection version
      departure_station: S
      departure_time: '00:20:00'
      arrival_station: H1
      travel_time: &s1-tt '24:20:00'
      calendar:
        begin: '2021-02-01'
        end: '2021-02-04'
      color: green
      succ:
          - 11
    - id: 11
      version: 2
      departure_station: H1
      arrival_station: T
      travel_time: &s2-tt '07:30:00'

    - id: 40
      version: 1
      departure_station: S
      departure_time: '23:30:00'
      arrival_station: H1
      travel_time: '24:20:00'
      color: yellowgreen
      calendar:
        begin: '2021-02-04'
        end: '2021-02-06'
      succ:
          - 41
    - id: 41
      version: 1
      departure_station: H1
      arrival_station: T
      travel_time: '07:30:00'

    # Sec 3-4: Shorten calender
    # Change departure times
    - id: 20
      version: 2
      departure_station: S
      departure_time: '23:55:00'
      arrival_station: H1
      travel_time: *s1-tt
      color: blue
      calendar:
        begin: '2021-02-11'
        end: '2021-02-13'
      succ:
          - 21
    - id: 21
      version: 2
      departure_station: H1
      arrival_station: T
      travel_time: *s2-tt

    # Shorten calender of D-T
    - id: 50
      version: 1
      departure_station: D
      departure_time: '01:45:00'
      arrival_station: H1
      travel_time: '22:30:00'
      color: red
      calendar:
        begin: '2021-02-08'
        end: '2021-02-11'
      succ:
          - 51
    - id: 51
      version: 1
      departure_station: H1
      arrival_station: T
      travel_time: *s2-tt

    - id: 30
      version: 2
      departure_station: D
      departure_time: '01:10:00'
      arrival_station: H1
      travel_time: '22:30:00'
      color: salmon
      calendar:
        begin: '2021-02-15'
        end: '2021-02-20'
      succ:
          - 31
    - id: 31
      version: 2
      departure_station: H1
      arrival_station: T
      travel_time: *s2-tt

Now create train object and show its train id.

t = make_train_from_yml(t_spec_file)
t.train_id()

Out:

'TR/8350/ID1/00/2021'

Timetable

df = t.to_dataframe()
df
Departure D Departure S Arrival H1 Departure H1 Arrival T
Daily Train ID
TR/8350/ID1/10/2021/2021-02-01 Mo 01.02.21 00:20 Di 02.02.21 00:40 Di 02.02.21 00:40 Di 02.02.21 08:10
TR/8350/ID1/10/2021/2021-02-02 Di 02.02.21 00:20 Mi 03.02.21 00:40 Mi 03.02.21 00:40 Mi 03.02.21 08:10
TR/8350/ID1/10/2021/2021-02-03 Mi 03.02.21 00:20 Do 04.02.21 00:40 Do 04.02.21 00:40 Do 04.02.21 08:10
TR/8350/ID1/10/2021/2021-02-04 Do 04.02.21 00:20 Fr 05.02.21 00:40 Fr 05.02.21 00:40 Fr 05.02.21 08:10
TR/8350/ID1/40/2021/2021-02-04 Do 04.02.21 23:30 Fr 05.02.21 23:50 Fr 05.02.21 23:50 Sa 06.02.21 07:20
TR/8350/ID1/40/2021/2021-02-05 Fr 05.02.21 23:30 Sa 06.02.21 23:50 Sa 06.02.21 23:50 So 07.02.21 07:20
TR/8350/ID1/40/2021/2021-02-06 Sa 06.02.21 23:30 So 07.02.21 23:50 So 07.02.21 23:50 Mo 08.02.21 07:20
TR/8350/ID1/50/2021/2021-02-08 Mo 08.02.21 01:45 Di 09.02.21 00:15 Di 09.02.21 00:15 Di 09.02.21 07:45
TR/8350/ID1/50/2021/2021-02-09 Di 09.02.21 01:45 Mi 10.02.21 00:15 Mi 10.02.21 00:15 Mi 10.02.21 07:45
TR/8350/ID1/50/2021/2021-02-10 Mi 10.02.21 01:45 Do 11.02.21 00:15 Do 11.02.21 00:15 Do 11.02.21 07:45
TR/8350/ID1/20/2021/2021-02-11 Do 11.02.21 23:55 Sa 13.02.21 00:15 Sa 13.02.21 00:15 Sa 13.02.21 07:45
TR/8350/ID1/50/2021/2021-02-11 Do 11.02.21 01:45 Fr 12.02.21 00:15 Fr 12.02.21 00:15 Fr 12.02.21 07:45
TR/8350/ID1/20/2021/2021-02-12 Fr 12.02.21 23:55 So 14.02.21 00:15 So 14.02.21 00:15 So 14.02.21 07:45
TR/8350/ID1/20/2021/2021-02-13 Sa 13.02.21 23:55 Mo 15.02.21 00:15 Mo 15.02.21 00:15 Mo 15.02.21 07:45
TR/8350/ID1/30/2021/2021-02-15 Mo 15.02.21 01:10 Mo 15.02.21 23:40 Mo 15.02.21 23:40 Di 16.02.21 07:10
TR/8350/ID1/30/2021/2021-02-16 Di 16.02.21 01:10 Di 16.02.21 23:40 Di 16.02.21 23:40 Mi 17.02.21 07:10
TR/8350/ID1/30/2021/2021-02-17 Mi 17.02.21 01:10 Mi 17.02.21 23:40 Mi 17.02.21 23:40 Do 18.02.21 07:10
TR/8350/ID1/30/2021/2021-02-18 Do 18.02.21 01:10 Do 18.02.21 23:40 Do 18.02.21 23:40 Fr 19.02.21 07:10
TR/8350/ID1/30/2021/2021-02-19 Fr 19.02.21 01:10 Fr 19.02.21 23:40 Fr 19.02.21 23:40 Sa 20.02.21 07:10
TR/8350/ID1/30/2021/2021-02-20 Sa 20.02.21 01:10 Sa 20.02.21 23:40 Sa 20.02.21 23:40 So 21.02.21 07:10


Bildfahrplan

Show timetable

plot_train(t)
Timetable TR/8350/ID1/00/2021 v2

Route Sections

From which sections the train is composed?

section: RouteSection
for section in t.sections:
    print(section.description(), "\n")

Out:

ID        : 10.v2
Calender  : 01/02 to 04/02 1111
Start   at: 00:20 in S
Arrival at: 00:40 in H1
Successors: [11]

ID        : 11.v2
Calender  : 02/02 to 05/02 1111
Start   at: 00:40 in H1
Arrival at: 08:10 in T
Successors: []

ID        : 40.v1
Calender  : 04/02 to 06/02 111
Start   at: 23:30 in S
Arrival at: 23:50 in H1
Successors: [41]

ID        : 41.v1
Calender  : 05/02 to 07/02 111
Start   at: 23:50 in H1
Arrival at: 07:20 in T
Successors: []

ID        : 20.v2
Calender  : 11/02 to 13/02 111
Start   at: 23:55 in S
Arrival at: 00:15 in H1
Successors: [21]

ID        : 21.v2
Calender  : 13/02 to 15/02 111
Start   at: 00:15 in H1
Arrival at: 07:45 in T
Successors: []

ID        : 50.v1
Calender  : 08/02 to 11/02 1111
Start   at: 01:45 in D
Arrival at: 00:15 in H1
Successors: [51]

ID        : 51.v1
Calender  : 09/02 to 12/02 1111
Start   at: 00:15 in H1
Arrival at: 07:45 in T
Successors: []

ID        : 30.v2
Calender  : 15/02 to 20/02 111111
Start   at: 01:10 in D
Arrival at: 23:40 in H1
Successors: [31]

ID        : 31.v2
Calender  : 15/02 to 20/02 111111
Start   at: 23:40 in H1
Arrival at: 07:10 in T
Successors: []

Section graph

The section graph is computed using the successor relation.

sg: DiGraph = t.section_graph()
plot_graph(sg)
plot annex 4 v2

Routes

Print all possible routes. Routes are calculated from all possible paths in the section graph.

route: Route
for route in t.routes():
    print(route.description(), "\n")

Out:

Route     : S-H1-T
Key       : 10-11
Calendar  : 01/02 to 04/02  1111
Start   at: 00:20 in S
Arrival at: 00:40 in H1
Arrival at: 08:10 in T


Route     : S-H1-T
Key       : 40-41
Calendar  : 04/02 to 06/02  111
Start   at: 23:30 in S
Arrival at: 23:50 in H1
Arrival at: 07:20 in T


Route     : S-H1-T
Key       : 20-21
Calendar  : 11/02 to 13/02  111
Start   at: 23:55 in S
Arrival at: 00:15 in H1
Arrival at: 07:45 in T


Route     : D-H1-T
Key       : 50-51
Calendar  : 08/02 to 11/02  1111
Start   at: 01:45 in D
Arrival at: 00:15 in H1
Arrival at: 07:45 in T


Route     : D-H1-T
Key       : 30-31
Calendar  : 15/02 to 20/02  111111
Start   at: 01:10 in D
Arrival at: 23:40 in H1
Arrival at: 07:10 in T

Section runs

For each day of the calendar of a section a SectionRun is created. The section runs are the rows of RouteSection.to_dataframe:

for section in t.sections:
    print(f"{section.section_id}: {section}")
    print(section.to_dataframe(), "\n")

Out:

10: S-H1
            ID                   S                  H1
2021-02-01  10 2021-02-01 00:20:00 2021-02-02 00:40:00
2021-02-02  10 2021-02-02 00:20:00 2021-02-03 00:40:00
2021-02-03  10 2021-02-03 00:20:00 2021-02-04 00:40:00
2021-02-04  10 2021-02-04 00:20:00 2021-02-05 00:40:00

11: H1-T
            ID                  H1                   T
2021-02-02  11 2021-02-02 00:40:00 2021-02-02 08:10:00
2021-02-03  11 2021-02-03 00:40:00 2021-02-03 08:10:00
2021-02-04  11 2021-02-04 00:40:00 2021-02-04 08:10:00
2021-02-05  11 2021-02-05 00:40:00 2021-02-05 08:10:00

40: S-H1
            ID                   S                  H1
2021-02-04  40 2021-02-04 23:30:00 2021-02-05 23:50:00
2021-02-05  40 2021-02-05 23:30:00 2021-02-06 23:50:00
2021-02-06  40 2021-02-06 23:30:00 2021-02-07 23:50:00

41: H1-T
            ID                  H1                   T
2021-02-05  41 2021-02-05 23:50:00 2021-02-06 07:20:00
2021-02-06  41 2021-02-06 23:50:00 2021-02-07 07:20:00
2021-02-07  41 2021-02-07 23:50:00 2021-02-08 07:20:00

20: S-H1
            ID                   S                  H1
2021-02-11  20 2021-02-11 23:55:00 2021-02-13 00:15:00
2021-02-12  20 2021-02-12 23:55:00 2021-02-14 00:15:00
2021-02-13  20 2021-02-13 23:55:00 2021-02-15 00:15:00

21: H1-T
            ID                  H1                   T
2021-02-13  21 2021-02-13 00:15:00 2021-02-13 07:45:00
2021-02-14  21 2021-02-14 00:15:00 2021-02-14 07:45:00
2021-02-15  21 2021-02-15 00:15:00 2021-02-15 07:45:00

50: D-H1
            ID                   D                  H1
2021-02-08  50 2021-02-08 01:45:00 2021-02-09 00:15:00
2021-02-09  50 2021-02-09 01:45:00 2021-02-10 00:15:00
2021-02-10  50 2021-02-10 01:45:00 2021-02-11 00:15:00
2021-02-11  50 2021-02-11 01:45:00 2021-02-12 00:15:00

51: H1-T
            ID                  H1                   T
2021-02-09  51 2021-02-09 00:15:00 2021-02-09 07:45:00
2021-02-10  51 2021-02-10 00:15:00 2021-02-10 07:45:00
2021-02-11  51 2021-02-11 00:15:00 2021-02-11 07:45:00
2021-02-12  51 2021-02-12 00:15:00 2021-02-12 07:45:00

30: D-H1
            ID                   D                  H1
2021-02-15  30 2021-02-15 01:10:00 2021-02-15 23:40:00
2021-02-16  30 2021-02-16 01:10:00 2021-02-16 23:40:00
2021-02-17  30 2021-02-17 01:10:00 2021-02-17 23:40:00
2021-02-18  30 2021-02-18 01:10:00 2021-02-18 23:40:00
2021-02-19  30 2021-02-19 01:10:00 2021-02-19 23:40:00
2021-02-20  30 2021-02-20 01:10:00 2021-02-20 23:40:00

31: H1-T
            ID                  H1                   T
2021-02-15  31 2021-02-15 23:40:00 2021-02-16 07:10:00
2021-02-16  31 2021-02-16 23:40:00 2021-02-17 07:10:00
2021-02-17  31 2021-02-17 23:40:00 2021-02-18 07:10:00
2021-02-18  31 2021-02-18 23:40:00 2021-02-19 07:10:00
2021-02-19  31 2021-02-19 23:40:00 2021-02-20 07:10:00
2021-02-20  31 2021-02-20 23:40:00 2021-02-21 07:10:00

TrainRuns

Each TrainRun defines a row in the timetable of the train above

tr: TrainRun
for tr in t.train_run_iterator():
    print(tr)
    for sr in tr.sections_runs:
        print(sr)
    print("\n")

Out:

TR/8350/ID1/10/2021/2021-02-01
10.v2:2021-02-01 00:20 OTR=0 S-H1 2021-02-02 00:40 OTR=1
11.v2:2021-02-02 00:40 OTR=1 H1-T 2021-02-02 08:10 OTR=1


TR/8350/ID1/10/2021/2021-02-02
10.v2:2021-02-02 00:20 OTR=0 S-H1 2021-02-03 00:40 OTR=1
11.v2:2021-02-03 00:40 OTR=1 H1-T 2021-02-03 08:10 OTR=1


TR/8350/ID1/10/2021/2021-02-03
10.v2:2021-02-03 00:20 OTR=0 S-H1 2021-02-04 00:40 OTR=1
11.v2:2021-02-04 00:40 OTR=1 H1-T 2021-02-04 08:10 OTR=1


TR/8350/ID1/10/2021/2021-02-04
10.v2:2021-02-04 00:20 OTR=0 S-H1 2021-02-05 00:40 OTR=1
11.v2:2021-02-05 00:40 OTR=1 H1-T 2021-02-05 08:10 OTR=1


TR/8350/ID1/40/2021/2021-02-04
40.v1:2021-02-04 23:30 OTR=0 S-H1 2021-02-05 23:50 OTR=1
41.v1:2021-02-05 23:50 OTR=1 H1-T 2021-02-06 07:20 OTR=2


TR/8350/ID1/40/2021/2021-02-05
40.v1:2021-02-05 23:30 OTR=0 S-H1 2021-02-06 23:50 OTR=1
41.v1:2021-02-06 23:50 OTR=1 H1-T 2021-02-07 07:20 OTR=2


TR/8350/ID1/40/2021/2021-02-06
40.v1:2021-02-06 23:30 OTR=0 S-H1 2021-02-07 23:50 OTR=1
41.v1:2021-02-07 23:50 OTR=1 H1-T 2021-02-08 07:20 OTR=2


TR/8350/ID1/20/2021/2021-02-11
20.v2:2021-02-11 23:55 OTR=0 S-H1 2021-02-13 00:15 OTR=2
21.v2:2021-02-13 00:15 OTR=2 H1-T 2021-02-13 07:45 OTR=2


TR/8350/ID1/20/2021/2021-02-12
20.v2:2021-02-12 23:55 OTR=0 S-H1 2021-02-14 00:15 OTR=2
21.v2:2021-02-14 00:15 OTR=2 H1-T 2021-02-14 07:45 OTR=2


TR/8350/ID1/20/2021/2021-02-13
20.v2:2021-02-13 23:55 OTR=0 S-H1 2021-02-15 00:15 OTR=2
21.v2:2021-02-15 00:15 OTR=2 H1-T 2021-02-15 07:45 OTR=2


TR/8350/ID1/50/2021/2021-02-08
50.v1:2021-02-08 01:45 OTR=0 D-H1 2021-02-09 00:15 OTR=1
51.v1:2021-02-09 00:15 OTR=1 H1-T 2021-02-09 07:45 OTR=1


TR/8350/ID1/50/2021/2021-02-09
50.v1:2021-02-09 01:45 OTR=0 D-H1 2021-02-10 00:15 OTR=1
51.v1:2021-02-10 00:15 OTR=1 H1-T 2021-02-10 07:45 OTR=1


TR/8350/ID1/50/2021/2021-02-10
50.v1:2021-02-10 01:45 OTR=0 D-H1 2021-02-11 00:15 OTR=1
51.v1:2021-02-11 00:15 OTR=1 H1-T 2021-02-11 07:45 OTR=1


TR/8350/ID1/50/2021/2021-02-11
50.v1:2021-02-11 01:45 OTR=0 D-H1 2021-02-12 00:15 OTR=1
51.v1:2021-02-12 00:15 OTR=1 H1-T 2021-02-12 07:45 OTR=1


TR/8350/ID1/30/2021/2021-02-15
30.v2:2021-02-15 01:10 OTR=0 D-H1 2021-02-15 23:40 OTR=0
31.v2:2021-02-15 23:40 OTR=0 H1-T 2021-02-16 07:10 OTR=1


TR/8350/ID1/30/2021/2021-02-16
30.v2:2021-02-16 01:10 OTR=0 D-H1 2021-02-16 23:40 OTR=0
31.v2:2021-02-16 23:40 OTR=0 H1-T 2021-02-17 07:10 OTR=1


TR/8350/ID1/30/2021/2021-02-17
30.v2:2021-02-17 01:10 OTR=0 D-H1 2021-02-17 23:40 OTR=0
31.v2:2021-02-17 23:40 OTR=0 H1-T 2021-02-18 07:10 OTR=1


TR/8350/ID1/30/2021/2021-02-18
30.v2:2021-02-18 01:10 OTR=0 D-H1 2021-02-18 23:40 OTR=0
31.v2:2021-02-18 23:40 OTR=0 H1-T 2021-02-19 07:10 OTR=1


TR/8350/ID1/30/2021/2021-02-19
30.v2:2021-02-19 01:10 OTR=0 D-H1 2021-02-19 23:40 OTR=0
31.v2:2021-02-19 23:40 OTR=0 H1-T 2021-02-20 07:10 OTR=1


TR/8350/ID1/30/2021/2021-02-20
30.v2:2021-02-20 01:10 OTR=0 D-H1 2021-02-20 23:40 OTR=0
31.v2:2021-02-20 23:40 OTR=0 H1-T 2021-02-21 07:10 OTR=1

RoutingInformation as TrainInformation

An XML Dump of the routing information of this example according a new version of the TSI XSD.

See Routing planning for more details.

print(dump_routing_info_as_xml(t))

Out:

<TrainInformation xmlns="http://taf-jsg.info/schemes" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://taf-jsg.info/schemes file:///../tests/data/xml/taf_cat_complete_sector.xsd" RouteInfoVersion="2">
  <RouteSection SectionVersion="2" HasReferenceCalender="true">
    <SectionID>
      <ObjectType>RS</ObjectType>
    <Company>8350</Company>
    <Core>---------ID1</Core>
    <Variant>10</Variant>
    <TimetableYear>2021</TimetableYear>
    </SectionID>
  <PlannedJourneyLocation>
      <CountryCodeISO>DE</CountryCodeISO>
    <LocationPrimaryCode>10004</LocationPrimaryCode>
    <PrimaryLocationName>S</PrimaryLocationName>
    <TimingAtLocation>
        <Timing>
          <Time>00:20:00</Time>
        <Offset>0</Offset>
        </Timing>
      </TimingAtLocation>
    </PlannedJourneyLocation>
  <PlannedJourneyLocation>
      <CountryCodeISO>DE</CountryCodeISO>
    <LocationPrimaryCode>10005</LocationPrimaryCode>
    <PrimaryLocationName>H1</PrimaryLocationName>
    <TimingAtLocation>
        <Timing>
          <Time>00:40:00</Time>
        <Offset>1</Offset>
        </Timing>
      </TimingAtLocation>
    </PlannedJourneyLocation>
  <PlannedCalendar>
      <BitmapDays>1111</BitmapDays>
    <ValidityPeriod>
        <StartDateTime>2021-02-01T00:00:00</StartDateTime>
      <EndDateTime>2021-02-04T00:00:00</EndDateTime>
      </ValidityPeriod>
    </PlannedCalendar>
  <Successors>
      <SectionID>
        <ObjectType>RS</ObjectType>
      <Company>8350</Company>
      <Core>---------ID1</Core>
      <Variant>11</Variant>
      <TimetableYear>2021</TimetableYear>
      </SectionID>
    </Successors>
  </RouteSection>
<RouteSection SectionVersion="2">
    <SectionID>
      <ObjectType>RS</ObjectType>
    <Company>8350</Company>
    <Core>---------ID1</Core>
    <Variant>11</Variant>
    <TimetableYear>2021</TimetableYear>
    </SectionID>
  <PlannedJourneyLocation>
      <CountryCodeISO>DE</CountryCodeISO>
    <LocationPrimaryCode>10005</LocationPrimaryCode>
    <PrimaryLocationName>H1</PrimaryLocationName>
    <TimingAtLocation>
        <Timing>
          <Time>00:40:00</Time>
        <Offset>0</Offset>
        </Timing>
      </TimingAtLocation>
    </PlannedJourneyLocation>
  <PlannedJourneyLocation>
      <CountryCodeISO>DE</CountryCodeISO>
    <LocationPrimaryCode>10006</LocationPrimaryCode>
    <PrimaryLocationName>T</PrimaryLocationName>
    <TimingAtLocation>
        <Timing>
          <Time>08:10:00</Time>
        <Offset>0</Offset>
        </Timing>
      </TimingAtLocation>
    </PlannedJourneyLocation>
  <PlannedCalendar>
      <BitmapDays>1111</BitmapDays>
    <ValidityPeriod>
        <StartDateTime>2021-02-02T00:00:00</StartDateTime>
      <EndDateTime>2021-02-05T00:00:00</EndDateTime>
      </ValidityPeriod>
    </PlannedCalendar>
  </RouteSection>
<RouteSection SectionVersion="1" HasReferenceCalender="true">
    <SectionID>
      <ObjectType>RS</ObjectType>
    <Company>8350</Company>
    <Core>---------ID1</Core>
    <Variant>40</Variant>
    <TimetableYear>2021</TimetableYear>
    </SectionID>
  <PlannedJourneyLocation>
      <CountryCodeISO>DE</CountryCodeISO>
    <LocationPrimaryCode>10004</LocationPrimaryCode>
    <PrimaryLocationName>S</PrimaryLocationName>
    <TimingAtLocation>
        <Timing>
          <Time>23:30:00</Time>
        <Offset>0</Offset>
        </Timing>
      </TimingAtLocation>
    </PlannedJourneyLocation>
  <PlannedJourneyLocation>
      <CountryCodeISO>DE</CountryCodeISO>
    <LocationPrimaryCode>10005</LocationPrimaryCode>
    <PrimaryLocationName>H1</PrimaryLocationName>
    <TimingAtLocation>
        <Timing>
          <Time>23:50:00</Time>
        <Offset>1</Offset>
        </Timing>
      </TimingAtLocation>
    </PlannedJourneyLocation>
  <PlannedCalendar>
      <BitmapDays>111</BitmapDays>
    <ValidityPeriod>
        <StartDateTime>2021-02-04T00:00:00</StartDateTime>
      <EndDateTime>2021-02-06T00:00:00</EndDateTime>
      </ValidityPeriod>
    </PlannedCalendar>
  <Successors>
      <SectionID>
        <ObjectType>RS</ObjectType>
      <Company>8350</Company>
      <Core>---------ID1</Core>
      <Variant>41</Variant>
      <TimetableYear>2021</TimetableYear>
      </SectionID>
    </Successors>
  </RouteSection>
<RouteSection SectionVersion="1">
    <SectionID>
      <ObjectType>RS</ObjectType>
    <Company>8350</Company>
    <Core>---------ID1</Core>
    <Variant>41</Variant>
    <TimetableYear>2021</TimetableYear>
    </SectionID>
  <PlannedJourneyLocation>
      <CountryCodeISO>DE</CountryCodeISO>
    <LocationPrimaryCode>10005</LocationPrimaryCode>
    <PrimaryLocationName>H1</PrimaryLocationName>
    <TimingAtLocation>
        <Timing>
          <Time>23:50:00</Time>
        <Offset>0</Offset>
        </Timing>
      </TimingAtLocation>
    </PlannedJourneyLocation>
  <PlannedJourneyLocation>
      <CountryCodeISO>DE</CountryCodeISO>
    <LocationPrimaryCode>10006</LocationPrimaryCode>
    <PrimaryLocationName>T</PrimaryLocationName>
    <TimingAtLocation>
        <Timing>
          <Time>07:20:00</Time>
        <Offset>1</Offset>
        </Timing>
      </TimingAtLocation>
    </PlannedJourneyLocation>
  <PlannedCalendar>
      <BitmapDays>111</BitmapDays>
    <ValidityPeriod>
        <StartDateTime>2021-02-05T00:00:00</StartDateTime>
      <EndDateTime>2021-02-07T00:00:00</EndDateTime>
      </ValidityPeriod>
    </PlannedCalendar>
  </RouteSection>
<RouteSection SectionVersion="2" HasReferenceCalender="true">
    <SectionID>
      <ObjectType>RS</ObjectType>
    <Company>8350</Company>
    <Core>---------ID1</Core>
    <Variant>20</Variant>
    <TimetableYear>2021</TimetableYear>
    </SectionID>
  <PlannedJourneyLocation>
      <CountryCodeISO>DE</CountryCodeISO>
    <LocationPrimaryCode>10004</LocationPrimaryCode>
    <PrimaryLocationName>S</PrimaryLocationName>
    <TimingAtLocation>
        <Timing>
          <Time>23:55:00</Time>
        <Offset>0</Offset>
        </Timing>
      </TimingAtLocation>
    </PlannedJourneyLocation>
  <PlannedJourneyLocation>
      <CountryCodeISO>DE</CountryCodeISO>
    <LocationPrimaryCode>10005</LocationPrimaryCode>
    <PrimaryLocationName>H1</PrimaryLocationName>
    <TimingAtLocation>
        <Timing>
          <Time>00:15:00</Time>
        <Offset>2</Offset>
        </Timing>
      </TimingAtLocation>
    </PlannedJourneyLocation>
  <PlannedCalendar>
      <BitmapDays>111</BitmapDays>
    <ValidityPeriod>
        <StartDateTime>2021-02-11T00:00:00</StartDateTime>
      <EndDateTime>2021-02-13T00:00:00</EndDateTime>
      </ValidityPeriod>
    </PlannedCalendar>
  <Successors>
      <SectionID>
        <ObjectType>RS</ObjectType>
      <Company>8350</Company>
      <Core>---------ID1</Core>
      <Variant>21</Variant>
      <TimetableYear>2021</TimetableYear>
      </SectionID>
    </Successors>
  </RouteSection>
<RouteSection SectionVersion="2">
    <SectionID>
      <ObjectType>RS</ObjectType>
    <Company>8350</Company>
    <Core>---------ID1</Core>
    <Variant>21</Variant>
    <TimetableYear>2021</TimetableYear>
    </SectionID>
  <PlannedJourneyLocation>
      <CountryCodeISO>DE</CountryCodeISO>
    <LocationPrimaryCode>10005</LocationPrimaryCode>
    <PrimaryLocationName>H1</PrimaryLocationName>
    <TimingAtLocation>
        <Timing>
          <Time>00:15:00</Time>
        <Offset>0</Offset>
        </Timing>
      </TimingAtLocation>
    </PlannedJourneyLocation>
  <PlannedJourneyLocation>
      <CountryCodeISO>DE</CountryCodeISO>
    <LocationPrimaryCode>10006</LocationPrimaryCode>
    <PrimaryLocationName>T</PrimaryLocationName>
    <TimingAtLocation>
        <Timing>
          <Time>07:45:00</Time>
        <Offset>0</Offset>
        </Timing>
      </TimingAtLocation>
    </PlannedJourneyLocation>
  <PlannedCalendar>
      <BitmapDays>111</BitmapDays>
    <ValidityPeriod>
        <StartDateTime>2021-02-13T00:00:00</StartDateTime>
      <EndDateTime>2021-02-15T00:00:00</EndDateTime>
      </ValidityPeriod>
    </PlannedCalendar>
  </RouteSection>
<RouteSection SectionVersion="1" HasReferenceCalender="true">
    <SectionID>
      <ObjectType>RS</ObjectType>
    <Company>8350</Company>
    <Core>---------ID1</Core>
    <Variant>50</Variant>
    <TimetableYear>2021</TimetableYear>
    </SectionID>
  <PlannedJourneyLocation>
      <CountryCodeISO>DE</CountryCodeISO>
    <LocationPrimaryCode>10003</LocationPrimaryCode>
    <PrimaryLocationName>D</PrimaryLocationName>
    <TimingAtLocation>
        <Timing>
          <Time>01:45:00</Time>
        <Offset>0</Offset>
        </Timing>
      </TimingAtLocation>
    </PlannedJourneyLocation>
  <PlannedJourneyLocation>
      <CountryCodeISO>DE</CountryCodeISO>
    <LocationPrimaryCode>10005</LocationPrimaryCode>
    <PrimaryLocationName>H1</PrimaryLocationName>
    <TimingAtLocation>
        <Timing>
          <Time>00:15:00</Time>
        <Offset>1</Offset>
        </Timing>
      </TimingAtLocation>
    </PlannedJourneyLocation>
  <PlannedCalendar>
      <BitmapDays>1111</BitmapDays>
    <ValidityPeriod>
        <StartDateTime>2021-02-08T00:00:00</StartDateTime>
      <EndDateTime>2021-02-11T00:00:00</EndDateTime>
      </ValidityPeriod>
    </PlannedCalendar>
  <Successors>
      <SectionID>
        <ObjectType>RS</ObjectType>
      <Company>8350</Company>
      <Core>---------ID1</Core>
      <Variant>51</Variant>
      <TimetableYear>2021</TimetableYear>
      </SectionID>
    </Successors>
  </RouteSection>
<RouteSection SectionVersion="1">
    <SectionID>
      <ObjectType>RS</ObjectType>
    <Company>8350</Company>
    <Core>---------ID1</Core>
    <Variant>51</Variant>
    <TimetableYear>2021</TimetableYear>
    </SectionID>
  <PlannedJourneyLocation>
      <CountryCodeISO>DE</CountryCodeISO>
    <LocationPrimaryCode>10005</LocationPrimaryCode>
    <PrimaryLocationName>H1</PrimaryLocationName>
    <TimingAtLocation>
        <Timing>
          <Time>00:15:00</Time>
        <Offset>0</Offset>
        </Timing>
      </TimingAtLocation>
    </PlannedJourneyLocation>
  <PlannedJourneyLocation>
      <CountryCodeISO>DE</CountryCodeISO>
    <LocationPrimaryCode>10006</LocationPrimaryCode>
    <PrimaryLocationName>T</PrimaryLocationName>
    <TimingAtLocation>
        <Timing>
          <Time>07:45:00</Time>
        <Offset>0</Offset>
        </Timing>
      </TimingAtLocation>
    </PlannedJourneyLocation>
  <PlannedCalendar>
      <BitmapDays>1111</BitmapDays>
    <ValidityPeriod>
        <StartDateTime>2021-02-09T00:00:00</StartDateTime>
      <EndDateTime>2021-02-12T00:00:00</EndDateTime>
      </ValidityPeriod>
    </PlannedCalendar>
  </RouteSection>
<RouteSection SectionVersion="2" HasReferenceCalender="true">
    <SectionID>
      <ObjectType>RS</ObjectType>
    <Company>8350</Company>
    <Core>---------ID1</Core>
    <Variant>30</Variant>
    <TimetableYear>2021</TimetableYear>
    </SectionID>
  <PlannedJourneyLocation>
      <CountryCodeISO>DE</CountryCodeISO>
    <LocationPrimaryCode>10003</LocationPrimaryCode>
    <PrimaryLocationName>D</PrimaryLocationName>
    <TimingAtLocation>
        <Timing>
          <Time>01:10:00</Time>
        <Offset>0</Offset>
        </Timing>
      </TimingAtLocation>
    </PlannedJourneyLocation>
  <PlannedJourneyLocation>
      <CountryCodeISO>DE</CountryCodeISO>
    <LocationPrimaryCode>10005</LocationPrimaryCode>
    <PrimaryLocationName>H1</PrimaryLocationName>
    <TimingAtLocation>
        <Timing>
          <Time>23:40:00</Time>
        <Offset>0</Offset>
        </Timing>
      </TimingAtLocation>
    </PlannedJourneyLocation>
  <PlannedCalendar>
      <BitmapDays>111111</BitmapDays>
    <ValidityPeriod>
        <StartDateTime>2021-02-15T00:00:00</StartDateTime>
      <EndDateTime>2021-02-20T00:00:00</EndDateTime>
      </ValidityPeriod>
    </PlannedCalendar>
  <Successors>
      <SectionID>
        <ObjectType>RS</ObjectType>
      <Company>8350</Company>
      <Core>---------ID1</Core>
      <Variant>31</Variant>
      <TimetableYear>2021</TimetableYear>
      </SectionID>
    </Successors>
  </RouteSection>
<RouteSection SectionVersion="2">
    <SectionID>
      <ObjectType>RS</ObjectType>
    <Company>8350</Company>
    <Core>---------ID1</Core>
    <Variant>31</Variant>
    <TimetableYear>2021</TimetableYear>
    </SectionID>
  <PlannedJourneyLocation>
      <CountryCodeISO>DE</CountryCodeISO>
    <LocationPrimaryCode>10005</LocationPrimaryCode>
    <PrimaryLocationName>H1</PrimaryLocationName>
    <TimingAtLocation>
        <Timing>
          <Time>23:40:00</Time>
        <Offset>0</Offset>
        </Timing>
      </TimingAtLocation>
    </PlannedJourneyLocation>
  <PlannedJourneyLocation>
      <CountryCodeISO>DE</CountryCodeISO>
    <LocationPrimaryCode>10006</LocationPrimaryCode>
    <PrimaryLocationName>T</PrimaryLocationName>
    <TimingAtLocation>
        <Timing>
          <Time>07:10:00</Time>
        <Offset>1</Offset>
        </Timing>
      </TimingAtLocation>
    </PlannedJourneyLocation>
  <PlannedCalendar>
      <BitmapDays>111111</BitmapDays>
    <ValidityPeriod>
        <StartDateTime>2021-02-15T00:00:00</StartDateTime>
      <EndDateTime>2021-02-20T00:00:00</EndDateTime>
      </ValidityPeriod>
    </PlannedCalendar>
  </RouteSection>
<Route key="10-11">
    <PlannedCalendar>
      <BitmapDays>1111</BitmapDays>
    <ValidityPeriod>
        <StartDateTime>2021-02-01T00:00:00</StartDateTime>
      <EndDateTime>2021-02-04T00:00:00</EndDateTime>
      </ValidityPeriod>
    </PlannedCalendar>
  <PlannedJourneyLocation JourneyLocationTypeCode="01">
      <CountryCodeISO>DE</CountryCodeISO>
    <LocationPrimaryCode>10004</LocationPrimaryCode>
    <PrimaryLocationName>S</PrimaryLocationName>
    <TimingAtLocation>
        <Timing>
          <Time>00:20:00</Time>
        <Offset>0</Offset>
        </Timing>
      </TimingAtLocation>
    </PlannedJourneyLocation>
  <PlannedJourneyLocation JourneyLocationTypeCode="04">
      <CountryCodeISO>DE</CountryCodeISO>
    <LocationPrimaryCode>10005</LocationPrimaryCode>
    <PrimaryLocationName>H1</PrimaryLocationName>
    <TimingAtLocation>
        <Timing>
          <Time>00:40:00</Time>
        <Offset>1</Offset>
        </Timing>
      </TimingAtLocation>
    </PlannedJourneyLocation>
  <PlannedJourneyLocation JourneyLocationTypeCode="03">
      <CountryCodeISO>DE</CountryCodeISO>
    <LocationPrimaryCode>10006</LocationPrimaryCode>
    <PrimaryLocationName>T</PrimaryLocationName>
    <TimingAtLocation>
        <Timing>
          <Time>08:10:00</Time>
        <Offset>0</Offset>
        </Timing>
      </TimingAtLocation>
    </PlannedJourneyLocation>
  </Route>
<Route key="40-41">
    <PlannedCalendar>
      <BitmapDays>111</BitmapDays>
    <ValidityPeriod>
        <StartDateTime>2021-02-04T00:00:00</StartDateTime>
      <EndDateTime>2021-02-06T00:00:00</EndDateTime>
      </ValidityPeriod>
    </PlannedCalendar>
  <PlannedJourneyLocation JourneyLocationTypeCode="01">
      <CountryCodeISO>DE</CountryCodeISO>
    <LocationPrimaryCode>10004</LocationPrimaryCode>
    <PrimaryLocationName>S</PrimaryLocationName>
    <TimingAtLocation>
        <Timing>
          <Time>23:30:00</Time>
        <Offset>0</Offset>
        </Timing>
      </TimingAtLocation>
    </PlannedJourneyLocation>
  <PlannedJourneyLocation JourneyLocationTypeCode="04">
      <CountryCodeISO>DE</CountryCodeISO>
    <LocationPrimaryCode>10005</LocationPrimaryCode>
    <PrimaryLocationName>H1</PrimaryLocationName>
    <TimingAtLocation>
        <Timing>
          <Time>23:50:00</Time>
        <Offset>1</Offset>
        </Timing>
      </TimingAtLocation>
    </PlannedJourneyLocation>
  <PlannedJourneyLocation JourneyLocationTypeCode="03">
      <CountryCodeISO>DE</CountryCodeISO>
    <LocationPrimaryCode>10006</LocationPrimaryCode>
    <PrimaryLocationName>T</PrimaryLocationName>
    <TimingAtLocation>
        <Timing>
          <Time>07:20:00</Time>
        <Offset>1</Offset>
        </Timing>
      </TimingAtLocation>
    </PlannedJourneyLocation>
  </Route>
<Route key="20-21">
    <PlannedCalendar>
      <BitmapDays>111</BitmapDays>
    <ValidityPeriod>
        <StartDateTime>2021-02-11T00:00:00</StartDateTime>
      <EndDateTime>2021-02-13T00:00:00</EndDateTime>
      </ValidityPeriod>
    </PlannedCalendar>
  <PlannedJourneyLocation JourneyLocationTypeCode="01">
      <CountryCodeISO>DE</CountryCodeISO>
    <LocationPrimaryCode>10004</LocationPrimaryCode>
    <PrimaryLocationName>S</PrimaryLocationName>
    <TimingAtLocation>
        <Timing>
          <Time>23:55:00</Time>
        <Offset>0</Offset>
        </Timing>
      </TimingAtLocation>
    </PlannedJourneyLocation>
  <PlannedJourneyLocation JourneyLocationTypeCode="04">
      <CountryCodeISO>DE</CountryCodeISO>
    <LocationPrimaryCode>10005</LocationPrimaryCode>
    <PrimaryLocationName>H1</PrimaryLocationName>
    <TimingAtLocation>
        <Timing>
          <Time>00:15:00</Time>
        <Offset>2</Offset>
        </Timing>
      </TimingAtLocation>
    </PlannedJourneyLocation>
  <PlannedJourneyLocation JourneyLocationTypeCode="03">
      <CountryCodeISO>DE</CountryCodeISO>
    <LocationPrimaryCode>10006</LocationPrimaryCode>
    <PrimaryLocationName>T</PrimaryLocationName>
    <TimingAtLocation>
        <Timing>
          <Time>07:45:00</Time>
        <Offset>0</Offset>
        </Timing>
      </TimingAtLocation>
    </PlannedJourneyLocation>
  </Route>
<Route key="50-51">
    <PlannedCalendar>
      <BitmapDays>1111</BitmapDays>
    <ValidityPeriod>
        <StartDateTime>2021-02-08T00:00:00</StartDateTime>
      <EndDateTime>2021-02-11T00:00:00</EndDateTime>
      </ValidityPeriod>
    </PlannedCalendar>
  <PlannedJourneyLocation JourneyLocationTypeCode="01">
      <CountryCodeISO>DE</CountryCodeISO>
    <LocationPrimaryCode>10003</LocationPrimaryCode>
    <PrimaryLocationName>D</PrimaryLocationName>
    <TimingAtLocation>
        <Timing>
          <Time>01:45:00</Time>
        <Offset>0</Offset>
        </Timing>
      </TimingAtLocation>
    </PlannedJourneyLocation>
  <PlannedJourneyLocation JourneyLocationTypeCode="04">
      <CountryCodeISO>DE</CountryCodeISO>
    <LocationPrimaryCode>10005</LocationPrimaryCode>
    <PrimaryLocationName>H1</PrimaryLocationName>
    <TimingAtLocation>
        <Timing>
          <Time>00:15:00</Time>
        <Offset>1</Offset>
        </Timing>
      </TimingAtLocation>
    </PlannedJourneyLocation>
  <PlannedJourneyLocation JourneyLocationTypeCode="03">
      <CountryCodeISO>DE</CountryCodeISO>
    <LocationPrimaryCode>10006</LocationPrimaryCode>
    <PrimaryLocationName>T</PrimaryLocationName>
    <TimingAtLocation>
        <Timing>
          <Time>07:45:00</Time>
        <Offset>0</Offset>
        </Timing>
      </TimingAtLocation>
    </PlannedJourneyLocation>
  </Route>
<Route key="30-31">
    <PlannedCalendar>
      <BitmapDays>111111</BitmapDays>
    <ValidityPeriod>
        <StartDateTime>2021-02-15T00:00:00</StartDateTime>
      <EndDateTime>2021-02-20T00:00:00</EndDateTime>
      </ValidityPeriod>
    </PlannedCalendar>
  <PlannedJourneyLocation JourneyLocationTypeCode="01">
      <CountryCodeISO>DE</CountryCodeISO>
    <LocationPrimaryCode>10003</LocationPrimaryCode>
    <PrimaryLocationName>D</PrimaryLocationName>
    <TimingAtLocation>
        <Timing>
          <Time>01:10:00</Time>
        <Offset>0</Offset>
        </Timing>
      </TimingAtLocation>
    </PlannedJourneyLocation>
  <PlannedJourneyLocation JourneyLocationTypeCode="04">
      <CountryCodeISO>DE</CountryCodeISO>
    <LocationPrimaryCode>10005</LocationPrimaryCode>
    <PrimaryLocationName>H1</PrimaryLocationName>
    <TimingAtLocation>
        <Timing>
          <Time>23:40:00</Time>
        <Offset>0</Offset>
        </Timing>
      </TimingAtLocation>
    </PlannedJourneyLocation>
  <PlannedJourneyLocation JourneyLocationTypeCode="03">
      <CountryCodeISO>DE</CountryCodeISO>
    <LocationPrimaryCode>10006</LocationPrimaryCode>
    <PrimaryLocationName>T</PrimaryLocationName>
    <TimingAtLocation>
        <Timing>
          <Time>07:10:00</Time>
        <Offset>1</Offset>
        </Timing>
      </TimingAtLocation>
    </PlannedJourneyLocation>
  </Route>
</TrainInformation>

Total running time of the script: ( 0 minutes 0.974 seconds)

Gallery generated by Sphinx-Gallery