You are not logged in.

Announcement

*** NOTICE: forum.openstreetmap.org is being retired. Please request a category for your community in the new ones as soon as possible using this process, which will allow you to propose your community moderators.
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***

#26 2013-08-08 14:49:31

brogo
Member
From: 54,11 +-1°
Registered: 2009-06-02
Posts: 553

Re: Anleitung poly Datei erzeugen

wambacher wrote:

Einen Clipper, der gleichzeitig mehrere OSM-Files erzeugt, wirst du nirgenswo finden.

Ach Walter! Warum vergisst Du immer das gute alte Osmosis. Das kann eine Menge. Es kann auch aus einer Datei mittels mehrere poly-Dateien mehrere OSM-Ausgabedateien erzeugen.

etwa so (nicht getestet):

call osmosis ^
--read-pbf file="c:\osm\planet\germany.osm.pbf" ^
--tee 2  ^
--bounding-polygon file="c:\osm\planet\schleswig-holstein.poly" ^
--write-pbf file="C:/OSM/Planet/schleswig-holstein..osmpbf" ^
--bounding-polygon file="c:\osm\planet\bayern.poly" ^
--write-pbf file="C:/OSM/Planet/bayern.osm.pbf" 

Osmosis arbeitet mit "Pipes" für Ein- und Ausgabe. Jeder Befehl hat eine bestimmte Anzahl von Ein- und Ausgabepipes. "--read-pbf" hat z.B. nur eine Ausgabepipe, erwatet also daß die Daten von einem anderen Befehl weiterverarbeitet wird. Das kann z.B. "--write-pbf" sein, welches nur eine Eingabe- aber keine Ausgabepipe hat. "--bounding-polygon" hat je eine Ein- und Ausgabepipe. Um nun von "--read-pbf" auf zwei Ausgaben zu kommen, splittet der Befehl "--tee 2" die eine Ausgabepipe in 2.

Auf jeden Fall müssen zwei poly-Files benutz werden.

Christian

Offline

#27 2013-08-08 15:22:35

Köcky
Member
Registered: 2012-11-09
Posts: 75

Re: Anleitung poly Datei erzeugen

Wie kann ich denn das Ergebnis in JOSM auseinanderreißen? Ich muss irgendwie jedes Polygon aus der Shape-Datei in einzelne *.poly Dateien abspeichern. Da es aber recht viele sind möchte ich nicht ca. 150mal "Speichern unter" betätigen.

Danach würde es dann einfach werden. Mit den 150 *.poly Dateien würde ich mir eine *.bat in Notpad++ schreiben, die dann in der cmd osmconvert ausführt um einzelen *.osm Dateien zu erhalten.

Offline

#28 2013-08-08 15:32:15

wambacher
Member
From: Schlangenbad/Wambach, Germany
Registered: 2009-12-16
Posts: 16,769
Website

Re: Anleitung poly Datei erzeugen

brogo wrote:
wambacher wrote:

Einen Clipper, der gleichzeitig mehrere OSM-Files erzeugt, wirst du nirgenswo finden.

Ach Walter! Warum vergisst Du immer das gute alte Osmosis. Das kann eine Menge. Es kann auch aus einer Datei mittels mehrere poly-Dateien mehrere OSM-Ausgabedateien erzeugen.

Auf jeden Fall müssen zwei poly-Files benutz werden.

Christian

Klaro, osmosis kann ich rauf und runter beten.

Gemeint habe ich: "Einen Clipper, der aus einem Poly-File (mit mehreren Polygonen) gleichzeitig mehrere OSM-Files erzeugst, ..."

Bei mehreren Polygonen in einem Poly-File ist das erste Polygon der Outer und die anderen Polygone sind die Inner. Dies ist einzig durch die Reihenfolge so festgelegt, weil es Rollen (role=outer, role=inner) im Poly-File nicht gibt.
Ob Osmosis das dann wie ein echtes MP behandelt - also als eine Fläche mit Löchern - , hab ich noch nicht ausprobiert. Es erscheint mir aber als sinnvoll.

Mal sehen, eventuell probiere ich das mal aus, obwohl es hier im Thread nicht weiterhilft. Irgend eine Bayrischer Kreis (Landshut?) liegt wohl kreisförmig um "seine" kreisfreie Stadt herum. Damit sollte man das testen können, wenn man nur den Kreis braucht.

Gruss
walter

Offline

#29 2013-08-08 15:35:21

Köcky
Member
Registered: 2012-11-09
Posts: 75

Re: Anleitung poly Datei erzeugen

Das hilft mir wirklich nicht weiter.

Ich muss erst mal aus meiner shape Datei, mehrere *.poly Dateien gewinnen ohne 150 auf "Speichern unter" zu klicken.

