osmosis - ein Buch mit sieben Siegeln

Für folgende Problemlösung suche ich einen Weg, der auch von jemanden, der von Komandozeilenprogrammen keine Ahnung hat, nachvollzogen werden kann.

Situation:
Composer86 ist auf einem offline-Rechner installiert.
Dadurch ist der Zugriff auf Planetfiels nicht via Internet möglich.
Die Lösung, lokal gespeicherte Daten zu verarbeiten, ist bekannt.
Das Ergebnis sind jedoch ungeschnittene Kartenausschnitte mit überlappenden Elementen.
Theoretisch lassen die sich zu einer großen Karte kombinieren.
Praktisch macht das jedoch keinen Sinn, da überstehende flächige Elemente die Elemente des benachbarten Kartenausschnittes verdecken.
Wenn man die Länder-Files an den Grenzen sauber schneiden und dadurch die Überlagerung verhindern könnte, wäre es möglich, ein brauchbares Kartenpuzzle zusammenzubauen. Damit wäre mein Problem gelöst.

Doch leider sehe ich keine Möglichkeit, das in Composer integrierte Programm osmosis via Pfadangabe auf lokal gespeicherte Planetfiles zu verweisen. Obendrein ist Composer so programmiert, daß nicht entlang der Grenzen, sondern in Form von Rechtecken ausgeschnitten wird.

Nun hab ich 2 Tage im Internet gegraben, um herauszufinden, wie man osmosis installiert, zum Laufen bringt und dann per Kommandozeile (wie z.b. ajoessen sie auf seiner UserSeite hinterlegt hat) aus einem Planetfile einen Ausschnitt generiert. Aber ganz ehrlich. Ich steig da nicht durch. Auf den deutschen Seiten nicht und auf den englischen Seiten erst recht nicht.

Deshalb brauche ich jemanden, der mich an die sprichwörtliche Hand nimmt und Schritt für Schritt zeigt, wie ich genau mein Problem gelöst bekomme.

Eckdaten des Rechners:
Intel Core2Quad / CPU Q8400 2.66GHz 2.67GHz / 3,44GB RAM / 32Bit-System
Win7

In der Composer batch wurde Java 1500 Speicher zur Verfügung gestellt. (Bei 1600 startet Composer nicht.)
Der NodeCache kann bei der Verarbeitung von Bundesländern auf 2000 oder 3000 gesetzt werden.
Das Deutschlandfile “frißt” er nicht. Auch nicht mit der Einstellung 1000.
Kleinere Werte bis einschließlich 400 getestet führen auch nicht zum Erfolg.
Composer bleibt mit Java-Fehler “out of memory” stehen

Kleinere Werte machen vermutlich keinen Sinn. In der Composer-Hilfe steht der Hinweis, daß der NodeCache in 1000er-Schritten umzustellen ist.
Deshalb vermute ich, daß die Testläufe mit Werten unter 1000 ohnehin sinnlos waren. Da ich von den programmtechnischen Zusammenhängen keine Ahnung habe, kann ich das allerdings nicht beurteilen.

Nun suche ich nach zwei alternativen Wegen

  1. aus einem Europafile das **Grenzgebiet ** Eifel auszuschneiden.
    Ob die Rechnerleistung dafür ausreicht, weiß ich nicht.
    Wenn das nicht zu schaffen ist, wüßte ich trotzdem gerne, wie es geht.
  2. Kleine (Bundes-)Länderfiles an den Grenzen sauber abschneiden, damit sie sich ohne störende Überlagerungen zu einer großen Karte zusammensetzen lassen.

Das Zusammensetzen des Kartenpuzzles hab ich schon ausprobiert.
Das geht ziemlich fix. Nur die überlappenden Flächen stören gewaltig.
Daß man über die geschnittenen Grenzen nicht routen kann, ist mir egal.

Viele Grüße
und ein großes Dankeschön im Voraus an diejenigen, die sich meiner erbarmen :wink:
tippeltappel

Hallo tippeltappel,

