Skip to content

Commit 1849d9c

Browse files
committed
Add categories, complicated areas, and via points to Helsinki performance test.
1 parent 523e83c commit 1849d9c

6 files changed

Lines changed: 1702 additions & 1426 deletions

File tree

test/performance/helsinki/build-config.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
"maxAreaNodes": 1000,
88
"maxTransferDuration": "26m",
99
"multiThreadElevationCalculations": true,
10-
"transitServiceStart": "2026-01-01",
11-
"transitServiceEnd": "2026-01-31",
10+
"transitServiceStart": "2026-02-01",
11+
"transitServiceEnd": "2026-02-31",
1212
"transitModelTimeZone": "Europe/Helsinki",
1313
"fares": "hsl",
1414
"transferRequests": [
@@ -40,13 +40,13 @@
4040
"transitFeeds": [
4141
{
4242
"type": "gtfs",
43-
"source": "https://otp-performance.leonard.io/data/helsinki/hsl-gtfs-2026-01-12.zip",
43+
"source": "https://otp-performance.leonard.io/data/helsinki/hsl-gtfs-2026-02-19.zip",
4444
"feedId": "HSL"
4545
}
4646
],
4747
"osm": [
4848
{
49-
"source": "https://otp-performance.leonard.io/data/helsinki/hsl-2026-01-12.osm.pbf"
49+
"source": "https://otp-performance.leonard.io/data/helsinki/hsl-2026-02-19.osm.pbf"
5050
}
5151
]
5252
}

test/performance/helsinki/generate_test_cases.py

Lines changed: 88 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,25 @@
11
import csv
22

33
fieldnames = ["testCaseId", "description", "departure", "arrival", "fromLat",
4-
"fromLon", "toLat", "toLon", "origin", "destination", "modes", "category"]
4+
"fromLon", "toLat", "toLon", "origin", "destination", "modes", "category",
5+
"viaLabel", "viaMinimumWaitTime", "viaLat", "viaLon"]
56

67
locations = [
78
# Helsinki
89
{
9-
"coordinates": "60.169665, 24.934652",
10+
"coordinates": "60.169665,24.934652",
1011
"name": "Kamppi"
1112
},
1213
{
13-
"coordinates": "60.179022, 24.924151",
14+
"coordinates": "60.179022,24.924151",
1415
"name": "Töölöntori"
1516
},
1617
{
17-
"coordinates": "60.22070, 24.86094",
18+
"coordinates": "60.22070,24.86094",
1819
"name": "Pitäjänmäki"
1920
},
2021
{
21-
"coordinates": "60.20863, 25.07946",
22+
"coordinates": "60.20863,25.07946",
2223
"name": "Itäkeskus"
2324
},
2425
{
@@ -27,46 +28,51 @@
2728
},
2829
# Espoo
2930
{
30-
"coordinates": "60.18234, 24.82531",
31+
"coordinates": "60.18234,24.82531",
3132
"name": "Otaniemi"
3233
},
3334
{
34-
"coordinates": "60.205940, 24.656711",
35+
"coordinates": "60.205940,24.656711",
3536
"name": "Espoon Keskusta"
3637
},
3738
{
38-
"coordinates": "60.15509, 24.74546",
39+
"coordinates": "60.15509,24.74546",
3940
"name": "Matinkylä"
4041
},
4142
{
42-
"coordinates": "60.19586, 24.58912",
43+
"coordinates": "60.19586,24.58912",
4344
"name": "Kauklahti"
4445
},
4546
{
46-
"coordinates": "60.29030, 24.56324",
47+
"coordinates": "60.29030,24.56324",
4748
"name": "Nuuksio"
4849
},
4950
{
50-
"coordinates": "60.17892, 24.65813",
51+
"coordinates": "60.17892,24.65813",
5152
"name": "Latokaski"
5253
},
5354
# Vantaa
5455
{
55-
"coordinates": "60.29246, 25.03861",
56+
"coordinates": "60.29246,25.03861",
5657
"name": "Tikkurila"
5758
},
5859
# Airport
5960
{
60-
"coordinates": "60.317508, 24.969089",
61+
"coordinates": "60.317508,24.969089",
6162
"name": "Airport"
6263
},
6364
# Kirkkonummi
6465
{
65-
"coordinates": "60.12640, 24.43613",
66+
"coordinates": "60.12640,24.43613",
6667
"name": "Kirkkonummi"
6768
}
6869
]
6970

71+
complicated_area_location = {
72+
"coordinates": "60.16968,24.93486",
73+
"name": "Narinkkatori"
74+
}
75+
7076
arrival = "13:00"
7177
departure = "13:00"
7278

@@ -80,6 +86,8 @@ def parse_coords(input):
8086
}
8187

8288
counter = 0
89+
90+
# depart-after
8391
for start in locations:
8492
for end in locations:
8593
if end["coordinates"] is not start["coordinates"]:
@@ -88,7 +96,6 @@ def parse_coords(input):
8896
end_coords = parse_coords(end["coordinates"])
8997

