DELFI: Doppelte Trips
hbruch opened this issue · 4 comments
Beschreibe den Fehler
Der Delfi-Feed enthält doppelte Trips verschiedener Agencies.
Als Beispiel sei die N44 Nachtbuslinie der VVS hier dargestellt:
Bereits die route_id wird als Duplikat unterschiedlicher Agencies (8096 Regional-Busse RBS bzw 7998 Nachtbusse (Regional)) in routes.txt geführt:
"de:vvs:34044_:",7998,"N44
"de:vvs:34044_:_D",8096,"N44","",3,"","",""
die calendar.txt Einträge sind identisch, die calendar_dates überlappend.
Mutmaßliche Ursache für scheiterende Duplikaterkennung in der GTFS-Ausleitung sind mutmaßlich Abweichungen der in den stop_times referenzierten Stops:
- für mehrere Steige referenziert die eine Fahrt eine offizielle DHID, die andere Fahrt die gleiche, jedoch zur Differenzierung um ein angehängtes Suffix _G erweitertete DHID, mutmaßlich weil die Stops gleicher DHID in unterschiedlichen Quellen doch unterschiedliche Koordinaten besitzen.
- für mehrere stop_times werden unterschiedliche Masten referenziert
seq_nr | arrival_time | departure_time | stop_ids trip 2395445069 | stop_ids trip 2394000840 |
---|---|---|---|---|
0 | 28:34:00 | 28:34:00 | "de:08118:1503:2:4" | "de:08118:1503:3:4" |
1 | 28:36:00 | 28:36:00 | "de:08118:3521:0:4" | "de:08118:3521:0:4_G" |
2 | 28:37:00 | 28:37:00 | "de:08118:3523:0:4" | "de:08118:3523:0:4" |
3 | 28:38:00 | 28:38:00 | "de:08118:3559:0:3" | "de:08118:3559:0:3_G" |
4 | 28:39:00 | 28:39:00 | "de:08118:7560:0:3" | "de:08118:7560:0:3_G" |
5 | 28:40:00 | 28:40:00 | "de:08118:6940:0:4" | "de:08118:6940:0:4_G" |
6 | 28:43:00 | 28:43:00 | "de:08118:5566:1:4" | "de:08118:5566:0:1" |
7 | 28:44:00 | 28:44:00 | "de:08118:5934:0:3" | "de:08118:5934:0:3_G" |
8 | 28:45:00 | 28:45:00 | "de:08118:3582:0:3" | "de:08118:3582:0:1" |
9 | 28:46:00 | 28:46:00 | "de:08118:5570:1:3" | "de:08118:5570:1:1" |
10 | 28:47:00 | 28:47:00 | "de:08118:5571:1:3" | "de:08118:5571:1:3" |
11 | 28:48:00 | 28:48:00 | "de:08118:5572:0:3" | "de:08118:5572:0:3" |
12 | 28:50:00 | 28:50:00 | "de:08118:3597:0:3" | "de:08118:3597:0:3_G" |
13 | 28:51:00 | 28:51:00 | "de:08118:5573:0:3" | "de:08118:5573:0:3_G" |
14 | 28:52:00 | 28:52:00 | "de:08118:3591:0:3" | "de:08118:3591:0:3_G" |
15 | 28:53:00 | 28:53:00 | "de:08118:3592:0:3" | "de:08118:3592:0:3_G" |
16 | 28:58:00 | 28:58:00 | "de:08118:5574:0:3" | "de:08118:5574:0:3_G" |
17 | 29:00:00 | 29:00:00 | "de:08118:5575:1:3" | "de:08118:5575:1:3" |
18 | 29:02:00 | 29:02:00 | "de:08118:3499:0:1" | "de:08118:3499:0:1_G" |
Aktualisierungszeitpunkt der GTFS-Daten:
29.1.2024
Downloadlink der GTFS-Daten:
Open-Data ÖPNV
Nachtrag:
die von trip 2394000840 der Agency "8096 (Regional-Busse RBS)" referenzierten DHIDs de:08118:3582:0:1
, de:08118:5570:1:1
, de:08118:5566:0:1
, de:08118:1503:3:4
sind nicht im zHV enthalten und daher wahrscheinlich fehlerhaft.
Nachtrag: die von trip 2394000840 der Agency "8096 (Regional-Busse RBS)" referenzierten DHIDs
de:08118:3582:0:1
,de:08118:5570:1:1
,de:08118:5566:0:1
,de:08118:1503:3:4
sind nicht im zHV enthalten und daher wahrscheinlich fehlerhaft.
Hallo Holger,
für diese Fehler bitte die NVBW als verantwortlich labeln, wir verwalten federführend das RBS-Teilnetz.
Ich habe die falschen Steig-DHIDs ermittelt und die korrekten Steig-DHIDs mitgeteilt und hoffe, das in einigen Tagen die Fehler beseitigt sind.
viele Grüße
Dietmar
Guten Morgen Dietmar,
Danke für's Annehmen. Ich habe Dir alle 78 stop_ids angehängt, welche trips von duplizierten vvs-Routes (solche mit _D
in der route_id) zugeordnet, jedoch nicht im zHV enthalten sind. Die meisten davon dürften RBS betreffen, auch wenn ich dies nicht explizit ausgewertet habe.
Verwendetes Statement (_G
-Suffixe explizit ignoriert):
SELECT DISTINCT s.stop_id
FROM gtfs_trips t
JOIN gtfs_stop_times s ON t.trip_id = s.trip_id
WHERE t.route_id LIKE 'de:vvs:%D'
AND replace(stop_id,'_G','') NOT IN (SELECT DHID FROM zhv);
Die o.g. Halte de:08118:3582:0:1
, de:08118:5570:1:1
, de:08118:5566:0:1
, de:08118:1503:3:4
werden nicht mehr referenziert. Von den ursprünglich 78 sind derzeit jedoch weiterhin 52 stop_ids von Routen mit _D_
in der ID nicht im zHV enthalten.
Da mittlerweile der route_type
in die route_id aufgenommen wurde, muss obiges SQL-Statement angepasst werden:
SELECT DISTINCT s.stop_id
FROM gtfs_trips t
JOIN gtfs_stop_times s ON t.trip_id = s.trip_id
WHERE t.route_id LIKE 'de:vvs:%_D_%'
AND replace(stop_id,'_G','') NOT IN (SELECT DHID FROM zhv);
Die Linie N44 hat weiterhin abweichende Haltestellen:
SELECT DISTINCT st.stop_sequence, t.route_id, st.stop_id, st2.stop_id, t2.route_id
FROM gtfs_trips t, gtfs_trips t2
JOIN gtfs_stop_times st ON t.trip_id=st.trip_id
JOIN gtfs_stop_times st2 ON t2.trip_id=st2.trip_id AND st.stop_sequence = st2.stop_sequence
WHERE t.route_id = 'de:vvs:34044_:_D_3'
AND t2.route_id = 'de:vvs:34044_:_700';
SeqNr | route_id_1 | stop_id_1 | stop_id_2 | route_id_2 |
---|---|---|---|---|
0 | de:vvs:34044_:_D_3 | de:08118:1503:2:4 | de:08118:1503:2:4 | de:vvs:34044_:_700 |
1 | de:vvs:34044_:_D_3 | de:08118:3521:0:4_G | de:08118:3521:0:4 | de:vvs:34044_:_700 |
2 | de:vvs:34044_:_D_3 | de:08118:3523:0:4 | de:08118:3523:0:4 | de:vvs:34044_:_700 |
3 | de:vvs:34044_:_D_3 | de:08118:3559:0:3_G | de:08118:3559:0:3 | de:vvs:34044_:_700 |
4 | de:vvs:34044_:_D_3 | de:08118:7560:0:3_G | de:08118:7560:0:3 | de:vvs:34044_:_700 |
5 | de:vvs:34044_:_D_3 | de:08118:6940:0:3_G | de:08118:6940:0:4 | de:vvs:34044_:_700 |
6 | de:vvs:34044_:_D_3 | de:08118:5566:2:3 | de:08118:5566:1:4 | de:vvs:34044_:_700 |
7 | de:vvs:34044_:_D_3 | de:08118:5934:0:3_G | de:08118:5934:0:3 | de:vvs:34044_:_700 |
8 | de:vvs:34044_:_D_3 | de:08118:3582:0:3_G | de:08118:3582:0:3 | de:vvs:34044_:_700 |
9 | de:vvs:34044_:_D_3 | de:08118:5570:1:3 | de:08118:5570:1:3 | de:vvs:34044_:_700 |
10 | de:vvs:34044_:_D_3 | de:08118:5571:1:3 | de:08118:5571:1:3 | de:vvs:34044_:_700 |
11 | de:vvs:34044_:_D_3 | de:08118:5572:0:3 | de:08118:5572:0:3 | de:vvs:34044_:_700 |
12 | de:vvs:34044_:_D_3 | de:08118:3597:0:3_G | de:08118:3597:0:3 | de:vvs:34044_:_700 |
13 | de:vvs:34044_:_D_3 | de:08118:5573:0:3_G | de:08118:5573:0:3 | de:vvs:34044_:_700 |
14 | de:vvs:34044_:_D_3 | de:08118:3591:0:3_G | de:08118:3591:0:3 | de:vvs:34044_:_700 |
15 | de:vvs:34044_:_D_3 | de:08118:3592:0:3_G | de:08118:3592:0:3 | de:vvs:34044_:_700 |
16 | de:vvs:34044_:_D_3 | de:08118:5574:0:3_G | de:08118:5574:0:3 | de:vvs:34044_:_700 |
17 | de:vvs:34044_:_D_3 | de:08118:5575:1:3 | de:08118:5575:1:3 | de:vvs:34044_:_700 |
18 | de:vvs:34044_:_D_3 | de:08118:3499:0:1_G | de:08118:3499:0:1 | de:vvs:34044_:_700 |
19 | de:vvs:34044_:_D_3 | de:08118:6718:0:3_G | de:08118:6718:0:3 | de:vvs:34044_:_700 |
20 | de:vvs:34044_:_D_3 | de:08118:5567:0:3_G | de:08118:5567:0:3 | de:vvs:34044_:_700 |
21 | de:vvs:34044_:_D_3 | de:08118:5934:0:4_G | de:08118:5934:0:4 | de:vvs:34044_:_700 |
22 | de:vvs:34044_:_D_3 | de:08118:5566:1:4 | de:08118:5566:1:4 | de:vvs:34044_:_700 |
23 | de:vvs:34044_:_D_3 | de:08118:6940:0:4_G | de:08118:6940:0:3 | de:vvs:34044_:_700 |
24 | de:vvs:34044_:_D_3 | de:08118:7560:0:3_G | de:08118:7560:0:3 | de:vvs:34044_:_700 |
25 | de:vvs:34044_:_D_3 | de:08118:3559:0:4_G | de:08118:3559:0:4 | de:vvs:34044_:_700 |
26 | de:vvs:34044_:_D_3 | de:08118:3523:0:4 | de:08118:3523:0:3 | de:vvs:34044_:_700 |
27 | de:vvs:34044_:_D_3 | de:08118:3521:0:3_G | de:08118:3521:0:3 | de:vvs:34044_:_700 |
28 | de:vvs:34044_:_D_3 | de:08118:1503:2:3 | de:08118:1503:2:4 | de:vvs:34044_:_700 |