Planning Public Transportation with Raku

Metro Route 2/3

by Arne Sommer

Metro Route 2/3

[159.2.4] Published 15. December 2021.

[ Introduction | Oslo Metro | Oslo Tram | Bergen | Misc. ]
[ Metro Introduction | Metro 1 | Metro 4 | Metro 5 | Metro 2/3 | Metro All | My Metro ]

Route 2: Ellingsrudåsen - Østerås

This route has 8 departures per hour. It does not have a regular 7.5 minute frequency, as Oslo does not operate with half minute departure times. But the program does support irregular frequencies:

The route definition:

File: oslo-metro/02.def
#
# 2 Ellingsrudåsen - Østerås
# --------------------------------------------------
OS497 A   B:2 Ellingsrudåsen
OS496 A   B:2 Furuset
OS495 A   B:2 Lindeberg
OS494 A:2 B:2 Trosterud
OS493 A   B:2 Haugerud
OS492 A:2 B:2 Tveita
OS491 A:2 B:2 Hellerud
OS407 A:3 B:2 Brynseng
OS406 C:2 D:2 Helsfyr
OS405 A:2 B   Ensjø
OS404 A:2 B:3 Tøyen
OS403 A:2 B   Grønland
OS402 A   B   Jernbanetorget
OS401 A   B:2 Stortinget
OS421 B:2 A:2 Nationaltheatret
OS422 B:3 A:3 Majorstuen
OS481 B:2 A:2 Borgen
OS482 B:2 A:2 Smestad
OS483 B   A:2 Makrellbekken
OS484 B:2 A   Holmen
OS485 B   A   Hovseter
OS486 B   A   Røa
BM001 B   A:2 Ekraveien
BM002 B:2 A   Eiksmarka
BM003 B   A   Lijordet
BM004 B:3 A   Østerås
=0200
2 D Elå/2;Elå  6
2 U Øst/2;Øst  6
File: oslo-metro/metro-2.setup.def
## Networkplanner ##

route set 2 file:02.def down:3 up:1 interval:7;8

summary

timingpoints timingpoints-5.def

vehicles vehicles-2.def

Running it:

Route 2: Ellingsrudåsen - Østerås
----------------------------------------------------------------
00  | 03  10  18  25  33  40  48  55  Ellingsrudåsen [A]
02  | 05  12  20  27  35  42  50  57  Furuset [A]
03  | 06  13  21  28  36  43  51  58  Lindeberg [A]
05  | 08  15  23  30  38  45  53  00  Trosterud [A]
06  | 09  16  24  31  39  46  54  01  Haugerud [A]
08  | 11  18  26  33  41  48  56  03  Tveita [A]
10  | 13  20  28  35  43  50  58  05  Hellerud [A]
13  | 16  23  31  38  46  53  01  08  Brynseng [A]
15  | 18  25  33  40  48  55  03  10  Helsfyr [C]
17  | 20  27  35  42  50  57  05  12  Ensjø [A]
19  | 22  29  37  44  52  59  07  14  Tøyen [A]
21  | 24  31  39  46  54  01  09  16  Grønland [A]
22  | 25  32  40  47  55  02  10  17  Jernbanetorget [A]
23  | 26  33  41  48  56  03  11  18  Stortinget [A]
25  | 28  35  43  50  58  05  13  20  Nationaltheatret [B]
28  | 31  38  46  53  01  08  16  23  Majorstuen [B]
30  | 33  40  48  55  03  10  18  25  Borgen [B]
32  | 35  42  50  57  05  12  20  27  Smestad [B]
33  | 36  43  51  58  06  13  21  28  Makrellbekken [B]
35  | 38  45  53  00  08  15  23  30  Holmen [B]
36  | 39  46  54  01  09  16  24  31  Hovseter [B]
37  | 40  47  55  02  10  17  25  32  Røa [B]
38  | 41  48  56  03  11  18  26  33  Ekraveien [B]
40  | 43  50  58  05  13  20  28  35  Eiksmarka [B]
41  | 44  51  59  06  14  21  29  36  Lijordet [B]
44  | 47  54  02  09  17  24  32  39  Østerås [B]