Wie mach ich das am Besten?

Last edited by Köcky (2013-08-08 18:45:44)

Offline

#30 2013-08-08 16:02:40

wambacher
Member
From: Schlangenbad/Wambach, Germany
Registered: 2009-12-16
Posts: 16,769
Website

Re: Anleitung poly Datei erzeugen

Köcky wrote:

Wie mach ich das am Besten?

sorry, da muß ich passen.

aber mal ne Frage zu deinem Projekt. Angefangen hast du mit

ich würde gerne Grenzpolygone ... für osmconvert benutzen, um meine OSM Daten anhand der Grenzlinie zu clippen.

Wenn du deine 150 Poly-Files hast und dann 150 OSM-Files besitzt, was machst du dann damit? 150 Karten für 150 Städte?
Der Weg kommt mir irgendwie komisch vor.

Grübelnder Gruß
Walter

ps bold und "..." im Zitat von mir.

Last edited by wambacher (2013-08-08 16:04:36)

Offline

#31 2013-08-08 18:53:14

Köcky
Member
Registered: 2012-11-09
Posts: 75

Re: Anleitung poly Datei erzeugen

Ich produziere eine Deutschlandkarte im GIS. Da dies nicht in einer einzigen Karte funktioniert unterteile  ich Deutschland in 150 Kacheln.

Draußen erstelle ich Teilkarten , die als Rasterpaket (256 x 256 pixel) später auf dem Server als gesamte Deutschlandkarte zusammengefügt werden.

Offline

#32 2013-08-08 19:05:19

viw
Member
Registered: 2010-05-15
Posts: 2,623

Re: Anleitung poly Datei erzeugen

was für Kacheln sollen das denn werden? Das klingt ja eher nach einer Aufgabe für Mapnik oder gleich eine Datenbank als Zulieferer, welche dann flexible mit Boundingbox abgefragt werden kann.

Offline

#33 2013-08-08 19:19:25

Oli-Wan
Member
From: NRW
Registered: 2010-09-14
Posts: 2,814

Re: Anleitung poly Datei erzeugen

Und vor allem, wenn die Kacheln hinterher sowieso wieder zusammengeklebt werden sollen, warum umständlich mit irgendwelchen Polygonen schneiden und nicht einfach mit Rechtecken? Geht schneller und läßt sich mühelos per Shellskript automatisieren, ohne vorher Polygonfiles erstellen zu müssen.


No animals were harmed in the writing of this posting.

Offline

#34 2013-08-08 22:24:24

Köcky
Member
Registered: 2012-11-09
Posts: 75

Re: Anleitung poly Datei erzeugen

Natürlich sind es Rechtecke oder seid wann sind Rechtecke keine Polygone? Die Kreisgrenze von Dortmund war nur ein Test. wink

Mapnik kenne ich nicht und mit meinem GIS arbeite ich seit 5 Jahren.

Was ist Shellscript? Hört sich interessant an. Kann es mir die Germany.pbf in 150  *. osm Kacheln zerhacken?

Ich kenne ja nun einen Weg, aber manuell dauert es recht lange.

Last edited by Köcky (2013-08-08 22:26:10)

Offline

#35 2013-08-08 22:47:53

wambacher
Member
From: Schlangenbad/Wambach, Germany
Registered: 2009-12-16
Posts: 16,769
Website

Re: Anleitung poly Datei erzeugen

Köcky wrote:

Natürlich sind es Rechtecke oder seid wann sind Rechtecke keine Polygone? Die Kreisgrenze von Dortmund war nur ein Test. wink

Danke, dass du uns mit deinem "Test" ganz schön vera.... hast. Mir reicht es jetzt.

-w-

Last edited by wambacher (2013-08-08 23:51:54)

Offline

#36 2013-08-08 22:51:45

Oli-Wan
Member
From: NRW
Registered: 2010-09-14
Posts: 2,814

Re: Anleitung poly Datei erzeugen

*seufz* Warum nimmst Du als Testfall ein vielfach komplexeres Objekt als Du anschließend tatsächlich benutzen möchtest? Normalerweise macht man es genau umgekehrt.

Sag doch beim nächsten Mal gleich, was Du vorhast. efred, wambacher, brogo et al. hätten sich die Arbeit für ihre Erklärungen fast komplett sparen können. Schematisch sieht die Lösung für 1°x1°-Blöcke als Bash-Skript so aus:

for lat in $(seq 47 55); do
  for lon in $(seq 5 15); do
    ...
done; done

