日本全国のOSMデータをGeoPackageに変換

1 min読了の目安(約1700字IDEAアイデア記事

はじめに

やってみた系備忘録として。

参考にしたのはこちら。

https://blog.chizuwota.net/2016/12/geopackage-osm.html

4年前(2016/12)の記事ですがとてもいい内容ですね。
私は日本のデータを変換してみます。

データ準備

OSMのデータをダウンロードします。

エリアごとのデータは
OpenStreetMap Data Extractsからダウンロードできるようです。
日本は、Asiaを辿ってJapanをpbf形式でダウンロードしました。

japan-latest.osm.pbfが1.46GiBでした。

変換

GDALが動く環境で変換を行います。

私はQGIS付属のOSGeo4W Shellを起動して
対象ディレクトリに移動してからogr2ogrを実行

https://gdal.org/programs/ogr2ogr.html
D:\tmp\geo>ogr2ogr -progress -f GPKG japan_osm.gpkg japan-latest.osm.pbf
0...10...20...30...40...50...60...70...80...90...100 - done.
Warning 1: organizePolygons() received an unexpected geometry.  Either a polygon with interior rings, or a polygon with less than 4 points, or a non-Polygon geometry.  Return arguments as a collection.
Warning 1: organizePolygons() received an unexpected geometry.  Either a polygon with interior rings, or a polygon with less than 4 points, or a non-Polygon geometry.  Return arguments as a collection.
Warning 1: organizePolygons() received an unexpected geometry.  Either a polygon with interior rings, or a polygon with less than 4 points, or a non-Polygon geometry.  Return arguments as a collection.

プログレスが「100 - done.」になってからもしばらく帰ってこなくて不安になりましたが
しばらくほっておいたら(20分くらい?)戻ってきました。

ウォーニングはポリゴンのリングにポリゴンとして成り立っていないのがあるよって言ってますね。
日本全域で不正なデータが3つだけってのは相当に優秀だなぁ。

成果データ

データサイズは
変換元のjapan-latest.osm.pbfが1.46GiBだったのが
変換後のjapan_osm.gpkgが9.1GiBになりました。

カラム数は

table row
lines 9,312,966
multilinestrings 14,061
multipolygons 16,088,562
other_relations 40,056
points 2,176,079

QGISに突っ込んでもサクサク動いています。

(広範囲だと流石に読み込みに時間がかかります)

以上