Skip to content

Commit 366ec8e

Browse files
committed
fix GTFS merging πŸ›βœ…
follow-up to d4e7705
1 parent 12db0b9 commit 366ec8e

File tree

3 files changed

+19
-21
lines changed

3 files changed

+19
-21
lines changed

β€Žlib/gtfs-matching.jsβ€Ž

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,8 @@ const runGtfsMatching = async (cfg, opt = {}) => {
7171
help: 'number of successfully matched VDV Fahrts',
7272
registers: [register],
7373
labelNames: [
74-
'with_sollfahrt', // merged IstFahrt contains a REF-AUS SollFahrt
75-
'with_komplett_istfahrt', // merged IstFahrt contains a Komplettfahrt=true AUS IstFahrt
76-
'with_partial_istfahrts', // merged IstFahrt contains >0 partial AUS IstFahrts
74+
'prognose_moeglich', // merged VDV Fahrt contains PrognoseMoeglich=true
75+
'komplettfahrt', // merged VDV Fahrt contains Komplettfahrt=true
7776
'cached',
7877
],
7978
})
@@ -82,9 +81,8 @@ const runGtfsMatching = async (cfg, opt = {}) => {
8281
help: 'number of matching failures',
8382
registers: [register],
8483
labelNames: [
85-
'with_sollfahrt', // merged IstFahrt contains a REF-AUS SollFahrt
86-
'with_komplett_istfahrt', // merged IstFahrt contains a Komplettfahrt=true AUS IstFahrt
87-
'with_partial_istfahrts', // merged IstFahrt contains >0 partial AUS IstFahrts
84+
'prognose_moeglich', // merged VDV Fahrt contains PrognoseMoeglich=true
85+
'komplettfahrt', // merged VDV Fahrt contains Komplettfahrt=true
8886
'cached',
8987
],
9088
})
@@ -93,19 +91,17 @@ const runGtfsMatching = async (cfg, opt = {}) => {
9391
help: 'number of errors that have occured while matching',
9492
registers: [register],
9593
labelNames: [
96-
'with_sollfahrt', // merged IstFahrt contains a REF-AUS SollFahrt
97-
'with_komplett_istfahrt', // merged IstFahrt contains a Komplettfahrt=true AUS IstFahrt
98-
'with_partial_istfahrts', // merged IstFahrt contains >0 partial AUS IstFahrts
94+
'prognose_moeglich', // merged VDV Fahrt contains PrognoseMoeglich=true
95+
'komplettfahrt', // merged VDV Fahrt contains Komplettfahrt=true
9996
],
10097
})
10198
const matchingTimeSeconds = new Summary({
10299
name: 'matching_time_seconds',
103100
help: 'seconds trips need to be matched',
104101
registers: [register],
105102
labelNames: [
106-
'with_sollfahrt', // merged IstFahrt contains a REF-AUS SollFahrt
107-
'with_komplett_istfahrt', // merged IstFahrt contains a Komplettfahrt=true AUS IstFahrt
108-
'with_partial_istfahrts', // merged IstFahrt contains >0 partial AUS IstFahrts
103+
'prognose_moeglich', // merged VDV Fahrt contains PrognoseMoeglich=true
104+
'komplettfahrt', // merged VDV Fahrt contains Komplettfahrt=true
109105
'matched',
110106
'cached',
111107
// todo: schedule_feed_digest (slice)
@@ -168,10 +164,12 @@ const runGtfsMatching = async (cfg, opt = {}) => {
168164

169165
updateNatsMetricsForIncomingMsg(msg, tReceived)
170166

167+
const isPrognoseMoeglich = vdvFahrt.PrognoseMoeglich === 'true'
168+
const isKomplettfahrt = vdvFahrt.Komplettfahrt === 'true'
169+
171170
const matchingMetricsLabels = {
172-
with_sollfahrt: hasRefAusSollFahrt ? '1' : '0',
173-
with_komplett_istfahrt: hasKomplettfahrtAusIstFahrt ? '1' : '0',
174-
with_partial_istfahrts: hasPartialAusIstFahrts ? '1' : '0',
171+
prognose_moeglich: isPrognoseMoeglich ? '1' : '0',
172+
komplettfahrt: isKomplettfahrt ? '1' : '0',
175173
}
176174
let vdvFahrt = null
177175
try {
@@ -188,8 +186,8 @@ const runGtfsMatching = async (cfg, opt = {}) => {
188186

189187
try {
190188
// todo: validate against schema, error-log and abort if invalid
191-
if (!Array.isArray(vdvFahrt[haltsField])) {
192-
const err = new Error(`VDV Fahrt doesn't have an array ${haltsField}[]`)
189+
if (!Array.isArray(vdvFahrt.IstHalts)) {
190+
const err = new Error(`VDV Fahrt doesn't have an array .IstHalts[]`)
193191
err.vdvFahrt = vdvFahrt
194192
throw err
195193
}

β€Žlib/merge-vdv-sollfahrts-istfahrts.jsβ€Ž

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -389,13 +389,14 @@ const createMergeVdvFahrtWithRefAusSollFahrtAndAusIstFahrts = async (cfg) => {
389389
return [ausIstHaltWithIstFahrt.IstFahrt.Zst ?? null, ausIstHaltWithIstFahrt.IstFahrt.Zst ?? null]
390390
}),
391391
])
392-
// todo: set PrognoseMoeglich=true as soon as there are >0 IstFahrts?
392+
if (komplettfahrtAusIstFahrt || partialAusIstFahrts.length > 0) {
393+
mergedIstFahrt.PrognoseMoeglich = 'true'
394+
}
393395

394396
// merge {Soll,Ist}Halts
395397
// todo: refactor this, the code is quite verbose for what it achieves
396398
if (komplettfahrtAusIstFahrt) {
397399
mergedIstFahrt.Komplettfahrt = 'true'
398-
mergedIstFahrt.PrognoseMoeglich = 'true'
399400
mergedIstFahrt.IstHalts = komplettfahrtAusIstFahrt.IstHalts.map((komplettfahrtAusIstHalt) => {
400401
const isEquivalentVdvHalt = vdvHaltsAreEquivalent(komplettfahrtAusIstHalt)
401402

@@ -429,7 +430,6 @@ const createMergeVdvFahrtWithRefAusSollFahrtAndAusIstFahrts = async (cfg) => {
429430
)
430431
})
431432
} else if (partialAusIstFahrts.length > 0) {
432-
mergedIstFahrt.PrognoseMoeglich = 'true'
433433
mergedIstFahrt.IstHalts = partialAusIstFahrts
434434
.map(ausIstHaltWithIstFahrt => omit(ausIstHaltWithIstFahrt, ['IstFahrt']))
435435
} else {

β€Žtest/fixtures/merged-aus-istfahrt-2025-04-11-76528-00066-1_VIP-no-komplettfahrt.jsβ€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ const mergedAusIstFahrtNoKomplettfahrt = {
88
RichtungsText: 'Kirschallee',
99
VonRichtungsText: 'Bisamkiez',
1010
VerkehrsmittelText: null,
11-
PrognoseMoeglich: null,
11+
PrognoseMoeglich: 'true',
1212
Fahrradmitnahme: null,
1313
FahrtID: {
1414
FahrtBezeichner: '76528-00066-1#VIP',

0 commit comments

Comments
Β (0)