Wahl der passenden Tools

Hallo zusammen,

bitte entschuldigt zunächst die schwammige Überschrift, passender konnte ich es leider nicht formulieren. Mein Anliegen ist das folgende: Ich möchte analog zum MGR System Planquadrate aus der Weltkarte ausschneiden (100 Meter) und aus der entsprechenden OSM-XML eine ungefähre Aussage treffen, um welche Qualität es sich bei dem Planquadrat handelt: Leere Felder (Wälder, See, Meer), urbanes Gelände etc.

Bis jetzt bin ich nur darauf gekommen mit Osmosis meine Planquadrate anzugeben um dann meine xml Analyse zu starten. Ich schreibe zwar auch in Java, jedoch scheint Osmosis nur als Kommandozeilen Programm angeboten zu werden, was für meine Zwecke ziemlich viel IO auf der Festplatte wäre.

Kennt jemand eine Alternative zu Osmosis, eine Anleitung die beschreibt wie man Osmosis als einfache Jar in Java verwenden kann oder gibt es so was vielleicht sogar schon und ich kenne einfach den passenden Suchbegriff nicht?

Vielen Dank für Eure Zeit,
Dennis

Zur Zeit läuft hier eine umfangreiche Diskussion http://forum.openstreetmap.org/viewtopic.php?id=12218 zu pbftoosm http://wiki.openstreetmap.org/wiki/Pbftoosm ,
das für Deine Anwendung wahrscheinlich einfacher zu verwenden ist als osmosis.
Um eine Skriptprogrammierung kommst Du wahrscheinlich aber auch damit nicht herum.
Java sollte doch auch so etwas wie ein system-call haben?

Das hört sich nach einem wissenschaftlichen Objekt an. Daher nehme ich mal an dass du auch das entsprechende fachliche Hintergrundwissen hast. Solch eine Analyse geht ja sehr gut mit Rasterdaten.

OSM Daten sind Vektordaten. Überlege mal wie das funktionieren soll. In 100x100m Kachel die aus Vektordaten gewonnen sind sind ja meist gar keine kompletten Polygone enthalten, d.h. du kannst auch keine Aussagen treffen, einfach weil keine Infos enthalten sind in dem Bereich.

Das einzige was du machen kannst, wenn du OSM Daten für solch ein Projekt nutzen willst. Du fertigst dir erst mal eine Rasterkarte aus den OSM Daten an mit den Sachen, die dich interessieren, also wie es aussieht wohl hauptsächlich mit den Landnutzungsdaten. Die Karte färbst du mit eindeutigen Farben an, teils die Karte dann in 100x100m Kacheln und analysierst diese dann mit den entsprechenden Tools die man für solche Analysen benutzt.

splitter.jar von mkgmap kann sehr gut Rechtecke ausschneiden, liefert aber nur xml in Version 0.5. Dafür musst du dann eine oder mehrere area-Dateien erzeugen.

In wie fern erzeugt ein Kommandozeilenprogramm mehr IO als eine GUI?

hi,

b) die Anleitung hab ich vor ein paar tagen gelesen, kann sie aber gerade nicht finden. ich reiche sie nach, wenn ich sie finde.

stand auf jeden fall eventuell hier und kam als antwort von brett, dem Autor von osmosis: http://gis.638310.n2.nabble.com/Osmosis-Development-f5375409.html

c) hier wird sowas gemacht: http://osmembrane.de/ , aber ob die brett’s konzept verwendet haben, ist mit nicht bekannt.

gruss
walter

hab’s gefunden: http://lists.openstreetmap.org/pipermail/dev/2011-February/021804.html

@wambacher: Vielen Dank für den Link zur Dev-Mailinglist. Ist zwar kein Tutorial, aber das gibt mir die Gewissheit dass es sich auch so nutzen lässt.

@fx99 & aighes: Ja, System calls gehen aus Java heraus. Was ich halt vermeiden wollte war, dass ich für jedes Planquadrat eine OSM-XML Datei auf die Festplatte schreibe.

@misterboo: Du hast recht, es ist eine Idee die meine Bachelor Arbeit tangiert. Es mögen zwar in einer Art und Weise Vektorgrafiken seien, aber sie verraten ja auch etwas über die Art der Vektoren. Landuse, Highway und dergleichen. Für meine Aufgabe wird es vermutlich sogar reichen eine Abschätzung über die Komplexität der Daten zu treffen: Ein Ausschnitt aus einem Wald hat vielleicht mal einen oder zwei Wege, eine Ausschnitt einer Stadt wird wesentlich mehr haben. Die Karte zu färben und dann eine Bildanalyse drauf laufen zu lassen - was um es richtig zu machen auf ein (afaik!) neuronales Netz hinaus laufen würde - daran hatte ich auch schon gedacht. Aber wie gesagt, es tangiert nur meine Arbeit und ist eher ein nice2have.

Vielen Dank noch mal,
Dennis

Das ist ja das Problem … Gerade die Landuse Sachen sind ja meist größere Polygone die sich über größere Bereiche erstrecken.

Beispiel ein See: Schneide da mal 100x100 Rechtecke aus den OSM Dateien … die sind dann halt alle leer weil in den meisten kein einziger Punkt liegt und insgesamt wirst du bei 100x100m kaum ein Quadrat haben wo ein Polygon vollständig enthalten ist, d.h. du hast nichts zu analysieren weil keine Daten vorhanden sind.