Route 2: Østerås - Ellingsrudåsen
----------------------------------------------------------------
00  | 01  08  16  23  31  38  46  53  Østerås [A]
01  | 02  09  17  24  32  39  47  54  Lijordet [A]
02  | 03  10  18  25  33  40  48  55  Eiksmarka [A]
04  | 05  12  20  27  35  42  50  57  Ekraveien [A]
05  | 06  13  21  28  36  43  51  58  Røa [A]
06  | 07  14  22  29  37  44  52  59  Hovseter [A]
07  | 08  15  23  30  38  45  53  00  Holmen [A]
09  | 10  17  25  32  40  47  55  02  Makrellbekken [A]
11  | 12  19  27  34  42  49  57  04  Smestad [A]
13  | 14  21  29  36  44  51  59  06  Borgen [A]
16  | 17  24  32  39  47  54  02  09  Majorstuen [A]
18  | 19  26  34  41  49  56  04  11  Nationaltheatret [A]
20  | 21  28  36  43  51  58  06  13  Stortinget [B]
21  | 22  29  37  44  52  59  07  14  Jernbanetorget [B]
22  | 23  30  38  45  53  00  08  15  Grønland [B]
25  | 26  33  41  48  56  03  11  18  Tøyen [B]
26  | 27  34  42  49  57  04  12  19  Ensjø [B]
28  | 29  36  44  51  59  06  14  21  Helsfyr [D]
30  | 31  38  46  53  01  08  16  23  Brynseng [B]
32  | 33  40  48  55  03  10  18  25  Hellerud [B]
34  | 35  42  50  57  05  12  20  27  Tveita [B]
36  | 37  44  52  59  07  14  22  29  Haugerud [B]
38  | 39  46  54  01  09  16  24  31  Trosterud [B]
40  | 41  48  56  03  11  18  26  33  Lindeberg [B]
42  | 43  50  58  05  13  20  28  35  Furuset [B]
44  | 45  52  00  07  15  22  30  37  Ellingsrudåsen [B]

The timingpoints:

Stortinget [A]
 03  11  18  26  33  41  48  56   2 Østerås

Stortinget [B]
 06  13  21  28  36  43  51  58   2 Ellingsrudåsen

Tøyen [A]
 07  14  22  29  37  44  52  59   2 Østerås

Tøyen [B]
 03  11  18  26  33  41  48  56   2 Ellingsrudåsen

Stops not present on the route are not shown, so using the timingpoints file for route 5 works out.

	      0201  0202  0203  0204  0205  0206  0207  0208  0209  0210  0211  0212  0213  0214
-------------------------------------------------------------------------------------------------
Elå/2	dep   0003  0010  0018  0025  0033  0040  0048  0055  0103  0110  0118  0125  0133  0140 
Øst	arr   0047  0054  0102  0109  0117  0124  0132  0139  0147  0154  0202  0209  0217  0224 
Øst/2	dep   0053  0100  0108  0115  0123  0130  0138  0145  0153  0200  0208  0215  0223  0230 
Elå	arr   0137  0144  0152  0159  0207  0214  0222  0229  0237  0244  0252  0259  0307  0314 
Elå/2	dep   0148  0155  0203  0210  0218  0225  0233  0240  0248  0255  0303  0310  0318  0325 

0200: Number of vehicles: 14
---------------------------------------
Total number of vehicles: 14

Route 3: Mortensrud - Kolsås

This rute has the normal 4 departures per hour, but has the additional same number of short runnings beteen Mortensrud and Stortinget during daytime.

