OGR2OGRとQGISを使ったShapefile変換
今日は、OpenSourceのツールであるogr2ogrとQGISを使用して、さまざまな地理データ形式をShapefileに変換する方法をご紹介します。
背景:Shapefileの現実
長年地図(データ)屋をやっていますが、Shapefileは今もお客様からニーズがあります。ご存知の方も多いかと思いますが、ファイル名の制限やジオメトリの制約など、いろいろとややこしい縛りがあります。しかし、実際の現場では「やっぱりShapefileが欲しい!」という声が絶えません。クラウドフレンドリーだとかAPIだとか、新しい便利な利用手段が増える中、慣れ親しんだShapefileから逃れられない方がいるのも事実ということのようです。
そこで、時に役立つのがogr2ogrとQGISです。これらのツールを使えば、PBFやFGDBなどのデータでもShapefileに簡単に変換することができます。もちろん、変換が完璧になるわけではないので注意が必要ですが、これを知っておくと非常に便利です。
1. ogr2ogrの紹介
ogr2ogrとは?
ogr2ogrは、GDAL(Geospatial Data Abstraction Library)の一部であり、さまざまな地理データ形式を相互に変換するためのツールです。コマンドラインベースで動作し、数多くのデータフォーマットをサポートしています。例えば、Shapefile、GeoJSON、KML、CSV、PBFなど、幅広い形式からShapefileへの変換が可能です。
ogr2ogrのインストール
Mac
-
Homebrewを使用したインストール:
brew install gdal -
確認:
インストールが完了したら、以下のコマンドで確認します:ogr2ogr --version
Windows
-
OSGeo4Wを使用したインストール:
- OSGeo4Wの公式サイトからインストーラーをダウンロードします。
- インストーラーを実行し、「Express Desktop Install」を選択します。
- GDALを選択してインストールします。
-
確認:
コマンドプロンプトを開いて以下のコマンドを実行します:ogr2ogr --version
ogr2ogrを使った変換例
ogr2ogrを使ったShapefileへの変換は以下のようなコマンドで行います:
ogr2ogr -f "ESRI Shapefile" output.shp input.geojson
このコマンドで、GeoJSON形式のデータをShapefileに変換できます。他にも、KMLやCSVからの変換も可能です。
詳しくはGDALのogr2ogrドキュメンテーションなどもご参考ください。
例:GeofabrikのOSM PBFデータをShapefileに変換する
OSMとは: OpenStreetMap(OSM)は、世界中の地理情報を自由に利用できるように提供するプロジェクトです。OSMデータは、地図作成や解析に広く利用されています。Geofabrikでは世界中の地図データを入手することができます。
-
GeofabrikからPBFデータをダウンロード:
まず、Geofabrikのダウンロードページから必要なOSM PBFファイルをダウンロードします。試しにKantoのデータを取得してみます。 -
PBFファイルをShapefileに変換:
ダウンロードしたPBFファイルを使用して、以下のコマンドでShapefileに変換します:ogr2ogr -f "ESRI Shapefile" output.shp kanto-251209.osm.pbf -nlt None-nlt Noneオプションは、ジオメトリタイプのエラーを回避するために必要です。ディレクトリ内でこのようなファイルができました。
出来上がったShapefileをQGISで比較してみると以下のようになり、無事変換できていそうです。
2. QGISの紹介
QGISとは?
QGISは、オープンソースのGIS(地理情報システム)ソフトウェアで、ユーザーフレンドリーなインターフェースを持ちながら、強力な機能を備えています。Shapefileの管理や変換に加え、データの視覚化や分析も行えます。
QGISのインストール
- QGISの公式サイトから最新のインストーラーをダウンロードします。
- インストールを実行し、指示に従ってください。
QGISを使ったデータの管理と変換
QGISを使うことで、さまざまな形式のデータをインポートし、Shapefileにエクスポートすることができます。この流れを以下に示します。
1. GeoJSONやFGDBのインポート
- QGISを起動します。
- 「レイヤ」メニューから「レイヤを追加」→「ベクターレイヤを追加」を選択します。
- 変換したいGeoJSONやFGDBファイルを選択し、「開く」をクリックします。
2. Shapefileへのエクスポート
-
インポートしたレイヤを右クリックし、「エクスポート」→「新規ファイルに地物を保存」を選択します。
-
出力形式を「ESRI Shapefile」に選択し、保存先を指定します。
まとめ
今回、OpenSourceのツールであるogr2ogrとQGISを使用して、Shapefileの変換と管理方法をご紹介しました。これらのツールを活用すれば、Shapefile以外で受け取ったデータを手元で変換することが可能です。
ただし、フォーマット同士が完全に互換しているかどうかはデータによって変わってきますので、必ず変換したデータが期待したものになっているかなどは確認するようにしてください。場合によっては、OpenSourceのプログラムを活用して自分なりの変換プログラムのカスタマイズを行うことも検討してみてください。
地理データの活用は決して難しくありません!OSSなども活用してより多くの人が様々なデータを活用できるようになると嬉しいです!





