Dieses spezielle Thema (werde aber auch noch auf das ursprüngliche Fehler-Modell zurückkommen) ließ mir ja keine Ruhe, denn diese Doppelungen müssen doch irgendwie systematisch ermittelbar sein.
Hab da mal folgendes probiert:
die OSM-Daten für Deutschland als PBF-Datei von geofabrik.de herunterladen
1.) mittels osmconvert.exe in das o5m Format umwandeln
2.) mittels
osmfilter.exe -v germany.o5m --drop-nodes --drop-ways --ignore-dependencies --keep-relations="postal_code= and boundary=" -o=plz.osm
einen Filter angewandt, welche nur noch alle Relationen OHNE Wege und Nodes behält, welche die Schlüssel postal_code= UND boundary= haben.
3.) dann wieder mit osmconvert.exe eine CSV-Datei erstellt:
osmconvert.exe plz.osm -o=plz.csv --csv="@id postal_code note name" --csv-headline
damit erhält man eine “Tabelle” mit der OSM-ID jeder Relation, dem jeweiligen Wert von postal_code=, note= und name=
4.) nun die erstellte CSV-Datei in eine beliebige Tabellenkalkulation importieren, wie z.B. LibreOffice.
Dabei auf folgendes achten: Text ist in UTF-8-Kodierung … und die Spalten für postal_code, note und name sollten schon gleich das Format “Text” zugewiesen bekommen, denn sonst wird u.U. von z.B. Postleitzahlen mit führender Null eben diese weggekürzt.
5.) Dann zwischen die Spalten postal_code und note eine neue leere Spalte einfügen, nennen wir sie mal Spalte C mit dem Spaltenkopf “doppelt”
In Spalte B (postal_code) finden sich nun alle fünfstelligen Postleitzahlen, die in Deutschland an irgendwelchen Grenzrelationen hängen.
5a.) die gesamte Tabelle nun nach der Spalte “postal_code” aufsteigend sortieren.
6.) In der Zelle C2 (Spalte “doppelt”) nun folgende logische Formel einfügen:
=WENN(ODER(B2=B3;B2=B1);1;"")
Diese Formel zeigt eine 1 in der Spalte C, wenn zwei gleiche PLZ in der Spalte B vorhanden sind.
7.) Jetzt für die gesamte Tabelle einfach den “AutoFilter” einschalten (Menü: Daten) … in Excel oder anderen Programmen müsste es diese Funktion auch geben … und den Filter für Spalte “doppelt” dann so einstellen, dass er nur noch Zeilen mit dem Wert 1 zeigt … Tadaaa !!!
Somit haben wir nun eine Liste aller Grenzrelationen in Deutschland, die einen Wert bei postal_code=XXXXX haben, und dieser Wert kommt noch bei mindestens einer weiteren Relation vor.
Denn nach meinem Verständnis sollte in den OSM-Daten eine Grenzrelation zu einer bestimmten Postleitzahl nur genau ein mal vorkommen, und nicht doppelt.
Ergebnis: Derzeit haben wir zu genau 480 betroffenen Postleitzahlen doppelte oder sogar mehrfache Grenzrelationen.
8.) Damit man diese Doppelungen nun sich anschauen kann, hab ich zwei weitere Spalten rechts angefügt und dort mit dem Calc-Befehl VERKETTEN jeweils eine URL zu jeder Relation unter osm.org sowie eine URL zur Darstellung via OverpassAPI gebastelt.
Es hat sich gerade bei der Darstellung in OverpassAPI gezeigt, dass es wohl etliche identische doppelte Relationen für bestimmte Orte gibt. Ich glaube diese Gebiete erkennt man daran, dass diese dort in einem kräftigeren Gelb-Ton angezeigt werden, oder?
Eine Tabelle lässt sich dann z.B. via “csv2wp” von CSV in eine Wikimedia-Tabelle umwandeln(copy&paste). Eine erste Version mit Datenbestand 04.07.2013 habe ich mal unter http://wiki.openstreetmap.org/wiki/User:Stephan75 eingestellt.
Findet jemand hierzu grundsätzliche (Denk-)Fehler oder Verbesserungen? Oder wer will kann auch schon Relationen berichtigen …