最新記事
カテゴリ
最新記事
カテゴリ
2015-01-03 時点で,ここに書いてある情報は「実験中」です.
http://wiki.openstreetmap.org/wiki/JA:Planet.osm に説明があります通り,planet.osm とは,OpenStreetMap データベースのスナップショットです.編集履歴はありませんが,レンダリングの元になるデータの事と言って良いと思います.
ここでは,planet.osm から,日本のエリアだけを抽出し,またネットワークやマシン負荷がなるべく低い方法でデータを更新する方法を記載します.
一番手っ取り早いのは,http://download.geofabrik.de/ から,日本のOSMデータをダウンロードする事です.
しかし,日本のOSMデータは,2015年1月3日現在で,.osm.bz2 形式のもので約1.4GByteあります..bpf 形式でも約 930MByte あります. これを毎回ダウンロードすると時間がかかりますし,変更の無い部分も毎回ダウンロードする事になるので,できるだけ効率の良い方法で日本の planet.osm が出来ないかを実験します.
一言で “planet.osm” と言っても,複数のファイル形式があります.
BPF 形式のファイルは,非圧縮状態でも .osm.bz2 よりも小さいファイルになるようですので,ここでは BPF 形式をメインに扱います.
初回では,以下のファイルをダウンロードします.
私のネットワーク環境は 100Mbps で,上記全てをダウンロードするのに概ね4時間ほどかかりました.
必要なファイル全てを Linux マシンにダウンロード出来たら,以下のコマンドを実行します.
$ osmconvert -B=japan.poly -o=planet-japan-latest.osm.pbf planet-latest.osm.pbf
上記のコマンドを実行することで,全世界のデータが含まれている planet-latest.osm.pbf から,japan.poly で指定されている範囲のみを抽出して,planet-japan-latest.osm.pbf に保存します.
私が実験した時は,planet-latest.osm.pbf は約 27GByte のサイズですが,日本部分だけを抽出した planet-japan-latest.osm.pbf は約 900MByte です.この処理中の osmconvert の使用RAMサイズは,VSZ で概ね 1.7GByte くらい使っていました.
以降は,planet-japan-latest.osm.pbf を主に扱います.
osmconvert では,単にデータの抽出を行うのみで,OSMデータは既に最新のものがあるはずです.
OSMデータを最新へ更新するには,osmupdate コマンドを使います.
$ osmupdate -B=japan.poly -v planet-japan-latest.osm.pbf planet-japan-new.osm.pbf
上記のコマンドを実行すると,osmupdate が http://planet.osm.org/ にアクセスして,changesets をダウンロードして最新の情報へ更新し,planet-japan-new.osm.pbf に保存します.
osmupdate の詳しい利用方法は,http://wiki.openstreetmap.org/wiki/Osmupdate にあります.
BPF 形式の planet.osm はバイナリですので,ちょっとした確認には使いにくいのですが,osmconvert を使用するとXML形式に変換できます.
$ osmconvert planet-japan-latest.osm.pbf | more
osmconvert は,標準ではXML形式で標準出力に変換データを出力するので,more コマンドなどで結果を確認できます.