Exiftoolで写真にGPSデータを埋め込んで撮影地点のポイントデータを取得する。


埋蔵文化財所在確認調査報告書をQGISで作成する作業フローの記事ではGPSログと写真をマッチングさせるためにGPSpruneを使用し、写真に埋め込まれたジオタグデータからポイントデータを生成するためにphoto2kmzを使用しました。
しかし、手順が複雑で長いのでコマンドラインで同じ作業を簡潔に行います。

Exiftool

Debian Linuxのリポジトリにはデフォルトで入っていました。


sudo apt install libimage-exiftool-perl

準備

同じディレクトリに画像とGPXデータを置いておく。

手順



#1 写真のExifデータをxmpファイルに書き出す
exiftool *.JPG -k -o %d%f.xmp

#2 GPSデータをxmpファイルへ書き込む
exiftool -geotag 180420.gpx '-xmp:geotime<DateTimeOriginal' *xmp

#3 (GPSデータの入った)xmpファイルのデータをのExifに書き込む
##写真のあるディレクトリは絶対パスで指定
exiftool -k -tagsfromfile '%f.xmp' -r -ext JPG '/home/hoge/TestPhoto'

#4 ジオタグ付き画像から位置情報付きのcsvファイルを生成
exiftool -csv -GPSLongitude -GPSLatitude -n  *.JPG >exif.csv

画像ファイル名と緯度、経度が書き込まれたcsvファイルが作成されます。

csvファイルをQGISで開く

作成したexif.csvをQGISで開くと撮影地点がマッピングされています。
GPSpruneとphoto2kmzを使うよりも圧倒的に時間短縮になるのと、手順を覚えなくても良い(再現性が高い)ことが利点です。

参考にしたサイト

exiftoolでジオタグ追加
QGISのPhoto2Shapeプラグインのエラー対処法