Planning Public Transportation with Raku

Metro Route 5

by Arne Sommer

Metro Route 5

[159.2.3] 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 5: Vestli - Sognsvann

The northeastern part of Route 4 («Grorudbanen», the Grorud line) is also served by the eastern part of route 5. This route has a loop, and passes the city centre core section of the metro network twice (as shown on the metro map on in the «Oslo 1» article. Let us have a look at that one.

Which Direction?

I have started route 1 in the east (Bergkrystallen), and route 4 followed on. The problem now is that route 4 changes direction as it passes the city centre on its way to Vestli, whereas route 5 should start there. This makes it hard to just copy the route definition file for route 4. But we can use the helper program «reverse-route-simple» to reverse a route definition file.

$ reverse-route-simple oslo-metro/04.def

This program will print the route definition file, reversed. Here is the first 8 rows:

OS450 A B:4 Vestli
OS449 A B Stovner
OS448 A B:2 Rommen
OS447 A B Romsås
OS446 A B Grorud
OS445 A:2 B Ammerud
OS444 A B Kalbakken
OS443 A B:3 Rødtvet
…

Note the missing comment at the top, and the lack of tabulation (as the columns was nicely placed in the original file).

I have written a modified version of the program fixing both issues, called «reverse-route».

$ reverse-route oslo-metro/04.def

The output looks much nicer now:

#
# Vestli - Bergkrystallen
# ------------------------------
OS450 A   B:4 Vestli
OS449 A   B   Stovner
OS448 A   B:2 Rommen
OS447 A   B   Romsås
OS446 A   B   Grorud
…

Route 5 has a loop, as I have told already, running through the city centre section twice on its way from Vestli to Sognsvann. This program supports multiple visits to the same stop or stops on a route, but they will all be reported with the final destination (in the timingpoint part). It is also difficult (impossible) to set up short runnings with stops that are visited twice, as it will choose on of them. Which one is an implementation detail, and can change in the future.

I have therefore chosen to split route in two, at the middle point «Storo». This gives route 5A Vestli - Tøyen - Stortinget - Storo, and route 5B Storo - Tøyen - Stortinget - Sognsvann. They are combined at Storo.

Note that Tøyen has three platforms, with route 5 (5A and 5B) using plattform C towards the city centre:

The route 5A definition looks like this:

File: oslo-metro/5A.def
#
# 5A Vestli - Majorstuen - Storo
# --------------------------------------------------
OS550 A   B:4 Vestli
OS549 A   B   Stovner
OS548 A   B:2 Rommen
OS547 A   B   Romsås
OS546 A   B   Grorud
OS545 A:2 B   Ammerud
OS544 A   B   Kalbakken
OS543 A   B:3 Rødtvet
OS542 A:2 B   Veitvet
OS541 A   B   Linderud
OS540 A   B   Vollebekk
OS539 A:2 B:2 Risløkka
OS538 A:2 B:2 Økern
OS462 A:2 B:2 Hasle
OS461 A:2 B:2 Carl Berners plass
OS404 C:3 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:4 Majorstuen
OS531 B:2 A   Blindern
OS532 B   A   Forskningsparken
OS533 B:2 A:3 Ullevål stadion
OS534 B:3 A:2 Nydalen
OS535 B   A   Storo

And the route 5B definition looks like this:

File: oslo-metro/5B.def
#
# 5B Storo - Tøyen - Sognsvann
# --------------------------------------------------
OS535 B   A   Storo
OS536 B:2 A:3 Sinsen
OS461 A:3 B:2 Carl Berners plass
OS404 C:3 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:4 Majorstuen
OS531 B:2 A   Blindern
OS532 B   A   Forskningsparken
OS533 B:2 A   Ullevål stadion
OS471 B   A   Berg
OS472 B   A   Tåsen
OS473 B   A:2 Østhorn
OS474 B:2 A   Holstein
OS475 B   A   Kringsjå
OS476 B:2 A   Sognsvann

The routes are set up with zero minutes between arrival and departure at Storo. This required some trial and error.

File: oslo-metro/metro-5.setup
## Networkplanner ##

route set 5a file:5A.def down:13 up:1 interval:15
route set 5b file:5B.def down:9  up:4 interval:15

summary

timingpoints timingpoints-5.def

vehicles vehicles-5.def
File: oslo-metro/timingpoints-5.def
Vestli
Tøyen
Stortinget
Storo
Sognsvann

We combine the two routes at Storo, like this:

File: oslo-metro/vehicles-5.def
=0500
5a D Ve/5a;Ve 6
5b D St/5b;St 0
5b U Sv/5b;Sv 6
5a U St/5a;St 0

Running it:

$ networkplanner oslo-metro/metro-5.setup

The vehicle part:

	      0501  0502  0503  0504  0505  0506  0507  0508  0509  0510  0511
-------------------------------------------------------------------------------
Ve/5a	dep   0013  0028  0043  0058  0113  0128  0143  0158  0213  0228  0243 
St	arr   0054  0109  0124  0139  0154  0209  0224  0239  0254  0309  0324 
St/5b	dep   0054  0109  0124  0139  0154  0209  0224  0239  0254  0309  0324 
Sv	arr   0124  0139  0154  0209  0224  0239  0254  0309  0324  0339  0354 
Sv/5b	dep   0134  0149  0204  0219  0234  0249  0304  0319  0334  0349  0404 
St	arr   0201  0216  0231  0246  0301  0316  0331  0346  0401  0416  0431 
St/5a	dep   0201  0216  0231  0246  0301  0316  0331  0346  0401  0416  0431 
Ve	arr   0246  0301  0316  0331  0346  0401  0416  0431  0446  0501  0516 
Ve/5a	dep   0258  0313  0328  0343  0358  0413  0428  0443  0458  0513  0528 

0500: Number of vehicles: 11
---------------------------------------
Total number of vehicles: 11

Selected timingpoints:

Storo [A]
 01  16  31  46   5a Vestli
 01  16  31  46   5b Storo

Storo [B]
 09  24  39  54   5a Storo
 09  24  39  54   5b Sognsvann

Stortinget [A]
 06  21  36  51   5b Sognsvann
 10  25  40  55   5a Storo

Stortinget [B]
 01  16  31  46   5a Vestli
 05  20  35  50   5b Storo

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