File: oslo-metro/03.def
#
# 3 Mortensrud - Kolsås
# --------------------------------------------------
OS518 A   B:3 Mortensrud
OS517 A:2 B:2 Skullerud
OS516 A:2 B   Bogerud
OS515 A:2 B:2 Bøler
OS514 A   B   Ulsrud
OS513 A:2 B:2 Oppsal
OS512 A   B   Skøyenåsen
OS511 A   B:2 Godlia
OS491 A:1 B:2 Hellerud
OS407 A:3 B:2 Brynseng
OS406 C:2 D:2 Helsfyr
OS405 A:2 B   Ensjø
OS404 A:2 B:3 Tøyen
OS403 A:2 B   Grønland
OS402 A   B   Jernbanetorget
OS401 A   B:2 Stortinget
OS421 B:2 A:2 Nationaltheatret
OS422 B:3 A:3 Majorstuen
OS481 B:2 A:2 Borgen
OS482 B:2 A:3 Smestad
OS501 B:2 A   Montebello
OS502 B:2 A:2 Ullernåsen
OS503 B   A   Åsjordet
OS504 B:2 A:2 Bjørnsletta
BM011 B:2 A:2 Jar
BM012 B:2 A   Ringstabekk
BM013 B:2 A:2 Bekkestua
BM014 B   A:2 Gjønnes
BM015 B:2 A   Haslum
BM016 B:2 A   Avløs
BM017 B   A:2 Gjettum
BM018 B:2 A   Hauger
BM019 B:2 A   Kolsås

Stortinget has a double track loop, used by the short running departures on route 3, which I have called route 3x:

Note how we can specify another set of platforms for the last and/or first stop on short runnings:

File: oslo-metro/metro-3.setup.def
## Networkplanner ##

route set 3  file:03.def down:3 up:14 interval:15
route set 3x file:03.def down:9 up:8  interval:15 end-at:OS401[C;D]

summary

timingpoints timingpoints-5.def

vehicles vehicles-3.def

I have chosen to couple route 3 and 3x on Mortensrud:

File: oslo-metro/vehicles-3.def
=0300
3  D Mot/3;Mot 6
3  U Kol/3;Kol 6
3x D Mot/3x;Mot 6
3x U St/3x;St 0

The full route 3:

Route 3: Mortensrud - Kolsås
----------------------------------------------------------------
00  | 03  18  33  48  Mortensrud [A]
02  | 05  20  35  50  Skullerud [A]
04  | 07  22  37  52  Bogerud [A]
06  | 09  24  39  54  Bøler [A]
07  | 10  25  40  55  Ulsrud [A]
09  | 12  27  42  57  Oppsal [A]
10  | 13  28  43  58  Skøyenåsen [A]
12  | 15  30  45  00  Godlia [A]
13  | 16  31  46  01  Hellerud [A]
16  | 19  34  49  04  Brynseng [A]
18  | 21  36  51  06  Helsfyr [C]
20  | 23  38  53  08  Ensjø [A]
22  | 25  40  55  10  Tøyen [A]
24  | 27  42  57  12  Grønland [A]
25  | 28  43  58  13  Jernbanetorget [A]
26  | 29  44  59  14  Stortinget [A]
28  | 31  46  01  16  Nationaltheatret [B]
31  | 34  49  04  19  Majorstuen [B]
33  | 36  51  06  21  Borgen [B]
35  | 38  53  08  23  Smestad [B]
37  | 40  55  10  25  Montebello [B]
39  | 42  57  12  27  Ullernåsen [B]
40  | 43  58  13  28  Åsjordet [B]
42  | 45  00  15  30  Bjørnsletta [B]
44  | 47  02  17  32  Jar [B]
46  | 49  04  19  34  Ringstabekk [B]
48  | 51  06  21  36  Bekkestua [B]
49  | 52  07  22  37  Gjønnes [B]
51  | 54  09  24  39  Haslum [B]
53  | 56  11  26  41  Avløs [B]
54  | 57  12  27  42  Gjettum [B]
56  | 59  14  29  44  Hauger [B]
58  | 01  16  31  46  Kolsås [B]

