PLZ-Ort-Ortsteil-Strasse Tabellen Export

Moin ihr Lieben!

Ein Kumpel von der Freiwilligen Feuerwehr fragt, ob wir für ein Übungsprojekt der Jugendfeuer helfend beitragen können.

Ist es möglich aus der Datenbank eine Tabelle welche

PLZ;Ort;Ortsteil;Strasse

enthält zu exportieren, und wenn ja, wie mache ich das? Es geht wohl vorrangig darum Straßen einen Ortsteil zuordnen zu können.

Gebraucht wird das nur für die Stadt Dortmund (wenn das klappt evtl. mal später für eine weitere Jugendfeuerwehr…)

Wenn ich das richtig verstanden habe, möchte er mit den Kids an der smartphone & konsolenbedingten Orientierungslosigkeit im Rahmen der nächsten Übungen arbeiten. Das finde ich 'ne sinnvolle Maßnahme und würde das gerne unterstützen :smiley:

Kann da jemand helfen zu helfen? :slight_smile:

Also - Es gibt da von OSM Selber nichts fertiges. Jetzt ist die Frage wie IT affin du so bist :slight_smile:

Ich habe da mal ein tool geschrieben - Da kannst du vorne ein OSM PBF File reinstecken und der schmeisst dir hinten ein json raus was alle Adressen in dem PBF enthält.

https://github.com/flohoff/addressextract

Das wäre ein Start. In dem Repo liegt auch ein perl script “addrfilter” womit du das JSON laden, filtern und auch als CSV wieder rauswerfen kannst.

./addrfilter -p 44135 -c -i output/nrw/nrw.json

Kommt dann Beispielhaft so raus:


"postcode","city","suburb","street","housenumber","lat","lon","id","source","geompostcode","geomcity","geomsuburb","geomcounty","errors"
[ ... ]
"44135","Dortmund","","Am Alten Ostbahnhof","13","51.514903","7.482688","909823390","way","44135","Dortmund","Innenstadt Ost","",""
"44135","Dortmund","","Am Alten Ostbahnhof","15","51.514965","7.482702","909823391","way","44135","Dortmund","Innenstadt Ost","",""
"44135","Dortmund","","Am Alten Ostbahnhof","19","51.515089","7.482732","909823392","way","44135","Dortmund","Innenstadt Ost","",""
"44135","Dortmund","","Am Alten Ostbahnhof","17","51.515027","7.482717","909823393","way","44135","Dortmund","Innenstadt Ost","",""
"44135","Dortmund","","Am Alten Ostbahnhof","23","51.515214","7.482761","909823394","way","44135","Dortmund","Innenstadt Ost","",""
"44135","Dortmund","","Am Alten Ostbahnhof","21","51.515152","7.482746","909823395","way","44135","Dortmund","Innenstadt Ost","",""

Ich kann dir auch nen aktuellen nrw.json blob oder das ganze als csv irgendwo hinlegen dann kannst du da selber rumspielen ohne das addrfilter compilen zu müssen. Nur das NRW CSV wirst du nicht in Excel laden können - Dafür ist das zu viel Holz :wink:


flo@pax:~/projects/osm/addressextract$ ls -al output/nrw/nrw.json 
-rw-r--r-- 1 flo flo 1030712556 Mar  2 11:26 output/nrw/nrw.json

Flo

Quellcode kann ich leider nicht anbieten, nur aus meiner vorhanden Datenbank extrahieren.

plz;stadt;bezirk;strasse
44135;Dortmund;Innenstadt Ost;Alte Gartenstraße
44135;Dortmund;Innenstadt Ost;Am Alten Ostbahnhof
44135;Dortmund;Innenstadt Ost;Arndtstraße
...

Insgesamt 4313 Straßennamen in Dortmund, das geht noch in Libre Office. Wobei in strasse entweder name= oder, wenn nicht vorhanden, ref= drin ist. OSM-Daten vom 05.03.2021.

Hier gehts zum Download

Wenn du das CSV runtergeladen hast, bitte kurz Bescheid geben, damit ich sie vom Webspace löschen kann.

Uff. Ich befürchte damit bin ich (noch) überfordert. Ein Ubuntu wäre zwar fix in einer VM aufgesetzt, aber alles danach müsste ich erstmal die böhmische Dörfer aufräumen :smiley: Dennoch hab Dank für deine Bemühungen. Ich hebe mir den Beitrag aber mal für die Zeit auf, in der ich mal wieder dazu komme mein Wissen aufzufrischen, das NICHT mit dem gerade omnipräsenten Pandemiescheiß zusammenhängt und ich meine Weiterbildungen hinter mir habe.
Offen gesagt hatte ich sehr gehofft, es gäbe da etwas wie Overpass Turbo mit dem man so was bewerkstelligen kann.