wobei für "..." der Ausschneidebefehl einzufügen ist mit den Grenzen lat, lon eingesetzt a) in die Bbox und b) in die Dateinamen. Mit osmconvert also ungefähr (nicht getestet)

osmconvert germany.pbf -b=$lon,$lat,$(($lon+1)),$(($lat+1)) -o kaestchen_$lon_$lat.pbf

Vielleicht übersetzt Dir das auch noch jemand in eine Variante, die auf einem Rechner ohne ordentliche Shell funktioniert. Rekursiv geht es eleganter und letztlich effizienter (vgl. Posting von brogo, aber auch mit osmconvert), aber das scheint mir hier nicht zielgruppengerecht.

PS. Ich sehe gerade, daß die Lösung nicht zu gebrauchen ist. Es entstehen nur 99 Blöcke, nicht 150.

Last edited by Oli-Wan (2013-08-08 23:12:01)


No animals were harmed in the writing of this posting.

Offline

#37 2013-08-09 07:17:32

Köcky
Member
Registered: 2012-11-09
Posts: 75

Re: Anleitung poly Datei erzeugen

@wambacher

Entschuldigung, aber verarscht habe ich dich nicht. Ich muss es wirklich wissen und hab doch oben schon geschrieben das ich euch sehr dankbar bin.
Mir ist danach nur eingefallen warum ich es so kompliziert mache sad

Außerdem dachte ich, dass ich den beschriebenen Weg von Dir nutzen kann um meine Rechtecke.poly zu erzeugen. Woher soll ich denn wissen, dass es auch anders geht???


@Oli-Wan
Das sieht sehr gut aus, wenn das nun bitte jemand noch optimieren könnte, wäre es perfekt.

Last edited by Köcky (2013-08-09 07:36:38)

Offline

#38 2013-08-09 07:51:50

quasilotte
Member
Registered: 2011-01-29
Posts: 379

Re: Anleitung poly Datei erzeugen

@oli-wan
das ergebnis ist schon richtig  47 zu 55    ist 9   und 5 zu 15 ist 11  Ergo:9*11=99

Aber ob bash das optimal herausholt ? das Script ruft 99 mal nacheinander osmconvert auf je nach Prozessor und Speicher kann man aber meherer osmconvert parallel laufen lassen (ich selbst lasse bis zu 8 laufen).

Ist vielleicht eine batch Datei effektiver ? Oder irgendwie das script optrimieren

osmconvert --complex-ways  germany.pbf --out-pbf -b=9,53,10,54 kaestchen_9_53.pbf


@Köcky
was soll da noch viel optimiert werden.
Ein bischen was soll ja noch für dich übrig bleiben.

Ausserdem ist in deinem Fall --complex-ways wichtig da sonst gnadenlos alles was ausserhalb abgeschnitten wird. Dadurch werden dann evtl. Linen (Highways ...) und Flächen nicht bzw. nicht richtig gezeichnet.

Offline

#39 2013-08-09 08:02:08

Köcky
Member
Registered: 2012-11-09
Posts: 75

Re: Anleitung poly Datei erzeugen

Kann ich mich irgendwo einlesen? Ich habe keine Ahnung wie man sowas schreibt.
Ansonsten werde ich einmalig die 150 *.poly Dateien erzeugen und mir dann eine bat schreiben, in der ich 150mal osmconvert ausführe.

osmconvert Deutschland.osm -B=Kachel_1.poly --out-osm -o=Kachel_1.osm

osmconvert Deutschland.osm -B=Kachel_2.poly --out-osm -o=Kachel_2.osm

usw.

Offline

#40 2013-08-09 08:42:57

aighes
Member
From: Shanghai
Registered: 2009-03-29
Posts: 5,383
Website

Re: Anleitung poly Datei erzeugen

Schau dir mal den splitter von mkgmap an. Der macht im prinzip genau das, was du möchtest. Du musst ihm allerdings eine Datei areas.list vorgeben. In dieser steht für jede Kachel drin: Top,Bottom,Left und Right (Reihenfolge habe ich jetzt nicht geschaut). Allerdings ist die Angabe in Garmin-Units. Die erhälst du, indem du <Gradzahl> mit 46603 multiplizierst.


Viele Grüße
Henning

Offline

#41 2013-08-09 08:43:34

Oli-Wan
Member
From: NRW
Registered: 2010-09-14
Posts: 2,814

Re: Anleitung poly Datei erzeugen

quasilotte wrote:

Aber ob bash das optimal herausholt ? das Script ruft 99 mal nacheinander osmconvert auf je nach Prozessor und Speicher kann man aber meherer osmconvert parallel laufen lassen (ich selbst lasse bis zu 8 laufen).

