JA:Osmosis/Examples

From OpenStreetMap Wiki
Jump to navigation Jump to search

このページでは、Omsosisのかなりひねくれた使い方の例について紹介します。基本的な使い方についてはOsmosis#Example Usageを参照してください。様々なオプションに関するリファレンス文書については、Osmosis/Detailed Usageを参照してください。

その他の例

OSMファイルを複数の矩形領域に分割する

以下のコマンドラインでは、スロバニアのOSMファイルを、lat=15, long=46周辺で4つの四分円に分割します。

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 

(注意: 操作の順番は重要です。このサンプルは、Osmosis バージョン 0.29で動作します)

20以上の矩形範囲に分割する場合、このスクリプトではなくbboxSplitを利用してください。全世界のPlanetファイルを扱う際にも、より短時間に、軽量のメモリで動作します。

Breaking out a large number of polygons

以下のコマンドラインでは、German Federal Statesの16個の別々のbz2ファイルを取り扱います。(バックスラッシュがない場合、すべてのコマンドを1行につなげてください。あるいは、バックスラッシュを含み、空白を除いた形でコピー/ペーストしてください)

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

"osmosis --rx full/planet-071128.osm.bz2"の部分がうまく動作しない場合は、"bzcat full/planet-071128.osm.bz2 |osmosis --rx /dev/stdin"を代わりに使用してください。

16個のポリゴンを分割するには、1つのポリゴンを分割するのに比べて30%ほど多く時間がかかります。

パフォーマンスを改善するには、以下の方法があります。

  • .bz2を使わない
  • 最初にヨーロッパやドイツの矩形範囲を切り出して作業を行う

Osmosis/Polygon_Filter_File_Formatも参照してください。

ポリゴンデータのその他の分割例については this Geofabrik blog entryも参照してください。

1つのポリゴンだけを分割

Linuxユーザであれば、このタスクを実行するにあたって、非常に高速でカンタンなやり方があります。 Osmosisのかわりに、osmchangeを使います。例:

cat europe.osm | ./osmchange -B=hamburg.poly >hamburg.osm
bzcat europe.osm.bz2 | ./osmchange -B=hamburg.poly |bzip2 >hamburg.osm.bz2
gunzip europe.osm.gz | ./osmchange -B=hamburg.poly |gzip -1 >hamburg.osm.gz

注意:bzip2で圧縮するよりも、gzip -lで圧縮したほうがはるかに高速で処理が行われます。圧縮後のファイル容量はbzip2に比べて 50%ほど大きくなりますが、処理時間は10倍ほど高速になります。

Alternatives

.pdfファイルから地域データを抽出する処理で最も高速なツールはpbftoosmosmconvertと思われます。どちらのツールも、LinuxとWindows環境で動作可能です。