********************************************************
Update: Aufgrund von technischen Schwierigkeiten bei der Auswertung wird diese Wochenaufgabe verlängert bis mindestens Sonntag, den 21.02.2016!
********************************************************
Worum geht es?
Um die Qualität der OpenStreetMap-Daten zu kontrollieren, gibt es ja inzwischen viele Möglichkeiten. Das OSM-Wiki hält unter der Seite Qualitätssicherung bzw. Quality assurance eine Sammlung dazu bereit.
Ein Spezial-Thema waren in diesem Zusammenhang schon immer die konkreten postalischen Adressen von Objekten.
In welcher Art diese Adressen in den OSM-Daten zugewiesen werden, ist im OSM-Wiki unter Addresses und Karlsruhe Schema dokumentiert. (Eventuell haben die jeweils englischsprachigen Versionen der Wikiseiten einen aktuelleren Stand.)
Zwischen den wirklich schon zahlreich vorhandenen Objekten mit diesen Adressdaten finden sich jedoch immer wieder einige Ausreißer, denen nur eine Hausnummer zugewiesen wurde, jedoch keinerlei weitere Zuordnung zu einer Straße oder einer anderen örtlichen Instanz (damit sind z.B. Dörfer gemeint, welche so klein sind, dass es keine eigenen Straßennamen gibt.)
Es geht also kurz gesagt um „Hausnummern ohne Straßen“.
Für Programme wie Navigations-Apps oder Online-Adress-Suchdienste sind diese Objekte mit diesen straßenlosen Hausnummern nicht nutzbar und quasi verloren.
In der Vergangenheit gab es bereits Aktionen, um diese unvollständigen Adressdaten aufzuspüren und zu verbessern:
- zunächst die Wochenaufgabe Straßennamen im August 2014,
- Verlauf und Erfahrungen wurden im OSM-Forum gesammelt und diskutiert,
- und hier noch eine Nachlese dazu.
Generell: Was macht in den OSM-Daten eine vollständige Adresse aus?
Nach aktueller Definition sollte neben der Hausnummer eines der drei Ergänzungen vorhanden sein:
-
addr:housenumber=*
mitaddr:street=*
-
addr:housenumber=*
mitaddr:place=*
bei Dörfern, die aufgrund ihrer geringen Größe keine eigenen Straßennamen haben. -
addr:housenumber=*
mit Zugehörigkeit zu einer Relation des Typs"associatedStreet"
(Dieses Datenmodell ist nicht so weit verbreitet.)
Aktuelle Möglichkeiten
Bei einem Blick auf die gebräuchlisten OSM-Karten z.B. über openstreetmap.org werden die Objekte mit den „straßenlosen“ Hausnummern zwar angezeigt, dass die weiteren Informationen aber hier und da fehlen, sieht man dort nicht. Um diese unvollständige Objekte zu finden und deren Daten zu ergänzen, bietet sich neben anderen Möglichkeiten folgende Vorgehensweise an:
- Die aktuell wohl beste Quelle für unvollständige Adressen in Deutschland ist wohl folgende Online-Karte: https://maps.aimpulse.com/osm/addresses/ (wird ca. wöchentlich aktualisiert, Bild siehe oben)
- Dort unten rechts auf den Layer „Adressen ohne Straße“ wechseln, sodass die Landkreise je nach Quantität in gelb, orange oder rot dargestellt werden. Damit haben wir auf einen Schlag eine bundesweite Übersicht auf Basis der Landkreise und der Anzahl der unvollständigen Adress-Objekte.
- Mit den aus der Karte ablesbaren Namen der Landkreise lässt sich dann eine overpass-turbo-Abfrage anpassen, welche dann die genauere Lage der einzelnen Treffer für einen einzelnen Landkreis anzeigt. Je nach Einzelfall kann man dann in der overpass-turbo-Abfrage dann auch statt dem Landkreisnamen auch der Name einer einzelnen Gemeinde angeben, um so die Treffer bei lokalen Häufungen noch einzugrenzen.
Die Abfrage zum Füttern von http://overpass-turbo.eu lautet zum Beispiel:
{{nominatimArea:"Landkreis Harburg"}} (._; )->.area; /*zunächst alle Häuser mit Hausnummer, aber ohne Straße oder addr:place in der aktuellen bbox in "allHouses" sammeln */ /* (statt (area.area) auch ({{bbox}}) möglich!) */ way(area.area)["addr:housenumber"]["addr:place"!~"."]["addr:street"!~"."]->.allHouses; /* In der BBOX alle associatedStreet Relationen ermitteln */ rel(area.area)[type=associatedStreet]->.associatedStreet; /* und darin alle Wege mit der Rolle "house" in "asHouse" sammeln */ way(r.associatedStreet:"house")->.asHouse; /* Jetzt die Differenz der beiden Mengen bilden, Nodes dazu und ausgeben */ ((.allHouses; - .asHouse); >; );out; /* Jetzt das ganze noch für Nodes: */ node(area.area)["addr:housenumber"]["addr:place"!~"."]["addr:street"!~"."]->.allHousesNode; node(r.associatedStreet:"house")->.asHouseNode; ((.allHousesNode; - .asHouseNode););out;
- Dieser „Quellcode“ sollte in den linken Bereich (ggf. den dortigen bereits vorhandenen Quellcode vorher löschen) auf overpass-turbo.eu eingefügt werden.
- Bei der Definition von „nominatimArea“ kann jeder beliebige Name einer geschlossenen Gebietsrelation eingefügt werden, wie Landkreise, Gemeinden, Stadtteile.
- Wenn overpass-turbo nach Ausführen der Abfrage die Treffer anzeigt, kann man diese über die dortige Exportfunktion direkt in JOSM reinladen, wenn in dem parallel gestartetem Editor JOSM die sog. Remote-Funktion aktiviert ist. (Dabei kann es aktuell innerhalb von JOSM zu Timeout-Meldungen kommen.)
- Wenn nicht schon geschehen, so bietet sich spätestens nun das Aktivieren des Kartenstils „Coloured Streets“ in JOSM an, da dieser auch schon gleich Objekte mit fehlendem Schlüssel für addr:street hervorhebt.
- Um die nun rot hervorgehobenen Objekte sollten nun die normalen OSM-Daten aus der unmittelbaren Umgebung heruntergeladen werden, denn daraus können sich Straßennamen und bereits vollständige Hausnummern in der Umgebung herleiten.
- Hat man nun in JOSM eine ganze Serie von Adress-Objekten mit fehlendem addr:street-Merkmal lokalisiert, so können diese wie folgt am effektivsten einer einzelnen Straße zugeordnet werden:
- alle relevanten Objekte (bei Gebäuden bitte ohne die Eckpunkte) mit Strg-Taste und Mausklick auswählen.
- Die Merkmale der gewählten Objekte werden nun im rechten JOSM-Bildschirm unter dem Teilfenster „Merkmale / Mitgliedschaften“ dargestellt.
- Am oberen Rand dieses Teilfenstern findet sich nun ein klickbarer Verweis auf die JOSM-Vorlage „Anmerkungen / Adressen“ mit der weis-blauen Zahl 41 als Symbol. Dieses Symbol anklicken.
- In der sich dann öffnenden Vorlage kann man durch 1x Tab-Taste auf das Feld für den Straßennamen wechseln.
- Durch Eingabe des vorher lokalisierten zutreffenden Straßennamens (Groß-/Kleinschreibung beachten!) gibt JOSM nach einigen Buchstaben schon in Betracht kommende Vorschläge.
- Sobald der zutreffende Straßenname unter addr:street (alternativ der Dorfname unter addr:place) steht, einfach mit der Enter-Taste die Änderung für alle vorher ausgewählten Objekte bestätigen, und: fertig!
Hinweise für die Praxis:
Für bestimmte Bundesländer stehen Hintergrundkarten zur Verfügung, aus denen legal Informationen für OSM-Zwecke entnommen werden dürfen. Neben den ALKIS-Layern mit Hausnummern für NRW gibt es ähnliche Layer für Hamburg (Hausnummern, Gebäude, Straßen+Namen) und Mecklenburg-Vorpommern (Offene Regionalkarte, auch ORKa genannt, mit Hausnummern und Gebäuden aus den Katasterdaten und Straßen aus OSM). Diese Ebeben lassen sich in JOSM über das Menü „Hintergrundbild“ einblenden.
Hilfreich können generell noch die JOSM-Plugins HouseNumberTaggingTool und FixAddresses sein.
Generell gilt: Bitte die fehlenden Straßen- oder Ortsnamen nur mit großer Sorgfalt einfügen, d.h. man sollte sich schon sehr sicher sein, anhand der Daten in der Umgebung die richtigen Namen zuzuweisen.
Im Zweifelsfall lieber einmal mehr z.B. im OSM-Forum nachfragen, wie andere Mapper jeweils einen konkreten Fall beurteilen würden.
Und auch wichtig: bitte keine illegalen Quellen für Straßennamen nutzen!
Alternative Qualitätskontrollen:
- Der Address-Layer vom OSM-Inspector der geofabrik.de hatte bisher folgende Schwächen: er wertet keine associatedStreet-Relationen aus, und er beachtet addr:place (als Ersatz für addr:street) bisher nicht. Anpassungen hierfür sind aber begonnen und eventuell schon bei Start dieser Wochenaufgabe verfügbar.
(Der JOSM-Mappaint-Stil ColouredStreets, der JOSM-Validator und die Onlinekarte von Aimpulse beachten diese Feinheiten bereits.) - http://osm.lyrk.de/address … auch hier ist fraglich, ob addr:place und associatedStreet-Relationen ausgewertet werden.
- Zur Qualitätskontrolle bietet auch Osmose inzwischen auch eine Kategorie „addr“, welche dann beispielsweise doppelte Hausnummern sowie addr:housenumber ohne addr:street/place oder ohne associatedStreet-Relation anzeigt.
Bisher gab es auch bei einigen Straßenzügen mit Hausnummern ohne Straßenzuordnung eine Konstellation, dass die reinen Hausnummern von Mappern erfasst wurden, die von der „Notwendigkeit“ des zusätzlichen addr:street-Schlüssels (oder vergleichbar addr:place) nicht so richtig Kenntnis hatten. Für ein pädagogisch wertvolles Vorgehen bietet sich auch die Möglichkeit, diese Mapper z.B. über die Changeset-Diskussionen anzuschreiben, vielleicht mit dem Hinweis auf diese oder die vorherigen Wochenaufgaben zwecks Erklärung.
Im OSM-Forum steht dieses Thema für Fragen und Anregungen zur Verfügung.
Viel Spaß und Freude bei der neuen Wochenaufgabe!