Hatte ich ja selbst schon geschrieben, daß man das noch effizienter gestalten könnte (insbesondere durch rekursives Vorgehen, evtl. auch noch unterstützt durch ein Batch-System), aber für unseren GIS-Guru scheint mir das zu kompliziert. Eine ganz einfache Möglichkeit wäre zumindest, zwei Skripte zu erstellen (z.B. 5 bis 10 und 11 bis 15) und diese parallel laufen zu lassen.


No animals were harmed in the writing of this posting.

Offline

#42 2013-08-09 09:12:26

viw
Member
Registered: 2010-05-15
Posts: 2,623

Re: Anleitung poly Datei erzeugen

Köcky wrote:

Kann ich mich irgendwo einlesen? Ich habe keine Ahnung wie man sowas schreibt.
Ansonsten werde ich einmalig die 150 *.poly Dateien erzeugen und mir dann eine bat schreiben, in der ich 150mal osmconvert ausführe.

osmconvert Deutschland.osm -B=Kachel_1.poly --out-osm -o=Kachel_1.osm

osmconvert Deutschland.osm -B=Kachel_2.poly --out-osm -o=Kachel_2.osm

usw.

Es ist einfach schade das du nicht das eigentliche Ziel am Anfang mitgeteilt hast! Das ausschneiden aus einem Polygon ist nicht nur wesentlich mühseliger (weil man das Ding erst mal haben muss) Es ist auch noch rechenintensiver, weil das in der Regel eben ein gebiet ist, wie die Kreisgrenze die nicht deine Anforderungen von Rechteckig erfüllen.

Was dir hier nach deiner Offenbarung vorgeschlagen wird ist osmconvert mit einer Boundingbox zu verwenden. Statt deiner 150 Polygone verwendest du einfach die jeweiligen Eckkoordinaten und hast die OSM Dateien. (Natürlich musst du für jede OSM Datei einen Aufruf von osmconvert machen.
Statt -B=xxx.poly kannst du auch -b=x1,y1,x2,y2 als Koordinaten verwenden.

quasilotte wrote:

osmconvert --complex-ways  germany.pbf --out-pbf -b=9,53,10,54 kaestchen_9_53.pbf

Damit brauchst du nicht mehr umständliche Polygone erzeugen.
Und all das hätte uns/dir erspart bleiben können. Außerdem ist deine Art manchmal sehr ungeduldig fordernd ohne das erkennbar wird wie du versuchst das Problem eigentlich zu lösen. (Lieber erstmal hier fragen bevor man sich selbst Gedanken macht)
Außerdem solltest du dir nochmal die Anleitung zu den Osmconvertparametern durchlesen.

Dein Vorgehen hat aber auch noch gravirende Nachteile, für große Flächen. Wenn Flächen durch dein Ausschnitt laufen, aber keinen Punkt (Verweis) innerhalb haben, werden diese nicht gefunden. Genauso werden Multipolygone etc. die über deinen bereich hinausgehen zerstört wenn du complex-ways nicht verwendest. Gleiches kann dir nachher beim rendern wieder passieren.

Es ist übrigens sehr schön das du 5 Jahre mit deinem GIS arbeitest. Das ist sicher eine Bereicherung für dich und du hast damit jede Menge Erfahrung. ABER du wirst einige Probleme damit selbst lösen müssen, da die Community das anders löst. Rendern von Kacheln beispielsweise mit Mapnik oder Maperative.
Ebenfalls solltest du berücksichtigen das der OpensourceGedanke ganz weit oben steht und viele Problem mit Linux gelöst wurden. Wie man das auf anderen betriebssystemen umsetzt ist dann zu erproben. (wahrscheinlich oft im Selbstversuch)

Last edited by viw (2013-08-09 09:15:54)

Offline

#43 2013-08-09 09:33:55

Köcky
Member
Registered: 2012-11-09
Posts: 75

Re: Anleitung poly Datei erzeugen

Ja, es war ein Fehler nicht direkt zu schreiben was ich vor habe. Dann hätte man mir wahrscheinlich direkt geraten es über Rechtecke laufen zu lassen. Selbst kam ich leider erst später auf die Idee. Habe aber deswegen niemanden verarscht. Nun ist das Kind in den Brunnen gefallen. Es war jedenfalls keine Absicht.

Jedenfalls vielen lieben Dank für die Hilfe und Hinweise.

Ich fummel mich da mal durch ...

Oli-Wan wrote:

... aber für unseren GIS-Guru scheint mir das zu kompliziert.

Ironische Kommentare finde ich allerdings absolut überflüssig!!! Nur weil ich länger mit GIS arbeite muss ich doch noch lange nicht eure Scripte beherrschen.

Offline

Board footer

Powered by FluxBB