測位ログ変換とジオタギング

測位ログ取得

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

測位ログ形式

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

NMEA 0183

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

$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関連アプリケーション間で 測位データをやりとりするためのフォーマット。

<?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で終了。

測位ログ(GIS)ファイル形式の変換

測位ログなどが保存されるGISフォーマットは相互に変換することができる。 WebGISで一般的なフォーマットをいくつか挙げる。

これらはGDALライブラリ付属のツール ogr2ogr で変換できる。

GDAL ogr2ogr による変換

ogr2ogr -f 変換先フォーマット 変換先ファイル 元ファイル

の書式で利用する。ただし、Shapefile は複数のファイルの集合なので、 それらを含むディレクトリの指定となる。 フォーマット一覧は「ogr2ogr --long-usage」と 起動することで得られる。上記一覧にあるフォーマットは以下のとおり。

フォーマットogr2ogrの指定
GPX"GPX"
KML"KML"
GeoJSON"GeoJSON"
Shapefile"ESRI Shapefile"

たとえば GPX ファイル(file.gpx)をGeoJSONファイル(file.geojson) に変換するには以下のようにする。

ogr2ogr -f geojson file.geojson file.gpx

QGISによる変換

QGISを利用してGUI操作で変換することもできる。概略のみ示す。

  1. QGISを起動する。
  2. 必要ならXYZ TilesからOpenStreetMapなどを表示する(しなくてもよい)。
  3. Ctrl-Shift-V を押してベクタレイヤ追加ダイアログを出す (メニュー: レイヤ(L)→レイヤを追加→ベクタレイヤを追加でもよい)。
  4. 「ソース」の入力欄で変換元ファイルを指定し[追加(A)]ボタンを押す。
  5. 左下レイヤ一覧に読み込んだデータのレイヤが足されるのでそれを右クリック、 「エクスポート → 地物の保存」でダイアログを出し、変換先の形式と ファイル名を指定して[OK]を押す。

写真画像と位置情報

カメラ撮影で得られた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つを示す。

手動で埋め込む方法

国土地理院電子地図(https://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

指定したGPXファイルの .gpx を .html に変えたHTMLファイルが生成される。 これをブラウザで開く。

firefox trip.html &

参考文献

  1. 国土交通省 国土地理院. "世界測地系移行に関する質問集(Q&A)". GSI HOME PAGE. http://www.gsi.go.jp/LAW/G2000-g2000faq-1.htm, (参照 2015-04-28).
  2. GeoJSON を使いこなすためのWebサービスまとめ
yuuji@koeki-u.ac.jp