osmosis - ein Buch mit sieben Siegeln

Als alter UNIX user hab ich mit dem Window cmd Fenster auch so meine Schwierigkeiten, ich nutze osmosis wie folgt.
In einem Batch File (das noch diverses anderes macht) steht drin:
rem ==========================
call …/tools/osmosis-0.35/bin/osmosis.bat --read-xml file=“xx.osm” --bounding-polygon file=“boundary_xx.poly” --write-xml file=“xx.osm”

pause
rem ==========================
Das schneidet aus xx.osm genau den durch boundary_xx.poly gegebenen Bereich aus und speichert in die Daten in xx.osm

pause am Ende von Batch Files ist immer gut, sonst verschwindet das schwarze Fenster im schwarzen Windows Loch, ohne dass man etwaige Fehlermeldungen lesen kann.

osmosis-0.35/bin/osmosis.bat ist original wie es mit osmosis-0.35 kam.

Danke! Ich hab einfach etwas länger gebraucht. :slight_smile:

Das mit den “exakt ausgeschnittenen” und dann wieder zusammengeklebten Regionen ist trotzdem nicht so ganz ideal. Was, wenn z.B. ein Waldgebiet über die Grenze geht? Wenn man wirklich exakt schneiden will, muss man direkt an den beiden Schnittpunkten zwischen Waldpolygon und Grenze neue Punkte setzen und die dann ins Waldpolygon einbauen. Anderenfalls gibt es entweder eine kleine Überschneidung oder eine Lücke zwischen den unvollständigen Waldgebieten der verschiedenen Bundesländer.

Ich kenne kein Extrahierprogramm, dass hier neue Punkte setzt. Das heißt, du wirst letztlich mit der Überlappung leben müssen, ja sogar hoffen müssen, dass es Überlappungen gibt, dann ohne schauts noch seltsamer aus.

Thema Eifel

Wenigstens dabei kann ich dir helfen. Hab mich grad nach einer erstklassigen Anleitung (von User PA94) dran gemacht und eine Windows-Exe erstellt:
http://wiki.openstreetmap.org/wiki/DE:Pbftoosm

Was dir nun fehlt, ist ein Polygon der Eifel. Oder du probierst es per Borderbox. Näheres hier:
http://wiki.openstreetmap.org/wiki/DE:Pbftoosm#Anwenden_von_geografischen_Grenzen

Sorry Walter
Ich hab so viel rumgesucht und rumprobiert …

Mit Screenshot hab ich mal das aufblitzende Fenster festgehalten:

Nein, das klappt nicht.
Mein Rechner schluckt das Deutschlandfile nicht.

Also das ist der Inhalt der Batch-Datei, die das Fenster wegblitzen läßt.
Und da muß irgendwo
pause
eingefügt werden?

@ECHO OFF

REM This is an equivalent Windows batch file to complement the unix shell script
REM Corresponding lines from the shell script are printed before the matching batch file commands

REM # Config files can define several variables used throughout this script.
REM # JAVACMD - The java command to launch osmosis.
REM # JAVACMD_OPTIONS - The options to append to the java command, typically used to modify jvm settings such as max memory.
REM # OSMOSIS_OPTIONS - The options to apply to all osmosis invocations, typically used to add plugins or make quiet operation the default.

REM if [ -f /etc/osmosis ] ; then
REM . /etc/osmosis
REM fi
IF EXIST “%ALLUSERSPROFILE%\osmosis.bat” CALL “%ALLUSERSPROFILE%\osmosis.bat”

REM if [ -f “$HOME/.osmosis” ] ; then
REM . “$HOME/.osmosis”
REM fi
IF EXIST “%USERPROFILE%\osmosis.bat” CALL “%USERPROFILE%\osmosis.bat”

REM if [ -z “$JAVACMD” ] ; then
REM # No JAVACMD provided in osmosis config files, therefore default to java
REM JAVACMD=java
REM fi
IF “%JAVACMD%”==“” set JAVACMD=java

REM Set “SAVEDIR” to the current directory
set SAVEDIR=%CD%
set MYAPP_HOME=%~dp0…
REM Now make the MYAPP_HOME path absolute
cd /D %MYAPP_HOME%
set MYAPP_HOME=%CD%
REM Change back to the original directory
cd /D %SAVEDIR%

