Integration der freigegebenen Hausnummern-koordinaten für Berlin

Hallo zusammen,
wie bereits im Thema Freie Geodaten für Berlin und in der Mailingliste Berlin diskutiert, hat die Stadt Berlin die Hausnummernkoordinaten für die freie Verwendung frei gegeben. Nachdem ich mich bei der Senatsverwaltung noch einmal rückversichert habe, dass wir diese für OSM nutzen können, habe ich mich um die technische Seite der Integration dieser wertvollen Daten in OSM gekümmern.

Ich habe ein halbautomatisches Verfahren entwickelt, das eine sorgfältige Übernahme fehlender Hausnummern mit minimalem Arbeitsaufwand ermöglichen soll. Denn Berlin hat verdammt viele Häuser.

Ich habe ein Programm geschrieben, mit dem ich die riesige Datentabelle (http://fbinter.stadt-berlin.de/fb/berlin/service.jsp?id=a_hauskoordinaten@senstadt&type=FEED) in einzelne .osm XML Dateinen nach Postleitzahl und Straße umwandle.
Die Dateien sind jeweils wie folgt benannt: _<Straßenname>.osm
Ihr inhalt gestaltet sie wie folgt:

<?xml version="1.0" encoding="UTF-8"?>
<osm version="0.6" generator="BerlinHausnummernConverter">
	<node id="-118" visible="true" lat="52.5154214976078" lon="13.3205073439076">
		<tag k="addr:housenumber" v="2" />
		<tag k="addr:street" v="Abbestraße" />
		<tag k="addr:postcode" v="10587" />
		<tag k="addr:city" v="Berlin" />
		<tag k="addr:country" v="DE" />
		<tag k="addr:inclusion" v="actual" />
		<tag k="source" v="Geoportal Berlin / Hauskoordinaten" />
	</node>
	<node id="-119" visible="true" lat="52.5157614238371" lon="13.3207212582769">
		<tag k="addr:housenumber" v="4" />
		<tag k="addr:street" v="Abbestraße" />
		<tag k="addr:postcode" v="10587" />
		<tag k="addr:city" v="Berlin" />
		<tag k="addr:country" v="DE" />
		<tag k="addr:inclusion" v="actual" />
		<tag k="source" v="Geoportal Berlin / Hauskoordinaten" />
	</node>
...
</osm>

Zur Übernahme in OSM schlage ich prinzipiell folgendes Vorgehen vor:

  1. Man lade einen Straßenzug (oder mehrere) in JOSM herunter (Menu “Datei” → Vom OSM Server herunter laden…)

  1. Man öffne eine der konvertierten .osm Dateien über das Menu “Datei” → “Öffnen”.

Daraufhin sind die geöffneten Hausnummern als (aktive) ebene zu sehen. Darunter liegen die aktuell herunter geladenen OSM Daten in einer weiteren Ebene. In Falle der Hoffmannstraße sind bereits ein paar Hausnummern in den herunter geladenen OSM Daten eingetragen. Man sieht sie gräulich auf der (unteren, inaktiven) OSM Ebene.

  1. Um Duplikate zu vermeiden lösche man diejenigen der neuen Hausnummern, die bereits in den bestehenden Daten repräsentiert sind. Einfach markieren und “Entf” drücken. Für dieses Beispiel habe ich absichtlich eine Straße gewählt, für die manche Hausnummern bereits vorhanden sind, andere jedoch noch nicht. In den meisten Fällen sind jedoch keine oder alle Hausnummern vorhanden, sodass dieser Arbeitsschritt häufig sehr schnell geht.

  1. Nach dem Entfernen der Duplikate können die neuen Hausnummern in die herunter geladene Ebene übernommen werden. Dazu einfach die obere Ebene markieren und den Knop “Aktuelle Ebene mit einer anderen Ebene verbinden” drücken. Im darauf folgenden Dialog als andere Ebene dann die herunter geladene OSM ebene (Datenebene 1) auswählen.

  1. Zum Schluss kann man die um die fehlenden Hausnummern ergänzten Daten wieder hoch laden.

Die Profi-Variante des Verfahrens:

Um schneller und effizienter voran zu kommen empfehle ich, immer ganze Postleitzahlenbereiche in JOSM zu laden.

  1. Alle osm-Dateien mit der entsprechenden PLZ auf ein mal öffnen. Dabei wird für jede Straße eine eigene Ebene erzeugt. Durch Druck der Taste ‘1’ kann man auf den gesamten PLZ-Bereich heraus zoomen.

  2. Eine neue, leere Ebene hinzu fügen (Strg+N) und dorthinein die Kartendaten vom OSM-Server herunter laden (Strg+Umschalt+Unten).

  3. Die neue Ebene in der Liste der Ebenen nach ganz unten verschieben.

  4. Alle existierenden Hausnummern in der neuen Ebene markieren. Dazu (Strg+F) drücken, in die Suchzeile “housenumber” eingeben (mit Gändefüsschen) und “Suche Starten” drücken. Nun sind alle existierenden Hausnummern rot umrahmt und alle Gebäude mit eingetragener Hausnummer rot markiert. Das hilft enorm beim Finden von schon vorhandenen Hausnummern.

  5. In der Ebenenliste das grüne Häkchen von der neuen Ebene weg auf die erste Straße setzen. Durch Druck von ‘2’ kann man automatisch auf die Straße zoomen.

  6. Schon vorhandene Hausnummern entfernen. Danach zur nächsten Straße wechseln u.s.w.

  7. Wenn man alle Straßen durch hat, alle Straßenebenen in der Ebenenliste markieren (alle außer die neue Ebene) und auf “Aktuelle Ebene mit einer anderen Ebene verbinden” klicken, um alle Straßenebenen zu einer einzigen Straßenebene zu vereinen.

  8. Mit (Strg+F) nochmal den Suchdialog öffnen und in der frisch vereinten Straßenebene nach dem Stichwort potential zu suchen und die entsprechenden Hausnummern ausomatisch alle zu selektieren. Mit dem Tag potential sind alle Hausnummern gekennzeichnet, die Laut Katasteramt vergeben sind, jedoch derzeit (vermutlich) kein Haus bezeichnen. Einige davon sind aber durchaus richtig. Die wollen wir behalten. Die anderen sollen nach mehrheitlicher Meinung nicht in OSM integriert werden. Wir wollen diese also vor dem Hochladen löschen.

  9. Dazu als Hintergrund die BING Satellitendaten einstellen (die Deckkraft eventuell etwas zurück nehmen, damit man die Hausnummern noch gut sieht)

  10. Mit gehaltener Strg-Taste diejenigen der selektierten potential Hausnummern deselektieren, die laut Satellitenbild tatsächlich ein Haus beherbergen. Alle anderen bleiben selektiert und können anschließend mit der Entf-Taste gelöscht werden.

  11. Optional kann jetzt die Straßenebene noch mit der “neuen” Ebene vereint werden. Man kann aber auch einfach die Straßenebene auf den OSM-Server hoch laden. Wichtig ist, die Quelle zu nennen. Ich schreibe
    Geoportal Berlin / Hausnummern (http://fbinter.stadt-berlin.de/fb/berlin/service.jsp?id=a_hauskoordinaten@senstadt&type=FEED)
    und als Kommentar sinnigerweise
    Semi-manual import of addresses from Geoportal Berlin / Hausnummern (using the converted data files from http://forum.openstreetmap.org/viewtopic.php?pid=415954#p415954))

  12. Fertig. Auf zum nächsten PLZ-Gebiet :slight_smile: Erst einige Zeit später kann man mir dem Housnumver Validator prüfen, ob doch noch Duplikate übrig geblieben sind. Aber besser ein paar Duplikate als gar keine Hausnummern.

Konvertierte Daten:
Die .osm files habe ich hier zum Download bereit gestellt: http://hochladen.to/files/hPFw1398529171.html

Organisatorisches:
Damit wir uns die Arbeit nicht zwei mal machen: Bitte nach Möglichkeit immer ganze Postleitzahlenbereiche vollständig bearbeiten und die entsprechenden PLZ hier posten. Das soll uns helfen den Überblick zu behalten über die Arbeiten zu behalten. Auch hier gibt es eine schöne Seite zum aktuallen Stand: http://berlinadd.morbz.de/

Zum rechtlichen:
Ich habe bei der Berliner Senatsverwaltung nochmal nachgefragt wegen der Übernahme der Daten. Laut ihrer Aussage steht diesem Vorhaben nichts im Wege.

Für Kommentare, Anregungen und Unterstützung bin ich dankbar,
Larifari77

+1
Ich finde die Idee total Klasse. ABER bitte nicht einfach ungeprüft Hausnummern hochladen. Ich habe in der Gegend 13059 festgestellt, dass es hier Hausnummern auf dem Feld gibt, ohne das dort Häuser stehen.
Außerdem scheint es Differenzen zwischen den Hausnummern in OSM und der Liste zu geben. So zum Beispiel am Hagenower Ring während in OSM eingetragen wurde 34 36 38 40 ist die Reihenfolge an ähnlicher Position 34 32 30 28 in den städtischen Hausnummern. Hier muss unbedingt vorher geprüft werden.

Das muss nicht falsch sein. Bei uns gibt es ein Grundstück, dass eine Hausnummer hat (die auch gut sichtbar ist), das Grundstück selber ist aber völlig zugewuchert und ob da noch ein Haus gebaut wird kann man allgemein bezweifeln.

Das kann sein. Aber hier standen auf dem Feld einmal Häuser(Schulen) welche zurückgebaut wurden.
Ob zugewuchert dafür spricht das dort nichts gebaut wird weiß ich nicht. Auf jeden Fall beginnen sie damit dort Reihenhäuser zu bauen. Dabei gibt es mitunter sogar Hausnummern welche in der Liste noch nicht vorhanden sind.
Wichtig ist es einfach nur zu prüfen, ob das Ding vor Ort überhaupt da ist und ob es an der richtigen Stelle ist.

Vielen Dank für das Feedback. Ich prüfe jede Hausnummer, bevor ich sie einfüge. Jedenfalls kurz. Kann sein, dass ich mal etwas übersehe. Aber im schlimmsten Fall dürfte das zu doppelten Hausnummern oder Hausnummern ohne Haus führen. Ich denke beides ist halbwegs zu verkraften. Trotzdem gebe ich mir natürlich mühe.

Die Datenbank der Hauskoordinaten klassifiziert die Hausnummern. Diese Klassifizierung habe ich in die OSM-Tags sinngemäß übernomen. addr:inclusion=potential weist ausdrücklich darauf hin, dass an der Stelle nicht unbedingt ein Haus sein muss. Meines erachtens ist ein solcher Datensatz aber nicht falsh, solange er entsprechend kalssifitiert ist. Aber wenn die Mehrheit sagt, das wir solche Hausnummern nicht in OSM einfügen sollen, kann ich sie gleich bei der Konvertierung heraus filtern.

Hier die Liste der bereits bearbeiteten PLZ-Gebiete (Bitte eure Beiträge zur Intergration hier posten).

Vielen Dank Larifari77!

Ich habe gleich noch etwas in Adlershof Doubletten und falsche Position der Nummern korrigiert. Ich werde mich jetzt mal an Altglienicke machen.

Da die Nummern in Berlin für Grundstücke vergeben werden ist das kein Wunder. Die Frage ist halt was wir in OSM erfassen wollen. Die Grundstücksnummern sind, wenn keine bewohnten Häuser drauf stehen, nicht zu sehen. Bisher habe ich solche Nummern nicht erfasst.

+1
Dies gilt insbesondere bei Nummern auf der grünen Wiese.

Ok, ich werde die "potential"s etwas kritischer überprüfen. Ich lasse sie aber bis auf weiteres mal in den konvertierten Datensätzen drin. In manchen Fällen war da auch wirklich ein Haus oder ein freies Grundstück.

Vielen Dank für die Unterstützung und das Feedback!

Das ist nach geltendem Bundessrecht eigentlich in ganz D so. Nach Ortsrecht wird hier und dort davon abgewichen. Bei uns gibt es teilweise sogar Adressen für einzelne Wohnungen (mein gefundenes Maximum: 16 Adressen in einem Mehrfamilienhaus). Häufig gelten Adressen nur für Grundstücksteile (was identisch mit Gebäuden oder Gebäudeteilen (auch übereinander!) sein kann). Irreführend ist hier der aus historischen Gründen verwendete Begriff “Hausnummer”. Wenn man sich aber darauf konzentriert, dass wir im Grunde keine "Haus"nummern erfassen, sondern Adressen, dann sind die immer interessant :wink: Leider sind die amtlichen Daten nicht immer korrekt (was kein Adressbestand jemals sein wird). Karteileichen sollten wir aber nicht importieren, daher sollte zumindest eine Plausibilitätskontrolle erfolgen. Aber das scheint hier ja der Fall zu sein :slight_smile:

Hallo zusammen,

in Köln hatten wir auch eine Hausnummernspende.
Dort haben wir die Hausnummern auch wie hier manuell importiert.
Jedoch haben wir die Hausnummern an die Hausumringungen gehängt.

Adressdatei geöffnet.
Adressnode in die Datenebene mit copy & paste Koptert.
Adressnode markiert und kopiert.
Hausumringung markiert und mit strg+umschlt+v die Tags an die Hausumringung gehängt.

Da man so noch die Hausumringung anschauen muss ist die Verifizierung moch besser.
Oft haben wir mit Bing, Aerowest und AKL-Daten das richtige herausfinden müssen.

Das Ziel 10.000 Hausnummern an einem Tag hatten wir zwar micht erreicht jedoch war die Aktion sehr lehrreich

http://forum.openstreetmap.org/viewtopic.php?id=23020

Für die Koordination kann auch ein Task erstellt werden.

Gruß
Michael

Hallo Michael,
vielen Dank für die Erfahrungen aus Köln und danke für den Tip mit dem Koordinations-Thread. Den habe ich gerade erstellt.

Das Einfügen der Hausnummern in die Gebäude-“Areas” hat natürlich seine Vor- und Nachteile. Prinzipiell ist folgendes erlaubt (siehe Richtlinien):

  • alleinstehenden Knoten
  • Knoten die Teil einer Gebäude-Area sind, dies sind im Regelfall auch Eingänge (entrance=*)
  • building=* Areas
  • Flächen die ein Gelände repräsentieren (Kompatibel mit der erwähnten Bundessrecht).

Welche Art man wählen sollte hängt vermutlich davon ab mit welcher Art von Gebäude oder Gelände man es zu tun hat. Bei freistehenden Einfamilienhäusern mit begrenzter Größe und nur einem Eingang macht das Einfügen der Attribute in die Gebäude-Area sicher sin. Allerdings muss dafür erst einmal die Area her.

Bei Mehrfamilienhäusern und größeren Gebäuden kann es sehr nützlich sein, einen eigenen Knoten für die Adresse zu spendieren, da die genaue Lage der Adresse eine sehr nützliche Information sein kann, die verloren geht, wenn das gesamte Gebäude diese Information übertragen bekommt.

Bei mehreren Hauseingängen gibt es gar keine andere Wahl, als einzelne Knoten zu spendieren, will man das Haus nicht künstlich aufteilen.

Aus anderer Sicht spricht auch nichts dagegen, die Hausnummern von unbebauten Grundstücken in OSM zu übernehmen. Warum darf ein Grundstück ohne Haus denn keine Adreesse mit Hausnummer haben?

Es kommt wahrscheinlich auch immer darauf an, aus welcher Nutzungssicht man OSM betrachtet.

  • Aus Sicht einer Navigationsanwendung ist es für den Benutzer besonders wichtig, dass die Hausnummer, die er bei der Zieleingabe eingibt, auch in der Karte repräsentiert ist. Hier wären ein paar überflüssige Hausnummern also besser, als fehlende.
  • Aus Sicht der Kartenesthetik und nicht zuletzt auch aus Usability-Sicht ist es sicher besser, unnötige Information zu vermeiden.
  • Aus Sicht des Datenvolumens ist es das beste, sich die Extra-Knoten für die Adressinformation zu sparen

Schwer objektiv zu sagen was das richtigere ist. Wahrscheinlich muss man doch von Fall zu Fall unterscheiden.

In jedem Fall gewinnen wir eine Menge nützlicher Daten für die Berliner OSM dazu. Und solange es mit den Richtlinien konform ist, kann es nicht all zu verkehrt sein.

Grüße aus der bald durchnummerierten Bundeshaupstadt,
Jürgen

Oops falscher post.

Teilweise gibt es jetzt auch doppelte Hausnummern, z.B. in der Emser Straße in Neukölln (12051). Hier war die Hausnummer direkt an das Gebäude getaggt, durch den “Import” sind jetzt zusätzlich nochmal einzelne nodes mit der kompletten Adresse entstanden. Ich werde mal die Adress-Tags von den Gebäuden entfernen, dann ist es einheitlich.

Ich würde eher die Nodes rauswerfen. Ist einfacher und die setzten sich auch seltener durch würde ich mal behaupten.

Um ehrlich zu sein war ich es selbst, der dort ursprünglich die Adressen ans Gebäude getaggt hatte. Inzwischen bin ich aber dazu übergegangen einzelne Adress-Nodes zu erstellen. Letztendlich ist ja die Adresse auch keine Eigenschaft des Gebäudes, schließlich kann auch ein Grundstück ohne Gebäude eine Adresse haben und ein einzelnes Gebäude kann mehrere Hausnummern tragen. Wenn ein Gebäude abgerissen wird und an der selben Stelle ein neues entsteht, bleibt die Adresse auch gleich.

Dazu kommt, dass Nodes meiner Meinung nach auch Korrekturen oder Verfeinerungen der Daten im Nachhinein einfacher machen. Wenn jemand z.B. die Adresse an den Eingang legen will, dann kann er einfach den node verschieben und das entrance-tag hinzufügen.

Dann hast du die Auswertung für Berlin nicht gelesen. In Berlin sind doppelt soviele adressen als node wie an Wegen erfasst.

+1

Das sind dann fast immer entrance nodes auf dem way.

wenn das wirklich jemand macht, dann kann das natürlich sinnvoll sein.

“Freistehende” Nodes setzten sich auf dauer dann doch eher selten durch.

Ich weiß nicht wie du auf die Idee kommst das dies entrace-nodes wären. Aber ich sehe in Pankow, Hohenschönhausen, Marzahn, Hellersdorf und zwischen Platz der Luftbrücke und Gneisenaustraße verdammt viele nodes mit ausschließlich Adressen. Sogar in kleineren Häusern in Hellersdorf wurden offenbar nodes gesetzt.

Und was macht so jemand an einem Gebäude mit einem Haupteingang und einem PRM-Eingang? Mein Vorschlag für sowas wäre Adresse ans Gebäude, den Haupteingang mit entrance=main wheelchair=no und den PRM-Eingang mit entrance=yes wheelchair=yes zu erfassen. Aber das Thema hatten wir ja schon mehrfach…