From OpenStreetMap Wiki
Jump to: navigation, search
Available languages — Osmosis/Examples
Afrikaans Alemannisch aragonés asturianu azərbaycanca Bahasa Indonesia Bahasa Melayu Bân-lâm-gú Basa Jawa Baso Minangkabau bosanski brezhoneg català čeština dansk Deutsch eesti English español Esperanto estremeñu euskara français Frysk Gaeilge Gàidhlig galego Hausa hrvatski Igbo interlingua Interlingue isiXhosa isiZulu íslenska italiano Kiswahili Kreyòl ayisyen kréyòl gwadloupéyen kurdî latviešu Lëtzebuergesch lietuvių magyar Malagasy Malti Nederlands Nedersaksies norsk norsk nynorsk occitan Oromoo oʻzbekcha/ўзбекча Plattdüütsch polski português română shqip slovenčina slovenščina Soomaaliga suomi svenska Tiếng Việt Türkçe Vahcuengh vèneto Wolof Yorùbá Zazaki српски / srpski беларуская български қазақша македонски монгол русский тоҷикӣ українська Ελληνικά Հայերեն ქართული नेपाली मराठी हिन्दी অসমীয়া বাংলা ਪੰਜਾਬੀ ગુજરાતી ଓଡ଼ିଆ தமிழ் తెలుగు ಕನ್ನಡ മലയാളം සිංහල ไทย မြန်မာဘာသာ ລາວ ភាសាខ្មែរ ⵜⴰⵎⴰⵣⵉⵖⵜ አማርኛ 한국어 日本語 中文(简体)‎ 吴语 粵語 中文(繁體)‎ ייִדיש עברית اردو العربية پښتو سنڌي فارسی ދިވެހިބަސް

This page gives some more complex examples. See Osmosis#Example usage for more examples. For reference documentation of the various options see Osmosis/Detailed Usage

Misc. examples

Extract administrative Boundaries from a PBF Extract

The following will create an extract that only consists of administrative boundaries within a specifieed polygon.

osmosis --read-pbf file=ohio.osm.pbf --bounding-polygon file=input.poly --tf accept-ways boundary=administrative --used-node --write-xml output.osm

Breaking OSM file into several bounding boxes

The following command line breaks Slovenia OSM into four "quadrants" around lat=15, long=46 axis:

  --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 

(NOTE: the order of operations is important. This sample works for Osmosis version 0.29)

If you have more than 20 bboxes, you should use bboxSplit instead. It is much faster an uses a lot less memory when working with the complete planet.

Breaking out a large number of polygons

The following command line breaks out 16 individual bz2 files for the German Federal States (all to be written on one line without the backslashes, or copy/pasted including the backslashes and no trailing spaces):

osmosis \
  --rx full/planet-071128.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

If the part "osmosis --rx full/planet-071128.osm.bz2" in the above example doesn't work for you, use "bzcat full/planet-071128.osm.bz2 |osmosis --rx /dev/stdin" instead of it.

Splitting out 16 polygons takes about 30% more time than splitting out only one.

Performance can be improved by

  • not using .bz2
  • first cutting out an Europe or Germany bbox and operating on that

See also: Osmosis/Polygon_Filter_File_Format

See this Geofabrik blog entry for an extensive example of polygon splitting.

Breaking out just one polygon

For Linux and Windows users, a cheap and really fast method for this specific task would be to use osmconvert instead of Osmosis. Some examples:

./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

Note: It is much faster to compress files with gzip -1 than with bzip2. Although the compressed file will be about 50 % larger, the compression process will be up to 10 times faster.