wenn du die Kommandozeile nicht magst, kannst du für solche Zwecke auch die grafische Oberfläche von Osmosis verwenden: Osmembrane. Bin mir aber nicht sicher, ob du dir damit das Leben nicht schwerer machst als notwendig.
Das Ausschneiden eines bestimmten Gebiets oder das Zusammenfassen verschiedener regionalen Dateien lässt sich über die Kommandozeile relativ leicht erledigen.

Das Ausschneiden klappt am schnellsten mit pbftoosm. Allerdings brauchst du dafür zuerst ein Polygon für den gewünschten Bereich. Hast du eines? Notfalls tun es auch Längen- und Breitengrad, Falls dir ein rechtwinkliger Ausschnitt reicht.

Das Zusammenfügen mehrerer Regionen geht mit Osmosis, etwas schneller aber wahrscheinlich mit osmchange. Du kannst auch das neue osmconvert ausprobieren, sollte genauso gehen und ist vermutlich schneller, weil eine der Dateien auch das .pbf-Format haben darf. Wichtig ist dabei aber, dass die zusammenzufügenden Dateien keine Lücke lassen, am besten wärs, wenn sie sich leicht überlappen. Und sie sollten vom gleichen Tag sein, sonst kommt es zu Inkonsistenzen.

Für Osmosis kann ich nicht sprechen, da fehlt mir die Erfahrung, bei den anderen Programmen brauchst du ca. 500 MB Arbeitsspeicher, sollte also auch für einem kleinen Rechner kein Problem sein.

Danke Marqqs
Von “Kommandozeile nicht mögen” ist hier nicht die Rede.
Ich wüßte ja gerne, wie es funktioniert.
Daß sich das “relativ leicht erledigen” läßt, hab ich schon oft gelesen. Nur hilft mir das nicht weiter, wenn ich nicht weiß, wie es geht.

http://wiki.openstreetmap.org/wiki/DE:Pbftoosm
hab ich schon angeguckt
Das gibt es nichts für Windows. Das muß man irgendwie umstricken. Das kann und will ich nicht.

http://osmembrane.de/2011/02/14/first-release-of-osmembrane/
alles auf Englisch - da steig ich nicht durch

http://wiki.openstreetmap.org/wiki/Osmconvert
lese ich zum ersten Mal - leider auch alles auf Englisch

Zum Zusammenfügen brauche ich kein Programm. Wenn Osmosis die Extrakte sauber an den Grenzen abgeschnitten hat (am besten entlang der Grenzrelation) dann erledigt composer den Rest.

Aber vielen Dank für Deine Tipps.

Was für Dateien brauchst du denn am Ende genau?
Sind dir die Downloads von Geofabrik bekannt?
http://download.geofabrik.de/osm/europe/germany/
Die Grenzen sind aber sehr grob sollten aber nicht überlappen.
Ausschneiden mit Osmosis anhand eines Polygons ist umso aufwendiger je komplexer das Polygon ist.
Also die genaue Grenze von Deutschland dürfte denke ich mit der Hardware eine Qual sein wenn überhaupt möglich.

Hier http://wiki.openstreetmap.org/wiki/DE:Osmosis und http://wiki.openstreetmap.org/wiki/DE:Osmosis/Examples sind auch schöne Beispiele.

Hüst…

Schau mal ins wiki…such nach osmosis…geh auf die deutsche Seite… dann findest du das. Und da steht, wie du einen rechteckigen Bereich aus einem Extrakt ausschneidest. Das einzige, was du da nicht erfährst ist, wie man es mit pbf macht…read-pbf und write-pbf findet man nur in der detaillierten Hilfe, aber ich denke, das sollte auch keine Hürde sein.

Ich befürchte aber eher, dass du kein osmosis-Problem hast, sondern eher ein Composer-Problem :wink:

Ja, die Downloads von Geofabrik sind mir bekannt.
Die nutze ich schon “ewig”.

Doch, an den Grenzen gibt es jede Menge überlappen Überhänge. Hab ich im Eingangspost bereits erwähnt.
Genau diese Überhänge möchte ich weg schneiden. (siehe Punkt 2 meiner Wunschliste)

Auf der deutschen Seite von osmosis war ich schon.
Habe auch schon längst das latest zip auf den anderen Rechner gezogen, entzippt und die executable jars (od. so ähnlich) ausprobiert.

Nein, ich habe kein Composer-Problem.

