JA:Osmosis/Examples
このページでは、Omsosisのかなりひねくれた使い方の例について紹介します。基本的な使い方についてはOsmosis#Example Usageを参照してください。様々なオプションに関するリファレンス文書については、Osmosis/Detailed Usageを参照してください。
その他の例
- 頻繁な差分適用を利用したローカルデータベースのセットアップ
- Tutorial: A Self-Updating Local OpenStreetMap Extract - 現実世界の利用例に即した、osmosisの読み込み、書き込み、フィルタリング、複写方法
- User:Firefishy/za-rail-script - 基本的なスクリプト形式によるデータベース複写のセットアップ
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ファイルから地域データを抽出する処理で最も高速なツールはpbftoosmとosmconvertと思われます。どちらのツールも、LinuxとWindows環境で動作可能です。