Polygone für Boundaries extrahieren

Hallo,
ich möchte gerne Polygone für Grenzregionen extrahieren.
Habe mir also direkt aus den üblichen Geofabrik-OSM Dateien die Relationen rausgefiltert,
dann in die Ways und Nodes gegangen und habe mir die Koordinaten geholt.
Nun das Problem:

  • das ganz funktioniert nicht sauber, vermutlich weil bei einem Polygon die Reihenfolge, wie die Punkte verbunden werden müssen
    exakt definiert sein muss - und die OSM Daten das nach meinem Wissensstand so nicht hergeben.
    Ich habe erfahren, von jemandem der abgeleitete SHP Dateien zu Grenzregionen anbietet, dass er osm2pgsql nutzt und dies wohl durch Algorithmen die richtige Reihenfolge herstellt.
    Ich würde aber gerne (auch wegen des Verständnisses) direkt aus den OSM Dateien die Polygone ableiten, hat da jemand eine Idee/Link wie man das machen könnte?
    (also wirklich erfassen aller Koordinaten und sortieren nach zu verbindender Reihenfolge…)

Danke,
Götz

Das kann man machen, aber es ist wesentlich aufwendiger, als man naiverweise annehmen würde. Am besten suchst Du Dir den Quelltext einer Software, die das eh schon macht - z.B. osmium, ogr2ogr oder osm2pgsql - und guckst Dir da ab, wie es geht. Oder folge der Beschreibung auf http://wiki.openstreetmap.org/wiki/Relation:multipolygon/Algorithm. Es ist leicht, einen Algorithmus zu schreiben, der 95% aller Grenzen konvertiert, aber die letzten 5% machen viel Arbeit (z.B. Grenzen mit Löchern drin, Grenzen mit Löchern, in denen innendrin nochmal ein Gebiet ist, das dazugehört, Grenzen aus mehreren Teilen, Grenzen aus mehreren Teilen, die sich unerlaubterweise überschneiden, usw. usw. usw.)

Bye
Frederik

Geht es dir um das Prinzip “selber machen” oder nimmst du auch fertige Polygone?

Fertige bekommst du bei Boundaries Map

Gruss
walter

ps: wenn dir die dortigen Funktionen nicht ausreichen: Es kommt bald die 4.1 heraus mit der Möglichkeit ganze Länder oder auch Teile davon mit einem curl- oder auch wget-Aufruf zu laden - also ohne Gui. Könnte dir einen Beta-Zugang ermöglichen.

Also mir geht es schon ums selber machen, auch & vorallem wegen des Verständnisses.
Dass ich mehrere Polygone für eine Gebiet haben kann, hab ich auch schon gemerkt…das mit dem Quelltest werde ich mal checken, aber
das wird gruselig, dass ahne ich schon. Deshalb danke für den anderen Link.
Kleine Fehlerchen bei bestimmten Regionen habe ich auch schon bemerkt, wird aber eine Sysiphos-Aufgabe jetzt rauszufinden, ob die Grenzregionen falsch sind oder es beim Verknüpfen in der Reihenfolge zu Problemen kam.
Wenn die bekannten Algoithem bekanntermaßen auch mal Fehler machen…wird man das ja nie automatisiert komplett entdecken können…

Beispiel: Straße “Im Dorfe” in Mulsum, liegt mit Koordinaten 8.550;53.668 in PLZ Polygon 27639 richtig ist aber 27632

Oh man, alles so kompliziert…

@wambacher.
Danke für das Beta Angebot. Das nehme ich gerne an.
Ich könnte so z.B. die PLZ Grenzen gegen die von http://www.suche-postleitzahl.org/downloads prüfen.
Allein durch Unterschiede bei der Verbindungsreihenfolge werden sich da sicherlich Unterschiede ergeben.
Eigentlich bräuchte ich auch ein Tool (kann ich über Auswertung der Timestamps natürlich auch selbst machen) was mich auf Änderungen
in den Boudaries aufmerksam macht. Gibts denn sowas schon?
Zur Not nehme ich auch was mit GUI wie QGIS wo man z.B. zwei SHP einlädt und vergleicht…geht vielleicht sowas?

Momang, die Boundaries Map macht “nur” Admin-Grenzen und keine PLZ. Und meine PLZ-Karte hat keinen Export :frowning:

Zuerst musst du mal die Datenlage (er)klären: WO hast du WIE WELCHE Daten OSM-Daten zur Verfügung? Optimal wäre eine PostgreSQL/PostGIS-DB, aber die hat nicht jeder.

Gruss
walter

ps: eine mögliche Lösung ohne PostGIS:

  • täglich den Extrakt der Geofabrik für DE laden
  • dort die PLZ-Rels und Grenzways filtern (osmconvert ?)
  • die Ways in Polygone umwandeln
  • alte Polygone und neue vergleichen.

der 3. Schritt ist mMn am schwierigsten.

Für so was gibt es sogar eine Daueraufgabe: https://osm.wno-edv-service.de/fools/

Greift hier allerdings nicht, da an der Straße keine Häuser und vor allem keine Adressen mit PLZ vorhanden sind.
Erst wenn jemand™ dort richtige Adressen einträgt, wird das falsche PLZ-Gebiet bemerkt.

@seichter, was ist denn das für eine geniale Seite mit den Fools?
Gibt es irgendwo ein Readme was es damit auf sich hat…werden da Adressen gegen die Boudaries gecheckt und die Seite
füllt sich automatisch?

Sind das sozusagen alles bereits komplett korrigierte Daten die irgendwie ins OSM zurückfließen müssen?!
Mich hats gerade aus den Socken gehauhen, kann man die Daten irgendwo downloaden und unter welcher Lizenz stehen denn die?!
Götz

@wambacher.
Schritt 3 ist nun auch nicht so kompliziert, man hat halt nur viele Daten.
Letztlich ist das Polygon aber ein langer String den man auf Identität prüfen kann.
Muss natürlich jede Nacht mit gleichem Sortieralgorithmus für die Verbindungsreihenfolge gebildet werden.
Ich bin EDV und DSL technisch noch zu schlecht ausgestattet, dass ich das machen kann… mir juckts aber schon in den Bestellfingern.

Datenbasis ist im Moment die hier angebotene SHP
http://www.suche-postleitzahl.org/downloads
ung genau das macht micht etwas nervös, wenn der Betreiber seinen Dienst einstellt, hab ich kein KnowHow um das selbst zu machen…

Hi Götz, ja das ist auch mein Baby. :slight_smile:

Das Programm lädt (um 5:00 morgens) alle PLZ-Grenzen und alle PLZ-Daten (Nodes, Buildings und Buildings als Rel). Danach wird mit PostGIS nachgesehen, ob die PLZ der Adresse auch im “richtigen” Gebiet liegt. Im Fehlerfall taucht das in der Fools-App auf und kann von dort aus bearbeitet werden.

Fehler1: Die PLZ der Adresse ist falsch - liegt also im falschen PLZ-Gebiet
Fehler2: Die Adresse ist richtig aber das PLZ-Gebiet ist falsch.
Problem: Das ist eine Adresse im “freien Feld”, (Hamlet, Gehöft), wo die Zuordnung eines PLZ-Gebietes zumindest für uns einfach nicht sicher möglich ist.

Ich kann hier nicht unterscheiden. Und adresslose Daten (z.B. Straßen) kann ich nicht prüfen

Warum Downloaden?

Gruss
walter

PS: Nun mal Butter bei die Fische - was willst du eigentlich genau?

@seichter.
Okay, habe glaube ich verstanden, wie die Fools gebildet werden.
Im Prinzip wäre doch eine öffentliche korrekte Adressliste ideal um hier mal großflächig aufzuräumen.
Das statistische Bundesamt in Wiedbaden hat viele Listen, die unter meist normalerweise unproblematischen Lizenzen stehen.
Wenn man z.B. eine bundesweite Liste aller Wahlräume bekäme, wäre das doch eine gute und umfangreiche Datenquelle…
(selbst kommezielle Nutzung ist bei denen auch meist unter Quellnennung erlaubt, OSM andererseits verlangt ja nun die direkte Unterstellung unter OSM Lizenz, vermutlich ist es also eher wieder ein Lizenzproblem…)

@wambacher.
Ich will eigentlich nur korrekte PLZ Grenzen, aber allein mit den Polygonen sehe ich schon dass es nie perfekt werden kann.
Das mit den Adressen+PLZ die als Way+PLZ nicht vorkommen kann ich mir natürlich selbst leicht hinbauen, insofern kein Download nötig.
Ich hatte nur erst gedacht dass die Daten zum Teil manuell eingetragen wurden und deshalb eine “neue Quelle” sind.

Frage: GroßkundenPLZ (z.B. Autostadt in Wolfsburg) tauchen meines Wissen auch in den Adressdaten auf, werden aber vermutlich nicht(nie im den geographischen Gebieten übereinstimmen. (soviele Regionen gibt ja nicht). Die werden dann bei Dir soch auch alle als Fehler gemappt, oder? (gibts Ausschlusslisten?)
Die letzte Großkunden-PLZliste die man frei bekommen kann ist irgendwo bei der Uni Mainz und von 1993.
Wie löst Du das?

Naja, die Gefahr ist mMn relativ gering. Mich würde nur stören, dass die natürlich auf OSM basierenden Daten nicht zeitnah vorhanden sind. 6.8 und heute ist der 18.8.

Wie gehst du denn mit den Shapes um? Was machst du damit?

@wambacher.
Ich lade die Shapes in QGIS und exportiere nach KML, dann kommt man an alles ran.
Dummerweise muss ich immer irgendeinen Bearbeitungsschritt machen, z.B. “Vereinfachung Geometrie” mit 0,0001
weil QGIS sonst mit UTF-8 Käse macht und die Ortsnamen zerhaut.
Müsste man eigentlich als Fehler melden…

Wie unterscheidest Du Fehler 1 und 2 - wann ist eine Adresse denn bei Deiner Auswertung “richtig”.
(wenn x gleiche in selber Region?)

garnicht. Soweit ich mich erinnere, haben wir uns bei OSM darauf geeinigt, bei Firmen in addr:postcode die geographische PLZ zu erfassen. Aber manche halten sich sicher nicht daran.

Es gibt ja auch die Postfach-Postleitzahlen. Die lassen wir auf jeden Fall außen vor.

Kennt sich wer mit WFS (nicht WMS!) aus? Mein Geoserver müsste eigentlich in der Lage sein, PLZ-Grenzen als WFS - also Daten und keine Images - zu liefern.

Ich kenne nur gerade kein Programm, mit dem man das testen kann. QGIS wäre für mich optimal.

WMS (Tiles) funzt prima, nur ist Götz hiermit nicht geholfen.

Der URL für Josm/WMS (Tiles) ist wms:https://osm.wno-edv-service.de/geoserver/wms?SERVICE=WMS&FORMAT=image/png8&TRANSPARENT=TRUE&VERSION=1.1.1&REQUEST=GetMap&LAYERS=osm:postal_boundaries&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}

geht am einfachsten, wenn man in Josm https://osm.wno-edv-service.de/geoserver/wms?SERVICE=WMS eingibt und die Ebenen abfragt. Unbedingt Bildformat auf image/png8 setzen, sonst sind die Tiles nicht transparent.

Gruss
walter

Hinreichend aktuelle QGIS können WFS 1.x problemlos lesen. Und wenn du WFS 2.0 brauchst, gibt es https://plugins.qgis.org/plugins/wfsclient/ .

Hier ist ein HOWTO: http://docs.qgis.org/2.6/de/docs/training_manual/online_resources/wfs.html .

Läuft auf deiner angegebenen URL auch ein WFS?
Unter https://osm.wno-edv-service.de/geoserver/wms?SERVICE=WFS&VERSION=1.1.1&REQUEST=GetCapabilities antwortet auf jeden Fall was.

Mit der Adresse https://osm.wno-edv-service.de/geoserver/wfs als WFS-Dienst komme ich mit QGis bis auf deinen Server.
Ich sehe dann eine ganze Reihe an Themen, z.B.
Admin Boundaries
.
adressen
.
heatmap plz
.

Ich bekomme aber dann zwar eine Meldung (Zeitüberschreitung), wenn ich eines der Themen laden will…
Er hat mir aber z.B. die Sirenen geladen, ob alle, weiß ich nicht. Die Emergency Access-Points hat er nicht geladen.

Ich versuche es auch nicht weiter, weil ich nicht weiß, wie das deinen Server belastet. Mit QGis lädt man alle Daten. Daher vermute ich, daß alle Sirenen geladen weden wollen… Eventuell solltest du überlegen, WFS nicht bereitzustellen.

Sven

Nee, du kannst das filtern. Unten im WFS-Layer-Zufügen-Dialog gibt es “Nur sich mit aktueller Ansicht überschneidende Objekte herunterladen” (QGIS 2.16).

Muss man natürlich vorher mal reingezoomt haben. Ich hab das beim ersten Abruf vergessen…

Und so kann man dann auch super Hydranten einfärben