LinuxでGPSデータからジオタグ付きの画像を生成する |
とはいえ、野外調査ではスマホで写真を撮るということは少なくて、一眼レフカメラなどのGPSが搭載されていないカメラで撮影することが多いのです。
なので、撮影した画像のexifに位置情報を書きこんでジオタグ付きの画像を生成するという作業が簡単にできると便利です。
Linuxでできるなら、なおさら便利です。
ということでいろいろ調べてうまくいったのが下記の方法です。
使用ソフトウェア
(1)GPS Photo Correlate
GPSデータを使って写真画像に位置情報を書き込むアプリケーションです。
Ubuntuの公式リポジトリにあります。
もちろんソフトウェアセンターにもあります。
GUIとCUIがあるようですが、迷わずGUIで。
(2)QGISとプラグインPhoto2Shape
ジオタグ付きの画像をシェープ形式に変換します。
(3)QGISとプラグインeVis
Photo2Shapeでシェープ形式に変換したデータの画像をQGIS上で表示します。
以上の3つを組み合わせて、ジオタグ付き画像生成、地図表示、閲覧を行います。
使用環境は、
OS:Xubuntu12.04
QGIS ver2.2
GPS Photo Correlateを起動する
シンプルで非常にわかりやすいです。
基本的には、左側のパネルを上から順に操作していくと間違いなく作業が終わるようになっています。
まず、左上の「Add...」ボタンをクリックします。
そして、ジオタグを付けたい写真を選択します。
写真が無事にGPS Photo Correlateに取り込まれました。
GPSデータを取り込む
続いてGPSデータを取り込みます。
GPX形式のトラックデータなら間違いありません。
先ほどの「Add...」の下の「Choose...」をクリックします。
写真撮影時に記録していたGPSログデータを選択します。
日本語のファイル/ディレクトリ名がからんでいても問題はないようです。
オプションの設定
地味に重要です。
一番上の「Interpolate」と「Between Segments」と「Write DD MM SS.SS」にチェックを入れます。
あまり意味を理解していないのですが、「Between Segments」はトラックログがあまりとれていないところを補完してジオタグをつけてくれる機能のようです。
一番重要なのはその下にある「Time Zone」の設定です。
デフォルトで「+0:00」になっていますが、これだとGPSと画像データの時間が合わなくなりますので、日本標準時の「+9:00」とします。
その下の「GPS Datum」も重要な設定項目ですが、デフォルトの「WGS
-84」で問題ありません。
写真に位置情報を書き込む
左下の「Corerelate Photos」をクリックすると画像に位置情報が書きこまれます。
ジオタグ付き画像をシェープ形式に変換
ここまでの作業で、ジオタグ付きの画像が生成されました。
このデータをフリーの地理情報システムQGISで表示します。
まずは、ジオタグ付きの画像をシェープ形式に書き換えます。
QGISの標準プラグイン「Phot2Shape」を使用します。
普通は「ベクタ」→「Photo2Shape」にあります。
「Photo2Shape」を開きます。
「Directory with images」でジオタグ付き画像の入っているディレクトリを指定します。
「Output shapefile」で変換したシェープファイルの保存先を指定します。
保存したシェープファイルを開くと撮影場所がカメラマークのアイコンになって表示されます。
*背景地図はOpenStreetMapを使用しました。
(c OpenStreetMap contributors , CC BY-SA2.0)
eVisプラグインでQGIS上で写真を表示する
先ほど作成したシェープファイルの撮影地点で撮影された画像を表示します。
eVisプラグインも標準プラグインです。
「データベース」→「eVis」→「eVisイベントブラウザ」を開きます。
画面の小さなノートパソコンでは地図が隠れてしまいましたが、撮影位置がQGIS上に「*」印で示され、「eVisイベントブラウザ」に写真が表示されます。
来月、子どもたちと一緒に「まちの探検マップづくり」をやる予定なので、ここまでの手順を1分以内にできるように猛特訓です!!
2014年4月15日補足
使用するカメラによっては、そのままではeVisのイベントブラウザで画像が表示されないことがあります。
その場合、「オプションタブ」を選択し、一番上の「ファイルパス」の項目がデフォルトでは「filename」になっているので、「filepath」に変更するとうまく表示されました。