9098
counter = counter + 1
91-
9299
rows.append({
93100
"testCaseId": counter,
94101
"description": f'{start["name"]} to {end["name"]} (transit)',
@@ -100,9 +107,10 @@ def parse_coords(input):
100107
"origin": start["name"],
101108
"destination": end["name"],
102109
"modes": "TRANSIT|WALK",
103-
"category": "transit"
110+
"category": "depart-after"
104111
})
105112

113+
# arrive-by
106114
for start in locations:
107115
for end in locations:
108116
if end["coordinates"] is not start["coordinates"]:
@@ -111,7 +119,6 @@ def parse_coords(input):
111119
end_coords = parse_coords(end["coordinates"])
112120

113121
counter = counter + 1
114-
115122
rows.append({
116123
"testCaseId": counter,
117124
"description": f'{start["name"]} to {end["name"]} (transit)',
@@ -123,9 +130,72 @@ def parse_coords(input):
123130
"origin": start["name"],
124131
"destination": end["name"],
125132
"modes": "TRANSIT|WALK",
126-
"category": "transit"
133+
"category": "arrive-by"
127134
})
128135

136+
# complicated-area
137+
for location in locations:
138+
location_coords = parse_coords(location["coordinates"])
139+
area_coords = parse_coords(complicated_area_location["coordinates"])
140+
141+
counter = counter + 1
142+
rows.append({
143+
"testCaseId": counter,
144+
"description": f'{location["name"]} to {complicated_area_location["name"]} (transit)',
145+
"departure": departure,
146+
"fromLat": location_coords["lat"],
147+
"fromLon": location_coords["lon"],
148+
"toLat": area_coords["lat"],
149+
"toLon": area_coords["lon"],
150+
"origin": location["name"],
151+
"destination": complicated_area_location["name"],
152+
"modes": "TRANSIT|WALK",
153+
"category": "complicated-area"
154+
})
155+
156+
counter = counter + 1
157+
rows.append({
158+
"testCaseId": counter,
159+
"description": f'{complicated_area_location["name"]} to {location["name"]} (transit)',
160+
"departure": departure,
161+
"fromLat": area_coords["lat"],
162+
"fromLon": area_coords["lon"],
163+
"toLat": location_coords["lat"],
164+
"toLon": location_coords["lon"],
165+
"origin": complicated_area_location["name"],
166+
"destination": location["name"],
167+
"modes": "TRANSIT|WALK",
168+
"category": "complicated-area"
169+
})
170+
171+
# viapoint
172+
via_start = locations[0]
173+
via_end = locations[1]
174+
via_start_coords = parse_coords(via_start["coordinates"])
175+
via_end_coords = parse_coords(via_end["coordinates"])
176+
via_locations = locations[2:]
177+
for via_location in via_locations:
178+
via_coords = parse_coords(via_location["coordinates"])
179+
180+
counter = counter + 1
181+
rows.append({
182+
"testCaseId": counter,
183+
"description": f'{via_start["name"]} to {via_end["name"]} (transit)',
184+
"departure": departure,
185+
"fromLat": via_start_coords["lat"],
186+
"fromLon": via_start_coords["lon"],
187+
"toLat": via_end_coords["lat"],
188+
"toLon": via_end_coords["lon"],
189+
"origin": via_start["name"],
190+
"destination": via_end["name"],
191+
"modes": "TRANSIT|WALK",
192+
"category": "viapoint",
193+
"viaLabel": via_location["name"],
194+
"viaMinimumWaitTime": "60s",
195+
"viaLat": via_coords["lat"],
196+
"viaLon": via_coords["lon"]
197+
})
198+
129199
with open('travelSearch.csv', 'w', encoding='UTF8', newline='') as f:
130200
writer = csv.DictWriter(f, fieldnames=fieldnames)
131201
writer.writeheader()

test/performance/helsinki/router-config.json

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,17 @@
77
"boardSlack": "60s"
88
},
99
"bicycle": {
10-
"boardCost": 120,
10+
"speed": 5.55,
1111
"reluctance": 1.7,
12+
"boardCost": 120,
1213
"optimization": "safest-streets"
1314
},
1415
"car": {
1516
"reluctance": 10.0
1617
},
1718
"walk": {
1819
"speed": 1.28,
19-
"reluctance": 1.75,
20+
"reluctance": 1.8,
2021
"stairsReluctance": 1.2,
2122
"stairsTimeFactor": 2,
2223
"escalator": {
@@ -108,5 +109,12 @@
108109
"maxFlexTripDuration": "30m",
109110
"maxAccessWalkDuration": "5m",
110111
"maxEgressWalkDuration": "5m"
112+
},
113+
"transit": {
114+
"maxSearchWindow": "8h",
115+
"pagingSearchWindowAdjustments": ["8h", "2h", "2h", "2h", "2h"],
116+
"dynamicSearchWindow": {
117+
"minWindow": "1h"
118+
}
111119
}
112-
}
120+
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"testDate": "2026-01-12",
2+
"testDate": "2026-02-19",
33
"feedId": "hsl",
44
"graph": "graph.obj"
55
}

0 commit comments

Comments
 (0)