FT3DのGPSログをシェルスクリプトで変換してGoogle Mapに出力する

YAESUの無線機FT3DのGPSログをSDカード保存したものをGoogle Mapに描画したときの備忘録

描画結果

日光白根山の登山記録

ロープウェーに乗って山頂駅に、そこからぐるっと登山したルートが結構正確に記録されています。保存は30秒おきに設定しています。

やりかた

FT3DのGPSログをSDカードに保存する方法は以下のマニュアルのpp.30-31に記載されています。
FT3D Adcvande Manual (PDF) | https://www.yaesu.com/jp/amateur_index/product/ft3d/FT3D_AM_JPN_1907-A.pdf (PDFリンクです)

  1. SDカードからGPSログをコピー
    /FT3D/GPSLOG/yymmddhhmmss.log (ログ開始時刻) の形式で保存されています。
  2. シェルスクリプトでいい感じに整形
    色々やりかたはあるとおもいますが、シンプルに 緯度, 経度, 標高 のみを抜き出してCSVの形に整形します。(標高は不要ですが、点に名前(?)的なものを残せるので残しておきました)
    Gistに適当な変換スクリプトを載せたので自由に使ってください。https://gist.github.com/takunoko/57c02d5ccc8084a6f1a96f547987a197
  3. 出力結果をGoogle mapに取り込む
    1. Google mapにログインした状態で左上の検索窓の左の三本線 > マイプレイス > マイマップ
    2. 地図を作成 (下の方にあります)
    3. 無題の地図、無題のレイヤが作成されるので、「インポート」
    4. 先程のCSVをインポートする
      1. 3つの値が出てくるので上から2つにチェックを入れて 経度 緯度 とする(経度が1つ目) > 続行
      2. 3つ目の値にチェックを入れる > 完了

おわり。

ポイント

ログの中からGPGGAの列を抜き出して使っています。ここの緯度・経度が dddmm.mmmm の形で保存されており、分・秒の部分が10進数で表記されています。GoogleMapなどで使われているこの部分を60で割って60進法になおす必要があります。参考: GPSのNMEAフォーマット, 緯度経度とは? | 用語集とGISの使い方 | 株式会社パスコ

ddd.dddd = ddd + mmmmmm/60

例: 13920.3038 => 139 + 203038/60 = 139.3384
(この変換をしないとずれた場所になります)

他にも改行が\r\nなこと、データが入っていない行があるとGoogleMapに入れるときにコケる、ただcsvにしただけだとカラムが多すぎてGoogleMapに入らないあたりがポイントでした。

まとめ

同じログに正確な時刻や移動速度、標高なども入っているのでこのあたりを使えるともう少し遊べそうだなと思います。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください