You are not logged in.
- Topics: Active | Unanswered
Announcement
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
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
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
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.
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
Natürlich sind es Rechtecke oder seid wann sind Rechtecke keine Polygone? Die Kreisgrenze von Dortmund war nur ein Test.
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; donewobei 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.pbfVielleicht ü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 ![]()
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
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
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.
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 ...
... 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