DE:Osmosis/Examples

From OpenStreetMap Wiki
Jump to navigation Jump to search

Auf dieser Seite enthält einige komplziertere Beispiele für die Benutzung von Osmosis. Einfache Beispiele finden sich auf Osmosis (de). Eine vollständige Dokumentation findet sich auf Osmosis/Detailed Usage (en).

Eine OSM Datei in mehrere Rechtecke (Bounding Boxes) aufteilen

Die folgende Kommandozeile teilt Slovenien in vier Quadranten an den Achsen 15° öL und 46° nB:

osmosis 
  --read-xml SloveniaGarmin.osm --tee 4
  --bounding-box left=15 top=46 --write-xml SloveniaGarminSE.osm
  --bounding-box left=15 bottom=46 --write-xml SloveniaGarminNE.osm
  --bounding-box right=15 top=46 --write-xml SloveniaGarminSW.osm
  --bounding-box right=15 bottom=46 --write-xml SloveniaGarminNW.osm

(Achtung: Die Reihenfolge der Operationen ist wichtig. Diese Beispiel funktioniert mit Osmosis Version 0.29)

Wenn Du mehr als 20 Rechtecke brauchst, solltest Du stattdessen bboxSplit benutzen. Es ist viel schneller und braucht viel weniger Speicher, wenn man auf dem vollständigen Planet File arbeitet.

Viele Polygone extrahieren

Der folgende Befehl extrahiert 16 einzelne bz2-Dateien für die einzelnen Bundesländer.

osmosis \
  --rx full/planet.osm.bz2 \
  --tee 16 \
  --bp file=polygons/europe/germany/baden-wuerttemberg.poly \
  --wx baden-wuerttemberg.osm.bz2 \
  --bp file=polygons/europe/germany/bayern.poly \
  --wx bayern.osm.bz2 \
  --bp file=polygons/europe/germany/berlin.poly \
  --wx berlin.osm.bz2 \
  --bp file=polygons/europe/germany/brandenburg.poly \
  --wx brandenburg.osm.bz2 \
  --bp file=polygons/europe/germany/bremen.poly \
  --wx bremen.osm.bz2 \
  --bp file=polygons/europe/germany/hamburg.poly \
  --wx hamburg.osm.bz2 \
  --bp file=polygons/europe/germany/hessen.poly \
  --wx hessen.osm.bz2 \
  --bp file=polygons/europe/germany/mecklenburg-vorpommern.poly \
  --wx mecklenburg-vorpommern.osm.bz2 \
  --bp file=polygons/europe/germany/niedersachsen.poly \
  --wx niedersachsen.osm.bz2 \
  --bp file=polygons/europe/germany/nordrhein-westfalen.poly \
  --wx nordrhein-westfalen.osm.bz2 \
  --bp file=polygons/europe/germany/rheinland-pfalz.poly \
  --wx rheinland-pfalz.osm.bz2 \
  --bp file=polygons/europe/germany/saarland.poly \
  --wx saarland.osm.bz2 \
  --bp file=polygons/europe/germany/sachsen-anhalt.poly \
  --wx sachsen-anhalt.osm.bz2 \
  --bp file=polygons/europe/germany/sachsen.poly \
  --wx sachsen.osm.bz2 \
  --bp file=polygons/europe/germany/schleswig-holstein.poly \
  --wx schleswig-holstein.osm.bz2 \
  --bp file=polygons/europe/germany/thueringen.poly \
  --wx thueringen.osm.bz2

Hinweise:

  • Der Befehl muss entweder als eine einzige Zeile geschrieben werden, oder inklusive der Backslashes kopiert werden.
  • Wenn osmosis --rx full/planet.osm.bz2 des obenstehenden Beispiels bei dir nicht funktioniert, benutze stattdessen bzcat full/planet.osm.bz2 |osmosis --rx /dev/stdin.
  • 16 Polygone zu extrahieren braucht ungefähr 30 % mehr Zeit als für ein einzelnes. Eine Verbesserung der Geschwindigkeit kann durch folgendes erreichen werden:
    • keine .bz2-Komprimierung verwenden
    • nicht den ganzen Planeten, sondern ein Europa- oder Deutschland-Extrakt als Grundlage nehmen

Siehe auch:

Ein einzelnes Polygon extrahieren

Eine schnellere Alternative für die Extraktion eines einzelnen Polygons ist das Programm osmconvert.

./osmconvert europe.osm -B=hamburg.poly -o=hamburg.osm
./osmconvert europe.pbf -B=hamburg.poly -o=hamburg.pbf
bzcat europe.osm.bz2 | ./osmconvert - -B=hamburg.poly |bzip2 >hamburg.osm.bz2
./osmconvert europe.osm.gz -B=hamburg.poly |gzip -1 >hamburg.osm.gz

Hinweis: Die Kompression mit gzip -1 ist ungefähr zehn mal schneller als mit bzip2. Allerdings sind die komprimierten Dateien hinterher 50 % größer.