Meine Zielsetzung siehe oben.
Punkt 1 ist mit meinem Rechner vermutlich nicht realisierbar. Zumindest nicht in einem überschaubaren Zeitlimit.

Punkt 2 ist für mich interessanter als Punkt 1
Ich möchte mit Osmosis die von geofabrik bereitgestellten Bundesländer-files sauber an der Grenze entlang abschneiden.
Alle anderen Bearbeitungsschritte stehen nicht zur Diskussion.
Denn was ich dann machen muß, um zu meiner Karte zu kommen, weiß ich und es funktioniert auch prima.
Das Kartenpuzzle ist schon längst fertig.
Einziger Wermutstropfen sind die nicht abgeschnittenen Flächen, die an den Grenzen der Länderfiles überstehen.
Also muß ich herausfinden, wie und mit welcher Befehlszeile osmosis “angeschmissen” werden muß, um diese Überhänge zu kappen.
Das Ergebnis packe ich in das Inputverzeichnis und schraub die Teile mit composer zusammen. Das ist dann ein Kinderspiel.

Hab ich mich jetzt verständlicher ausgedrückt?
… ? …

Gruß
tippeltappel

wie ist das Grenzgebiet für dich definiert? Rein die Ecke in Deutschland oder auch was aus den Nachbarländern?

gruss
walter

Du kennt meine webseite? da stehen die poly-files milimetergenau auf der jeweiligen Grenze für genau solche Sachen.
Gruss
Walter

Hallo Walter

Definition Grenzgebiet:
belgische Eifel,
NRW-Eifel,
RhPf-Eifel

Das läßt sich nur mit Europafile realisieren.

Meine anderen, nicht erwähnten Wunschgebiete sind in ähnlicher Form grenzüberschreitend.

Ein sehr netter Mensch stellt mir regelmäßig mein Wunschgebiet zusammen.
Nun möchte ich aber herausfinden, ob ich das mit dem reparierten Rechner vielleicht auch selbst hinbekomme.
Was der kann hab ich ja extra oben gepostet.

Gruß
tippeltappel

Nein, Deine Webseite kenne ich nicht.

Direkt mal suchen geh …

Danke!

EDIT
… Meinst Du diese Downloads?
http://wnordmann.homeunix.com/index.php/downloads/cat_view/40-openstreetmap

Da gibt es Grenzen zum Herunterladen.
Ich verstehe jetzt nicht, wie mich das jetzt weiter bringt.

Gruß
tippeltappel

Hi,

osmosis kennt die Möglichkeit, per
–bounding-polygon
ein Gebiet auszuschneiden.

