GPSログ変換とジオタギング

GPSのログ取得

GPS端末のGPS機能をONにしてから捕捉衛星数を確認する。 4個以上(10個程度が理想)の衛星を捕捉したら測定開始可能。

GPSのログ形式

代表的なログ形式を例示する。

NMEA 0183

NMEA形式ともいう。GPS受信機からの情報を機器間でやりとりする 場合に主に使われる。古いGPS受信機で一般的。

$GPRMC,020444.000,V,4046.799,N,14015.405,E,0.00,0.00,120814,,*1D
$GPGGA,020444.000,4046.799,N,14015.405,E,0,00,0.0,-3.800,M,0.0,M,,*4C
GPX

GPS eXchange Format の略。GPS関連アプリケーション間で GPSのデータをやりとりするためのフォーマット。

<?xml version="1.0" encoding="UTF-8"?>
<gpx
  version="1.1"
  creator="GPSBabel - http://www.gpsbabel.org"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns="http://www.topografix.com/GPX/1/1"
  xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd ">
<metadata>
<time>2014-08-12T09:21:12Z</time>
<bounds minlat="38.952741667" minlon="139.834936667" maxlat="40.786933333" maxlon="140.256750000"/>
</metadata>
<trk>
  <name>Tracked with OSMTracker for Android™</name>
<trkseg>
<trkpt lat="40.779990000" lon="140.256750000">
  <ele>-3.800000</ele>
  <time>2014-08-12T02:05:09Z</time>
<extensions>
					<speed>13.35189437866211</speed>
				</extensions>
</trkpt>
<trkpt lat="40.779771667" lon="140.256358333">
  <ele>-4.700000</ele>
  <time>2014-08-12T02:05:12Z</time>
<extensions>
					<speed>14.640244483947754</speed>
				</extensions>
</trkpt>
</trkseg>
</trk>
</gpx>
KML

Google Earthで利用されるフォーマット。

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2"
	xmlns:gx="http://www.google.com/kml/ext/2.2">
  <Document>
    <name>GPS device</name>
    <snippet>Created Sat Apr 18 09:06:55 2015</snippet>
    <LookAt>
      <gx:TimeSpan>
        <begin>2014-08-12T02:04:44Z</begin>
        <end>2014-08-12T02:04:47Z</end>
      </gx:TimeSpan>
      <longitude>140.256554</longitude>
      <latitude>40.779881</latitude>
      <range>1300.000000</range>
    </LookAt>
<!-- Normal track style -->
   :
   :
 (中略)
   :
   :
  </Document>
</kml>

いずれもテキスト形式のファイルである。テキスト形式のファイルは roy環境では less コマンドで確認する。

less file.gpx

SPCで進み、bで戻り、qで終了。

写真画像とGPS情報

カメラ撮影で得られたJPEGファイルには様々な情報が Exif形式で格納されている。roy環境でExifは geeqie コマンド(画像ビューア)か、 jhead コマンドで確認できる。

jhead imgxxx.jpg
File name    : imgp9206.jpg
File size    : 4258266 bytes
File date    : 2015:04:12 18:22:34
Camera make  : PENTAX             
Camera model : PENTAX K-30        
Date/Time    : 2015:04:12 18:22:09
Resolution   : 4928 x 3264
Flash used   : No
Focal length : 28.1mm  (35mm equivalent: 42mm)
Exposure time: 0.050 s  (1/20)
Aperture     : f/4.0
ISO equiv.   : 1600
Whitebalance : Auto
Metering Mode: center weight
Exposure     : aperture priority (semi-auto)
Focus range  : close
GPS Latitude : ? ?
GPS Longitude: ? ?
JPEG Quality : 95

ジオタグの付加方法

ジオタグのない写真画像にジオタグを埋め込む方法を2つ示す。 座標を手動で埋め込む方法と、撮影時に同時取得しているGPXファイルがある場合に それを利用する方法の2つを示す。

手動で埋め込む方法

国土地理院電子地図(http://maps.gsi.go.jp/)を開き、 画像の撮影地点を正確に選び、右クリックする。

画面下部に情報が現れる。

38度53分38.99秒 139度49分8.39秒
38.894164,139.818996 ズーム:16

このうち、十進表記の緯度軽度を記録する。

exiftool コマンドを用い、ジオタグを入れたい画像ファイルに緯度軽度を埋め込む。

exiftool -gpslatitude=38.894164 -gpslatitudeRef=N \
	-gpslongitude=139.818996 -gpslongitudeRef=E foo.jpg

オプションの大文字小文字は問わない。

GPXログファイルを利用する方法

写真の撮影時刻を完全に含むGPXログファイルを用意できたら、 写真と同じディレクトリに配置し、以下のように exiftool コマンドの -geotag オプションに指定する。

exiftool -geotag logfile.gpx *.jpg

JPEGファイルは何枚でもよい。元のJPEGファイルは _original の名前がついてバックアップが取られる。不要なら消してよい。

ただし、GPXログからの自動付加では正しい位置にならないこともある。 この場合は手動で埋め込む方法で付け直す。位置の確認は以下で説明する gpx-photo で行なう。

画像の地図へのマッピング

gpx-photo を用いると、ジオタグを含む写真や、GPXログに含まれる時刻に撮られた写真を OpenStreetMap上に貼り付けることができる。処理したい JPEG ファイルと GPX を引数に与えて gpx-photo を起動する。例を示す。

gpx-photo.rb *.jpg trip.gpx

参考文献

  1. 国土交通省 国土地理院. "世界測地系移行に関する質問集(Q&A)". GSI HOME PAGE. http://www.gsi.go.jp/LAW/G2000-g2000faq-1.htm, (参照 2015-04-28).
yuuji@koeki-u.ac.jp