mfdz / zhv-issues

(Inoffizieller) Issue-Tracker zum zentralen Haltestellenverzeichnis (zHV) des DELFI e.V.
13 stars 0 forks source link

Gleichnamige Stationen in gleicher Gemeinden mit abweichender DHID #10

Open hbruch opened 3 years ago

hbruch commented 3 years ago

Derzeit listet das zHV 558 gleichnamige, in Betrieb befindliche (condition=Served) Stationen (type=S) in der gleichen Gemeinde, jedoch mit abweichenden DHID auf. Teilweise haben diese die gleichen, teilweise auch unterschiedliche Koordinaten.

Diese Stationen sollten eine einheitliche DHID aufweisen, auch wenn sie womöglich von unterschiedlichen Verkehrsunternehmen bedient werden, was eventuell die Ursache für die abweichend vergebenen DHIDs ist(?).

SELECT a.authority,
       COUNT(*)
FROM zhv a,
     zhv b
WHERE a.municipality=b.municipality
  AND a.type='S'
  AND b.type='S'
  AND a.name=b.name
  AND a.dhid < b.dhid
  AND a.condition='Served'
  AND b.condition='Served' 
GROUP BY a.authority ORDER BY COUNT(*) DESC;
Authority Anzahl
NVBW 157
VMT 128
BEG 88
VBN 59
VRR 57
rms 23
HannIT 12
ZPS 7
VVO 7
VBB 7
VRN 5
VMV 3
Hamburger Hochbahn 3
NVV 2
NVBWSeifert commented 3 years ago

Hallo Holger, kannst Du das Auswerteergebnis als csv-Datei oder ähnlich bereitstellen?

hbruch commented 3 years ago

Diese angehägte Datei listet die betroffenen Stationen. Stationen, zu denen mehrere Doppelungen existieren, werden ggf. in allen Kombinationen, also mit mehreren Zeilen, aufgeführt.

NVBWSeifert commented 3 years ago

In der Datei wird wg. der GROUP BY a.authority Einschränkung nur ein Datensatz je Organisation ausgegeben, kannst du eine Datei mit allen Dubletten erstellen?

hbruch commented 3 years ago

Oops. Nun mit diesem Statement erstellte Datei listet dafür alle betroffenen 904 Stationen (inklusive Doppelungen) untereinander und einmalig. Lässt sich m.E. auch leichter lesen:

.output out/issue_10.csv
SELECT a.authority, a.municipalitycode, a.municipality, a.name, a.dhid, a.latitude, a.longitude
FROM zhv a,
     zhv b
WHERE a.municipality=b.municipality
  AND a.type='S'
  AND b.type='S'
  AND a.name=b.name
  AND a.dhid != b.dhid
  AND a.condition='Served'
  AND b.condition='Served'
GROUP BY a.authority, a.municipalitycode, a.municipality, a.name, a.dhid, a.latitude, a.longitude
ORDER BY a.authority, a.municipalitycode, a.name, a.dhid;
NVBWSeifert commented 3 years ago

für die NVBW eine kurze Zwischeninfo: es gibt sowohl echte Dubletten, aber vielfach auch die Verwendung einer falschen Namensversion, die ohne Zusatz scheinbare Dubletten sind, aber in anderen Namensversionen den Orteil beinhalten. Hier scheint ein Fehler beim bereitstellen von NVBW nach DELFI die Ursache zu sein. Wir klären das hausintern

hbruch commented 1 year ago

Im Datensatz Stand 05.12.2022 existieren weiterhin Haltestellen gleichen Namens in der gleichen Gemeinde, welche laut zHV bedient werden, jedoch unterschiedliche DHIDs aufweisen:

Authority Anzahl
VMT 144
NVBW 142
BEG 87
VBN 56
VRR 54
rms 24
VBB 11
ZPS 7
VVO 6
VRN 5
Hamburger Hochbahn 5
HannIT 4
NVV 2
NASA 2
VMV 1
hbruch commented 1 year ago
Im Datensatz vom 12.12.2022 sind noch die folgenden Duplikate enthalten: Authority Anzahl
VMT 288
BEG 156
NVBW 121
VBN 110
VRR 100
rms 46
VBB 20
ZPS 14
VVO 10
Hamburger Hochbahn 10
VRN 8
HannIT 8
NVV 6
NASA 4
VMV 2

Doppelte Haltestellen sind mit all ihren Doppelungen gezählt.

Diese wurden mit dem folgenden Statement ermittelt, dass tatsächlich andernorts existierende Namensduplikate ausschließt. Kriterium hierfür ist, dass sowohl Kreis als auch Lage sich für solche Duplikate deutlich unterscheiden müssen:

SELECT authority, COUNT(*) count FROM ( 
SELECT a.authority, a.municipalitycode, a.municipality, a.name, a.dhid, a.latitude, a.longitude
FROM zhv a,
     zhv b
WHERE a.municipality=b.municipality
  AND a.type='S'
  AND b.type='S'
  AND a.name=b.name
  AND a.dhid != b.dhid
  AND a.condition='Served'
  AND b.condition='Served'
  AND ((a.latitude BETWEEN b.latitude - 0.1 AND b.latitude + 0.1  
    AND a.longitude BETWEEN b.longitude - 0.1 AND b.longitude + 0.1)
     OR SUBSTR(a.dhid,0, 8) = SUBSTR(b.dhid,0, 8))
GROUP BY a.authority, a.municipalitycode, a.municipality, a.name, a.dhid, a.latitude, a.longitude) as duplicates
GROUP BY authority
ORDER BY count DESC;
2martens commented 1 year ago

Zu den Beispielen der Hochbahn: Dalldorf, Sportplatz ist im HVV-System mit der DHID de:01053:85369 bekannt. Es gibt aber ein Dalldorf, Hauptstraße mit DHID de:01053:85370. dodenhof hat die DHID de:01060:8007148 und bei Langenfelder Damm sind es tatsächlich zwei unterschiedliche Haltestellen:

hbruch commented 1 year ago

@2martens Das o.g. Statement prüft auf Namens-Identität. Aktuell existiert für die Hamburger Hochbahn noch folgende Namensdoppelung:

383765|S|de:01060:75598|de:01060:75598|Kaltenkirchen, Friedhof|53.836693|9.953624|01060044|Kaltenkirchen||||Hamburger Hochbahn|-|D9042401274E|-|2023-12-03|
383905|S|de:01060:75691|de:01060:75691|Kaltenkirchen, Friedhof|53.838483|9.953482|01060044|Kaltenkirchen||||Hamburger Hochbahn|-|D904240127AB|-|2023-12-03|

Beide sind laut LastOperationDate bedient, auch wenn OSM für de:01060:75681 keine Haltestelle (mehr) kennt. Existiert sie tatsächlich, wäre es ws auch für Nutzende hilfreich zu wissen, ob der Halt am Südeingang oder an der Kielerstraße gemeint ist.

CM-RMS commented 1 year ago

Ist an den die Kollegen der Hamburger Hochbahn weitergeleitet.