set MAINCLASS=org.codehaus.classworlds.Launcher
set PLEXUS_CP=%MYAPP_HOME%\lib\default\plexus-classworlds-2.2.2.jar
SET EXEC=%JAVACMD% %JAVACMD_OPTIONS% -cp “%PLEXUS_CP%” -Dapp.home=“%MYAPP_HOME%” -Dclassworlds.conf=“%MYAPP_HOME%\config\plexus.conf” %MAINCLASS% %OSMOSIS_OPTIONS% %*

%EXEC%

<<<<<<<<<<<<<<<<<<<<<<<<<<<

Hi,

ganz am Schluß, noch hinter
%EXEC%

Ciao,
Frank

Das bleibt abzuwarten und auszuprobieren. Wenn unter einem riesigen Waldpolygon sämtliche Wege verschwinden, sieht das nicht nur noch seltsamer aus, sondern die Karte ist völlig unbrauchbar.

Prima, habe ich gerade herunter geladen.
Wenn ich damit klar komme, kann ich dann zumindest mal die pbf-Dateien entpacken.
Ob ich damit weiter komme, wird sich dann zeigen.

Das setzt doch dann wieder voraus, daß ich ein Europafile zerschneide. Oder?
Hmmmm - - -
Probiere ich - - - hab allerdings im Moment noch keine Idee wie.
Wenn das mein Rechner packt, hab ich ja zumindest mal die Möglichkeit, mir rechteckige Teile zu schneiden.
Und wenn ich auf diese Weise ein Europafile zerlegen kann …

W E N N !
Das ist halt noch die Frage, ob das klappt.

Also, wenn das klappt, kommen dann auch kombinierbare Teilstücke heraus.

probieren geh …

Danke!

Prima
Hat funktioniert.
Jetzt “steht” das Fenster und sagt:

drücken sie eine beliebige Taste

So und jetzt?

Muß ich da jetzt einen Befehl eingeben?

Könnte ich einen benötigten Befehl für eine bestimmte Aufgabe auch direkt in die batch-Datei eingeben?
Dann speicher ich die batch-Datei (ist ja nichts anderes als eine Stapelverarbeitungsdatei oder? ) unter neuem Namen ab und kann die dann für den bestimmten Zweck immer wieder benutzten.

Hi,