(vgl. http://wiki.openstreetmap.org/wiki/Osmosis/Detailed_Usage#–bounding-polygon_.28–bp.29))

Und für die “Bounding-Polygon”-Datei nimm halt die von Walter unter
http://wnordmann.homeunix.com/index.php/downloads/cat_view/40-openstreetmap/41-grenzen/44-poly-files

:slight_smile:

Ciao,
Frank

tippeltappel,
nur für mich zum Verständnis, wofür brauchst du die EXAKT ausgeschnittenen Bundesländer? Brauchst du sie NUR deswegen so exakt, weil du sie hinterher nahtlos wieder zusammensetzen willst?

Das, was du oben gefragt hast, könntest du mit osmosis machen. allerdings nur für deutschland.

wenn das nix mit deiner eifel-frage zu tun hat, ist das ein gangbarer Weg.

daten von der geofabrik + randscharfes poly-file → randscharfes osm-file.

z.b geofabrik-file für nrw + mein poly-file vom nrw und du hast deine nrw-daten.

gruss
walter

Hi,

wenn die belgische Eifel als “Grenze” in OSM vorliegt, kann man sie per osm2poly.pl in eine poly-Datei wandeln und damit Belgien ausschneiden,
wenn sie als gpx vorliegt, dann is osm verwandelt und anschließend per osm2poly.pl in eine …
und wenn sie gar nicht vorliegt, einfach in josm einmalen, dann hat man ein osm-datei und aschließen per .

Ciao,
Frank

PS
Mmh, wo hatten wir den neulich das Thema? :frowning:

Danke, Walter.
Ja, in die “Richtung” möchte ich.
Nur leider habe ich nicht den blassesten Schimmer, wie ich das Schritt für Schritt umsetzen muß.

Schritt 1

  • Länderfile von der geofabrik herunter laden - ok fertig
  • Dein poly-file herunter laden - ok fertig / habe das “buffer”-Paket genommen, weil da osmosis drunter stand

Schritt 2
???

Der mit Hilfe von osmosis erstellte Ausschnitt aus dem Europafile ist eine andere Baustelle (siehe oben Wunsch 1). Wobei ich nicht weiß, ob mein Rechner eine dafür ausreichende Kapazität besitzt. Aber das schrieb ich ja schon.

@ kellerma
Mit JOSM die Grenze von Belgien herausfiltern,
dann in einer separaten Ebene isolieren
und schließlich als separate Datei abspeichern,
sollte kein Problem sein.

Aber das
http://svn.openstreetmap.org/applications/utils/osm-extract/polygons/osm2poly.pl
sind bömische Dörfer für mich.

Viele Grüße
tippeltappel

du brauchst für deine kantenscharfe aktion genau die anderen poly-files aus dem base-directory.

osmosis --rb hessen.osm.pbf --bp ‘file=…/locator/poly/base/al4/Hessen.poly’ --wx hessen.osm

achtung doppelte minus-zeichen. ob das so für windows geht, kann ich dir nicht sagen.
wenn das -endlich- geklappt hat, kann man noch über andere optionen nachdenken.

gruss
walter

Hmmmmmmm - Die Seite habe ich mir angeguckt.
Das Prinzip habe ich verstanden.
Nur erkenne ich im Moment den Einstieg nicht, weil ich nicht dahinter komme, was ich machen muß, damit osmosis auf meinem Rechner startet.
Ich klicke die batch-Datei an.
Dann öffnet sich dieses schwarze Fenster (Konsole ?).
Aber ehe ich richtig gucken kann, was drin steht, schließt es sich auch schon wieder.

Was muß ich tun, damit das Fenster offen bleibt und ich einen Befehl eingeben kann?
Denn das ist ja wohl der nächste Schritt.
Oder?

oh mann,

solangsam rückst du ja endlich mit der Wahrheit raus:

alle unsere Tips gingen davon aus, dass du zumindest osmosis aufrufen kannst - und nun das :frowning:
da musste erst mal durch und ich kann da nix machen.

Gruss
walter

Die Begründung hab ich eigentlich schon beschrieben.
Aber ich erkläre es mal anders herum.

Wenn ich ein einzelnes Bundesland-Planetfile als lokale Datei mit Composer aufrufe, sind kleine Bundesländer wie z.B. Sachsen in wenigen Minuten durchgejagt.
Wenn ich im Composer

  • für jedes Bundesland eine Region definiere,
  • dann einen Job erstelle, der die verschiedenen Regionen=Bundesländer zusammenholt (nicht wirklich verbindet, sondern nur wie die Folien einer Overheadprojektion übereinander legt)
  • in den Renderregeln den Hintergrund deaktiviere, damit er transparent ist
    dann erhalte ich als Ergebnis eine zusammenhängende Karte.

Da kein komplettes Deutschlandfile durch den Rechner gezogen werden muß, sondern die Berechnung der verschiedenen Länderkarten zunächst separat erfolgt und somit der Speicher immer wieder frei wird, komme ich ohne “out of memory” durch die Geschichte durch. Wenn alle Daten in die passenden Häppchen zerlegt wurden, baut mkmap am Ende eine zusammenhängende Karte daraus. Wenn sich die Karte auf dem Bildschirm aufbaut, kann man beobachten, wie die überlappenden Elemente übereinander gelegt werden und z.B. ungeschnittene, überhängende Flächen sich über die Straßen des Nachbarlandes legen.

Damit das nicht passiert, möchte ich einen exakten Schnitt an den Grenzen entlang haben.

Viele Grüße
tt

achja, und als Input-File kannst Du vielleicht das DE +50km Extrakt nehmen. Dann sparst Du Dir das hantieren mit der Europa-Datei bzw das mehrfaches Ausschneiden und wieder zusammen setzen