DELFI: Doppelte Trips
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:4sind 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 |