in
“%USERPROFILE%\osmosis.bat”
könntest Du Deine Einstellungen als
set OSMOSIS_OPTIONS=
hinterlegen (vermutlich :wink:

Ciao,
Frank

Muss klappen, und wie schon geschrieben, keine Angst, pbftoosm braucht recht wenig Speicherplatz - und zwar unabhängig davon, wie groß die zu zerlegende Datei ist.

Nochmal zu Osmosis: Das ist DAS Standard-Programm schlechthin. Es kann fast alles, was man für OSM-Datenmanipulationen braucht. Für so simple Sachen wie PBF->OSM oder das Ausschneiden wäre es aber nicht meine erste Wahl, es ist vergleichsweise langsam. Aber - das ist sicher auch eine Glaubensfrage. :slight_smile:

Ach ja, was mir grad einfällt, falls du pbftoosm nutzt, denk an den Parameter --drop-brokenrefs, sonst kommt der Composer hinterher ins Schleudern.
http://wiki.openstreetmap.org/wiki/DE:Pbftoosm#Decodieren_von_.pbf-Dateien

Dein Bat- Code sieht meinem osmosis.bat ziemlich ähnlich, bei mir sind noch ein paar mehr Kommentare drin.
Du musst diesen Batch Code mit Parametern versorgen, wie z.B.

call …/tools/osmosis-0.35/bin/osmosis.bat --read-xml file=“xx.osm” --bounding-polygon file=“boundary_xx.poly” --write-xml file=“xx.osm”
pause

Schreibe diese beiden Zeilen ( mit den richtigen Übergabeparametern und Speicherort von osmosis.bat ) in ein File mybat.bat. Nach Doppelklick geht ein schwarzes Fenster auf, osmosis läuft
und Du bekommst zumindest Fehlermeldungen.

@ Marqqs
Das pbftoosm “blitzt” auch weg.
Warum?

  1. Herunter geladen
  2. auf den anderen Rechner geschoben
  3. Doppelklick auf pbftoosm

“blitz”

Hinter der Datei steht im explorer “Anwendung”.
Daher denke ich jetzt mal nicht, daß ich noch entpacken muß.

Aber vielleicht darf ich die Datei nicht aklicken, sondern muß auf “ausführen” gehen und dort eine Kommandozeile eintragen wie

./pbftoosm < norway.osm.pbf > norway.osm

Das heißt, ich browse von diesem Eingabefenster aus zur pbftoosm-Datei, schreibe dann noch den Befehl < xyz.osm.pbf > xyz.osm dahinter …

mach ich jetzt mal …

Hmmmmmm - - - es “blitzt” - ist nun eine Datei berechnet worden?
Ich schmeiß den Suchbefehl an …

… nichts zu finden.

Und jetzt?

Unter “Alle Programme” / “Zubehör” findest Due die Eingabeaufforderung. Da geht ein schwarzes Fenster auf, wo Du alle Befehle eintippen kannst.
Also z:B. ./pbftoosm < norway.osm.pbf > norway.osm
Geht natürlich nur, wenn Du mit cd ( change directory) zu richtigen Verzeichnis gegangen bist.

Hmmmmm - - - Posting 29 bis 31 krieg ich jetzt nicht sortiert - - -
Also mal langsam.

Mit pbftoosm könnte ich eventuell ein großes File zerlegen.
Wie das funktioniert, probiere ich aber erst einmal an einem kleinen, damit es nicht so lange dauert.

Außerdem kann ich pbf-Dateien in osm-Dateien wandeln, damit Composer daraus eine Karte bauen kann.

Schritt 1 pbf in osm wandeln klappt nicht, weil ich beim Aufruf der Anwendung pbftoosm irgendetwas falsch mache.

WAS?

Ok
Eingabeaufforderung gefunden.
Oje!
Und jetzt die uralten DOS-Befehle aus den Tiefen des Gedächtnis vor kramen …
ich probier das jetzt mal …

Hallo nochmal. :slight_smile:
Richtig, Kommandozeile.

Mit dem ./ kann Windows nichts anfangen, also bitte weglassen. Nehmen wir mal an, dass du das Programm pbftoosm.exe ins gleiche Verzeichnis geschoben hast, in dem auch deine Daten sind. Dann könnte der Befehl z.B. so aussehen:

pbftoosm.exe -i=europe.osm.pbf -b=5.7,49.6,7.7,51.0 --drop-brokenrefs >eifel.osm

Vorher natürlich, wie fx99 schon geschrieben hat, mit dem Kommando cd in dieses Verzeichnis wechseln, also z.B.:

cd \meine_daten\osm-zeug

Vorsicht:
Habe gerade mal versucht, mit pbftoosm meine Heimatgemeinde aus baden-wuerttemberg.osm.pbf zu schneiden.
Das Poly File verwende ich seit Monaten mit osmosis.
pbftoosm läuft ohne Fehlermeldung durch, das Ergbebnis, angeschaut mit JOSM ist katastrophal:
die Hälfe fehlt, der Rest ist geteilt und gegeneinander verschoben.

Vielen Dank Euch!
In der Eingabeaufforderung hab ich den Zugriff nur im Laufwerk C geschafft.
Sobald ich versuchte in Laufwerk E zu wechseln sprang die Kommandozeile immer wieder nach C zurück oder spuckte den Hinweis aus … nicht gefunden.

Also hab ich das Verzeichnis in C:.….… eingerichtet und dort dann eine einfache Umwandlung erzeugen können

Wäre mir aber schon ganz lieb, wenn ich in mein “Kartenlaufwerk” wechseln könnte.
Wie sieht die Eingabe da genau aus. Ich hab’s anscheinend vergessen.

Den Extrakt-Befehl muß ich mir für Morgen verwahren.
Muß erst mal ein Europafile herunter laden.
Das alte hab ich kürzlich von der Platte geschmissen.

Die gesamte Befehlskette lautet dann:
C:\ cd E:\OSM\pbf2osm pbftoosm.exe -i=europe.osm.pbf -b=5.7,49.6,7.7,51.0 --drop-brokenrefs >eifel.osm

Ist das so richtig? Oder fehlt da noch ein Schrägstrich?
C:\ cd E:\OSM\pbf2osm\pbftoosm.exe -i=europe.osm.pbf -b=5.7,49.6,7.7,51.0 --drop-brokenrefs >eifel.osm

Oder trenne ich Laufwerkswechsel, Verzeichniswechsel und Befehlseingabe?

@ fx99
Die soeben erzeugte Probeumwandlung <xyz.osm.pbf> xyz.osm
ergab eine Datei mit 0 KB
Mit anderen Worten: Genau derselbe Murks!

@fx99
Welche Version?
pbftoosm 0.5
oder
pbftoosm 0.7

Danke.

Ciao,
Frank