Route 3: Kolsås - Mortensrud
----------------------------------------------------------------
00  | 14  29  44  59  Kolsås [A]
01  | 15  30  45  00  Hauger [A]
03  | 17  32  47  02  Gjettum [A]
04  | 18  33  48  03  Avløs [A]
05  | 19  34  49  04  Haslum [A]
07  | 21  36  51  06  Gjønnes [A]
09  | 23  38  53  08  Bekkestua [A]
10  | 24  39  54  09  Ringstabekk [A]
12  | 26  41  56  11  Jar [A]
14  | 28  43  58  13  Bjørnsletta [A]
15  | 29  44  59  14  Åsjordet [A]
17  | 31  46  01  16  Ullernåsen [A]
18  | 32  47  02  17  Montebello [A]
21  | 35  50  05  20  Smestad [A]
23  | 37  52  07  22  Borgen [A]
26  | 40  55  10  25  Majorstuen [A]
28  | 42  57  12  27  Nationaltheatret [A]
30  | 44  59  14  29  Stortinget [B]
31  | 45  00  15  30  Jernbanetorget [B]
32  | 46  01  16  31  Grønland [B]
35  | 49  04  19  34  Tøyen [B]
36  | 50  05  20  35  Ensjø [B]
38  | 52  07  22  37  Helsfyr [D]
40  | 54  09  24  39  Brynseng [B]
42  | 56  11  26  41  Hellerud [B]
44  | 58  13  28  43  Godlia [B]
45  | 59  14  29  44  Skøyenåsen [B]
47  | 01  16  31  46  Oppsal [B]
48  | 02  17  32  47  Ulsrud [B]
50  | 04  19  34  49  Bøler [B]
51  | 05  20  35  50  Bogerud [B]
53  | 07  22  37  52  Skullerud [B]
56  | 10  25  40  55  Mortensrud [B]

The short running route 3x:

Route 3x: Mortensrud - Stortinget
----------------------------------------------------------------
00  | 09  24  39  54  Mortensrud [A]
02  | 11  26  41  56  Skullerud [A]
04  | 13  28  43  58  Bogerud [A]
06  | 15  30  45  00  Bøler [A]
07  | 16  31  46  01  Ulsrud [A]
09  | 18  33  48  03  Oppsal [A]
10  | 19  34  49  04  Skøyenåsen [A]
12  | 21  36  51  06  Godlia [A]
13  | 22  37  52  07  Hellerud [A]
16  | 25  40  55  10  Brynseng [A]
18  | 27  42  57  12  Helsfyr [C]
20  | 29  44  59  14  Ensjø [A]
22  | 31  46  01  16  Tøyen [A]
24  | 33  48  03  18  Grønland [A]
25  | 34  49  04  19  Jernbanetorget [A]
26  | 35  50  05  20  Stortinget [C]

Route 3x: Stortinget - Mortensrud
----------------------------------------------------------------
00  | 08  23  38  53  Stortinget [D]
01  | 09  24  39  54  Jernbanetorget [B]
02  | 10  25  40  55  Grønland [B]
05  | 13  28  43  58  Tøyen [B]
06  | 14  29  44  59  Ensjø [B]
08  | 16  31  46  01  Helsfyr [D]
10  | 18  33  48  03  Brynseng [B]
12  | 20  35  50  05  Hellerud [B]
14  | 22  37  52  07  Godlia [B]
15  | 23  38  53  08  Skøyenåsen [B]
17  | 25  40  55  10  Oppsal [B]
18  | 26  41  56  11  Ulsrud [B]
20  | 28  43  58  13  Bøler [B]
21  | 29  44  59  14  Bogerud [B]
23  | 31  46  01  16  Skullerud [B]
26  | 34  49  04  19  Mortensrud [B]

The timingpoints:

Stortinget [A]
 14  29  44  59   3 Kolsås

Stortinget [B]
 14  29  44  59   3 Mortensrud

Stortinget [C]
 05  20  35  50   3x Stortinget

Stortinget [D]
 08  23  38  53   3x Mortensrud

Tøyen [A]
 01  16  31  46   3x Stortinget
 10  25  40  55   3 Kolsås

Tøyen [B]
 04  19  34  49   3 Mortensrud
 13  28  43  58   3x Mortensrud
	      0301  0302  0303  0304  0305  0306  0307  0308  0309  0310  0311  0312  0313  0314
