DE:Osmosis/Examples
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 stattdessenbzcat 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:
- Osmosis polygon filter file format (de)
- Aufwendiges Beispiel für Polygon-Extraktion im Geofabrik-Blog (en)
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.