mfdz / GTFS-Issues

Documentation and Tracking of Issues in GTFS- and GTFS-RT Feeds
35 stars 3 forks source link

DELFI/NASA: transfers.txt vom 8. Mai 2023 enthält nicht-einzigartige Einträge #130

Closed dancesWithCycles closed 1 year ago

dancesWithCycles commented 1 year ago

Moin liebe Leute,

Beschreibe den Fehler

ERROR:  duplicate key value violates unique constraint "transfers_pkey"
DETAIL:  Key (feed_index, from_stop_id, to_stop_id)=(1, 000000000010, 000000000010) already exists.
CONTEXT:  COPY transfers, line 35

Mit anderen Worten, es gibt Zeilen in der Datei transfers.txt,

"from_stop_id","to_stop_id","transfer_type","min_transfer_time","from_route_id","to_route_id","from_trip_id","to_trip_id"
"000000000010","000000000010",1,,"143954_0","143954_3",,
"000000000010","000000000010",1,,"143954_0","144058_0",,
"000000000010","000000000010",1,,"143954_3","143954_0",,
"000000000010","000000000010",1,,"143954_3","144058_0",,
"000000000010","000000000010",1,,"144058_0","143954_0",,
"000000000010","000000000010",1,,"144058_0","143954_3",,

, welche inkompatibel mit der GTFS-Specification sind. Warum?

CONSTRAINT transfers_pkey PRIMARY KEY (feed_index, from_stop_id, to_stop_id)

Laut GTFS-Specification besteht der Primaer-Schluessel der Datei transfers.txt mindestens aus den beiden Spalten from_stop_id und to_stop_id; wenn nicht sogar mehr. Das heisst, eine Kombination der Werte dieser beiden Spalten darf genau einmal vorkommen, damit sie eindeutig ist.

Primary key (from_stop_id, to_stop_id, from_trip_id, to_trip_id, from_route_id, to_route_id)

Der DELFI-GTFS-Datensatz vom 8. Mai 2023 ist inkompatibel mit der GTFS-Spezifikation, weil es von der Kombination

"000000000010","000000000010"

6 statt der einen erlaubten Zeile gibt.

Folgende Linien (route.txt) sind betroffen.

"route_id","agency_id","route_short_name","route_long_name","route_type","route_color","route_text_color","route_desc"
"143954_0",8879,"1","",0,"","",""
"143954_3",8879,"1","",3,"","",""
"144058_0",8879,"2","",0,"","",""

Folgendes Unternehmen (agency.txt) ist betroffen.

"agency_id","agency_name","agency_url","agency_timezone","agency_lang","agency_phone"
8879,"Halberstädter Verkehrs-GmbH","https://www.delfi.de","Europe/Berlin","",""

Dieses Unternehmen ordne ich der NASA zu.

Referenz Gib, falls möglich, eine Referenz zur zugehörigen GTFS-Spezifikation an. [z.B. https://developers.google.com/transit/gtfs/reference/#stopstxt]

Referenz:

Primary key (from_stop_id, to_stop_id, from_trip_id, to_trip_id, from_route_id, to_route_id)

Aktualisierungszeitpunkt der GTFS-Daten: [z.B. 17. Januar 2019]

Der DELFI-GTFS-Datensatz vom 8. Mai 2023.

$ ls -ltha /tmp/gtfs/gtfs.zip
-rw-r--r-- 1 sib00-swingbe.gtfs.delfi sib00 302M May  8 15:00 /tmp/gtfs/gtfs.zip

Downloadlink der GTFS-Daten: [z.B. ]

Der Download-Link ist Benutzer-spezifisch und beginnt wie folgt.

https://www.opendata-oepnv.de/index.php?<abgeschnitten>
dancesWithCycles commented 1 year ago

Primary

Oh, Ich habe die route_id's als Teil vom Primärschlüssel übersehen. Damit könnten die Einträge doch eindeutig sein.

WIP! Ich prüfe erneut dieses Ticket und melde mich mit Neuigkeiten.

BTW, falls es nur diese drei Linien an diesem Halt gibt, könnten diese 6 Zeilen zu einer Zeile optimiert werden. ;-)

dancesWithCycles commented 1 year ago

Ein typischer Fall von: Das Problem befindet sich for der Anzeige oder hinter der Brille. ;-)

Ich habe die aktuelle GTFS-Spezifikation referenziert, sie aber selbst nicht verwendet. Die Definition von transfers.txt wurde in letzter Zeit mehrfach umgearbeitet.

Wenn ich mit der aktuellen Spezifikation arbeite, dann passt auch der aktuelle GTFS-Datensatz.

Ich entschuldige mich dafuer, unnoetig die Pferde scheu gemacht zu haben. Cheers!