-------------------------------------------------------------------------------------------------
Mot/3	dep   0003  0018  0033  0048  0103  0118  0133  0148  0203  0218  0233  0248  0303  0318 
Kol	arr   0101  0116  0131  0146  0201  0216  0231  0246  0301  0316  0331  0346  0401  0416 
Kol/3	dep   0114  0129  0144  0159  0214  0229  0244  0259  0314  0329  0344  0359  0414  0429 
Mot	arr   0210  0225  0240  0255  0310  0325  0340  0355  0410  0425  0440  0455  0510  0525 
Mot/3x	dep   0224  0239  0254  0309  0324  0339  0354  0409  0424  0439  0454  0509  0524  0539 
St	arr   0250  0305  0320  0335  0350  0405  0420  0435  0450  0505  0520  0535  0550  0605 
St/3x	dep   0253  0308  0323  0338  0353  0408  0423  0438  0453  0508  0523  0538  0553  0608 
Mot	arr   0319  0334  0349  0404  0419  0434  0449  0504  0519  0534  0549  0604  0619  0634 
Mot/3	dep   0333  0348  0403  0418  0433  0448  0503  0518  0533  0548  0603  0618  0633  0648 

0300: Number of vehicles: 14
---------------------------------------
Total number of vehicles: 14

Can we save one vehicle by running the routes separately, thus reducing the layover time at Mortensrud?

File: oslo-metro/vehicles-3b.def
=0300
3  D Mot/3;Mot 6
3  U Kol/3;Kol 6

=0310
3x D Mot/3x;Mot 6
3x U St/3x;St 0

We can reuse an existing number series, preferably without reusing the numbers themselves, as done above.

File: oslo-metro/metro-3b.setup
## Networkplanner ##

route set 3  file:03.def down:3 up:14 interval:15
route set 3x file:03.def down:9 up:8  interval:15 end-at:OS401[C;D]

summary

timingpoints timingpoints-5.def

vehicles vehicles-3b.def
	      0301  0302  0303  0304  0305  0306  0307  0308  0309
-------------------------------------------------------------------
Mot/3	dep   0003  0018  0033  0048  0103  0118  0133  0148  0203 
Kol	arr   0101  0116  0131  0146  0201  0216  0231  0246  0301 
Kol/3	dep   0114  0129  0144  0159  0214  0229  0244  0259  0314 
Mot	arr   0210  0225  0240  0255  0310  0325  0340  0355  0410 
Mot/3	dep   0218  0233  0248  0303  0318  0333  0348  0403  0418 

	      0311  0312  0313  0314  0315
-------------------------------------------
Mot/3x	dep   0009  0024  0039  0054  0109 
St	arr   0035  0050  0105  0120  0135 
St/3x	dep   0038  0053  0108  0123  0138 
Mot	arr   0104  0119  0134  0149  0204 
Mot/3x	dep   0124  0139  0154  0209  0224 

0300: Number of vehicles: 9
0310: Number of vehicles: 5
---------------------------------------
Total number of vehicles: 14

We got yhe same number of vehicles, as the layover time for route 3x has to be 6 minutes or more (as defined in the route setup file). The benefit of running them separately is that we can run short trains on route 3x, without affecting the main route 3.

It may be annoying with route 3 and 3x reported separately towards Mortensrud in the timingpoints, especially as Ruter uses «3» on all the departures, regardless of ending at Stortinget or running the whole route.

We can merge them, with the «:merge» option:

File: oslo-metro/metro-3c.setup
## Networkplanner ##

route set 3  file:03.def down:3 up:14 interval:15
route set 3x file:03.def down:9 up:8  interval:15 end-at:OS401[C;D]

summary

timingpoints :merge[3;3x] timingpoints-5.def

vehicles vehicles-3b.def

The result:

Stortinget [A]
14 29 44 59 | 3 Kolsås

Stortinget [B]
14 29 44 59 | 3 Mortensrud

Stortinget [C]
05 20 35 50 | 3 Stortinget

Stortinget [D]
08 23 38 53 | 3 Mortensrud

Tøyen [A]
-- 10 -- 25 -- 40 -- 55 | 3 Kolsås
01 -- 16 -- 31 -- 46 -- | 3 Stortinget

Tøyen [B]
04 13 19 28 34 43 49 58 | 3 Mortensrud

Note that routes will only be merged if they have the same destination. Also note that «:merge» implies «:tabulated» as well.

[ Introduction | Oslo Metro | Oslo Tram | Bergen | Misc. ]
[ Metro Introduction | Metro 1 | Metro 4 | Metro 5 | Metro 2/3 | Metro All | My Metro ]