Für die Landuse Flächen könntest du dann evt. die Größe der Quadrate ändern auf 1kmx1km … aber selbst damit fehlen dir viele Sachen weil sie eben nicht vollständig als Polygon bzw Relation in dem Bereich enthalten sind. Und selbst mit 1km Kantenlänge sind bei großen Seen oder Waldgebieten die Kacheln auch immer noch komplett leer, wenn das Quadrat innerhalb des Gebietes liegt, du bekommst also nie aussagefähige Daten aus den OSM Daten so.

und selbst wenn mal ein Stück der Außenkontur enthalten ist, kann man keine Aussage treffen, auf welcher Seite dieser Kontur nun die Waldfläche ist und auf welcher Seite nicht.

Auf die Platte schreiben musst du doch nicht…den Output von osmosis kannst du auch in ein weiteres Skript schicken (osmosis schreibt nach std_out und dein Skript liest von std_in)

Hi Antiheld,

darf ich eine dumme Frage stellen: Was ist das “MGR System”?
Es gibt ein MRG-Format für Rasterdaten, vilelleicht meinst Du das?

Ohne von dem Zeug viel zu verstehen würd’ ich eher in misterboos Richtung tendieren.
In GRASS kann man zwischen Vektor- und Rasterdaten konvertieren, aber ob das für Dein Anliegen
und dann mit OSM-Daten praktikabel ist, keine Ahnung.

PostGIS bekommt auch Rasterdatenunterstützung, ob dann solcherlei Abfragen in einer DB besser aufhoben sind?
Wiederum keine Ahnung.

:slight_smile:

Ciao,
Frank

Ihr habt natürlich Recht, eine -valide- Aussage kann man mit dieser Herangehensweise nicht ziehen. Aber ich muss das auch gar nicht für mein Ziel :slight_smile:

Letztlich reicht die Aussage ob in einem Planquadrat viele Informationen vorliegen oder wenige. Liegen viele vor, so kann ich annehmen dass es ein von Menschen besiedeltes Gebiet ist. Liegen wenig oder gar keine vor so wird es sich vermutlich um ein Ländliches Gebiet handeln. Diese Information benötige ich um die Wahrscheinlichkeit abzuschätzen das sich dort ein Mensch häufiger aufhalten möchte oder nicht.

Dazu kommt das diese Information auch nur eine weitere (schwache) Gewichtung von mehreren ist, weshalb es auch nicht so tragisch ist wenn die Daten nicht genau der Realität entsprechen.

@aighes: Muss ich mal schauen. Danke für die Anregung :slight_smile:

Hi!
Ich sehs auch wie misterboo, es ist relativ schwierig, bei so kleinen Quadraten die Landuse-Polygone auszuwerten, weil oft kein einziger Node eins umgebenden Landuse-Polygons im untersuchten Bereich liegt. Aber vielleicht hat Osmosis einen entsprechenden Parameter, mit dem man so etwas berücksichtigen kann? aighes, weißt du da was?

Auch aighes muss ich mich anschließen, die Daten der Quadrate können doch gleich verarbeitet werden, man muss sie nicht erst auf Platte schreiben.

“Quadrate”… sind es wohl nicht. Das Einfachste sind - äh - wie heißen die Dinger? Sphärisches Trapez? Jedenfalls haben die dann möglicherweise unterschiedliche Flächen - je nachdem, bei welchem Breitengrad du bist. Ist für statistische Vergleiche wichtig.

Die Rasterdarstellung von OSM gibt es doch schon vielfach:
Nehme z.B. die Mapnik Tiles http://wiki.openstreetmap.org/wiki/Mapnik und werte die Farben aus, z.B. http://c.tile.openstreetmap.org/18/137584/90448.png
Im Wiki ist auch beschrieben, wie Du von den Geo-Koordinaten auf die Tile-Nummer kommst.
Dann bekommst Du zumindest eine komplette Flächenabdeckung.

Mit etwas mehr Aufwand kannst Du die Daten in einer besser auf Deine Anforderungen angepassten Weise selbst rendern.

Hallo Frank

Ich vermute, dass es sich um das UTM basierte Military Grid Reference System handelt (siehe Wikipedia).

Ergänzung:
Ein anderer Ansatz könnten sein, die Zahl der highway=residential/footway/…, landuse=residential/retail/… oder Gebäude als Indikator für menschliche Nutzung für jeden zu betrachtenden Bereich zu ermitteln. Das kann man recht schnell aus einem entsprechenden Extrakt ermitteln.

@Antiheld: Herzlich willkommen im Forum

Edbert (EvanE)

Hallo Edbert,

Yep, danke Edbert, das macht viel Sinn, das es Antiheld um “Planquadrate” geht.

Das wiederum überzeugt mich weniger, da in Gebieten geringer mapping-dichte (z. B. Teilen Afrika) wenig gemappt wurde,
obwohl es sich um meschliche Ansiedliungen beträchtlichen Ausmaßes handeln könnte, sprich die “Polygonfläche” ist riesig, es werden aber nur wenige Punkte gesetzt und wenn nun nur nach Anzahl geht …

Ciao,
Frank

Hallo Frank

Damit hast du natürlich recht. Ich habe hauptsächlich an intensiv gemappte Gebiete aus (Mittel)Europa insbesondere an Deutschland gedacht.
Wie sieht es mit place-Nodes aus? Sind die in Afrika, Asien und Südamerika ausreichend vorhanden?

Wie auch immer, die allgemeine Mapping- und Einwohner-Dichte (siehe den zweiten Teil der http://www.odbl.de/ ODBL-Liste) eines Gebietes sollte man auch in Betracht ziehen. Erst in Relation zu diesen Gebiets-Werten kann eine Aussage “Dicht gemappt - wahrscheinlich viele Menschen” überhaupt sinnvoll getroffen werden.

Edbert (EvanE)