Bleib gesund!

Habe vielen Dank! Das hilft auf jeden Fall schon mal so richtig weiter. Für die Zukunft muss ich irgendwie ja dann mal lernen wie man so was macht, wenn das gut ankommt wird sicher die eine oder andere FF mitmachen wollen, da müssen wir das dann doch wohl mal selber können :roll_eyes:

Kumpel ist auch schwer dankbar und faselte gerade was davon, dass er gleich morgen irgendwelche Übungskärtchen basteln will… :smiley:

Ihr seid die besten! Schön gesund bleiben!

Aloa zusammen!

Also mir lässt das ja trotz allem anderen was ich gerade um die Ohren habe keine Ruhe, das nicht selbst hin zu bekommen… :open_mouth:

Ich hatte ja vorher schon alles mögliche gelesen. Hatte mir von GeoFabrik arnsberg-regbez-latest.osm.pbf als scheinbar kleinste Datei herunter geladen. Mit


osmfilter arnsberg.o5m --keep="boundary:administrative= addr:city=Dortmund admin_level= addr:country= addr:postcode= place=suburb addr:suburb= addr:street= highway=cycleway highway=path highway=primary highway=residential highway=tertiary" | osmconvert64 - --csv="addr:postcode addr:city addr:suburb place=suburb boundary:administrative addr:street" --csv-headline --csv-separator="," > arnsberg_streets.csv


bekommt man zwar eine Datei, aber die enthält keine admin_level (9+10) als Ortsteile und viele Duplikate, und mit dem Objekt Filter stehe ich wohl auch auf Kriegsfuß, sind alle Städte drinnen. Der Weg ist wohl eine Sackgasse und es müssen echt andere Geschütze ran?

Hallo,
mit diesem Ansatz gibt es ein grundsätzliches Problem: osmfilter filtert nicht nach geographischen Zuordnungen
sondern nur nach textlichen Kriterien.
Auch wenn Du boundary=administrative addr:city=Dortmund angibts, erhälts Du immer noch alle highway=xxx aus der
Ausgangsdatei.

osmconvert kann eine Bounding Box oder ein Polygon aus den Daten ausschneiden, aber die Polygone für die einzelne admin_level=9 Stadtteile zu erstellen, ist aufwendig.

Vielleicht solltest Du es mal mit overpass-turbo probieren.
Mit dieser Abfrage http://overpass-turbo.eu/s/14Md erhälst Du alle highway mit Namen in Lütgendortmund.
Viele sind erscheinen mehrfach, weil die Straße in OSM in mehrere Teile geteilt ist.
Das Heraussortieren der Mehrfachen sollte aber kein Problem sein.

In ähnlicher Weise kann man auch Straßen in einem PLZ Gebiet finden.

Für eine duplikatfreie Liste aller Bezirke in Dortmund kann ich folgendes anbieten: https://overpass-turbo.eu/s/14Mi

Ist leider noch auf der aktuellen Version etwas lahm. PLZ als Thema habe ich daher auch mal ausgeklammert.

Das kommt dem Ziel schon sehr nahe :), nur bei admin_level=10 für die Ortsteile bekomme ich in Dortmund eine leere Seite, in der Nachbarstadt Bochum kommt genau das raus, was gebraucht würde. Level 9 sind ja die Verwaltungsbezirke, zum Orientierung lernen wären es ja die Ortsteile. Was habe ich denn da nu wieder falsch gemacht…?

Ich weiß leider nicht so genau, wie die Ortsteile in Dortmund gemappt sind. Es gibt da Relationen auf admin_level=11: https://www.openstreetmap.org/relation/10364981

Query für sowas wäre dann: https://overpass-turbo.eu/s/14Mr

Au mann, man merkt, dass ich kaum noch zum mappen komme, was man doch alles so vergisst ist erschreckend. Muss aber auch im neuen Job mein Hirn gerade im Expresstempo vollstopfen.
Jo, scheint bei uns in DO nicht einfach zu sein. Level 10 kommt nix, Level 11 so Konstrukte wie “Persebeck-Kruckel-Schnee” was eigentlich drei Ortssteile sind, “Deutsch-Luxemburger-Straße”, “Westfalenhalle” das Veranstaltungszentrum :open_mouth: ist dann boundary=census… In Bochum würde mit 10 alles passen… :roll_eyes:

Gut, dann stecke ich meinen Kopf jetzt noch mal in die Doku zu Overpass um hoffentlich heraus zu finden wie man die Abfragen nach Level 9 und 11 kombiniert und dann Verwaltungsbezirk und den Ortsteilen nahe kommenden statistischen Bezirken zusammen als CSV raus bekommt, das scheint mir Sinn zu machen…
Habt vielen dank, @mmd das war schon mal der richtige Schubs, danke sehr.