(2021-08-15 初稿 - 2021-06-07 追記)
はじめに
筆者は、オートバイのツーリングや自転車でのポタリング、山のハイキング等、アウトドア生活を楽しんでいる。
これまで、スマフォのGPSのログ機能を使っていたが、GPSの精度がイマイチなのとバッテリー消費量の心配から、GPSの記録の専用のGPSロガーを購入した。
購入したGPSロガーは、CANMOREのG-PORTER GP102+(以下、GP102)で、2020年8月16日にAmazonで4,880円で購入した。
本体が100g程度で軽く、とても安いGPSロガーだ。
ちなみに、GP102に付属していたCDのソフトはWindows7用らしいので、Windows10をお使いの方にも多少参考になるかも(宣伝 ^^;)。
使い方
開封してマニュアルを見たが、GPSロガーを初めて使う筆者には、理解できなかったたので、以下のPDFファイルを検索しようやく使えるようになった。(^_^;)
以下のリンクのうち、日本語説明書というPDF。多謝
このページは、GP102+の使い方は上記PDFに譲り、以下ではdebianでの使い方を記載する。
Debianで使う
筆者の2020年8月現在の環境は以下のとおり。
・Debian 4.19.132-1 (2020-07-24)
必要なファイル(FIT)の保存
ログを記録したGP102+を付属のUSBケーブルで接続すると、USBメモリ等と同様にファイルを開くか聞いてくる。
GP102+内のファイル構造としては、以下のとおり。
GP-102/ ├── Activities │ └── 005.fit ├── Device.xml ├── NewFiles ├── POIs │ └── 001 ├── Settings │ └── Settings.dat └── Trips
ここで必要になるファイルは、Activitiesに含まれるxxx.fitファイル。
ちなみに、FITとは、FIT (Flexible and Interoperable Data Transfer) の略。
ここでは、005.fitファイルを適当なディレクトリにコピーする。
gpsbabelのインストール
FITファイルはバイナリーファイルで、取扱いが面倒なので、ここではKMLファイルに変換してGoogle Earth等でログを確認する。
ちなみに、KMLとは、KML(Keyhole Markup Language)の略。
まずは、以下のとおり、gpsbabelをインストールする。
sudo apt install gpsbabel
GUIがお好みの方は、以下のとおりGUIのgpsbabelがインストールできる(必須ではない)。
sudo apt install gpsbabel-gui
FITからKMLへの変換
gpsbabelは、とてもたくさんのオプションがあるので、筆者は以下のサイトを参考にさせていただいた。多謝。m(__)m
コマンドで実行する場合は、以下のように実行する。なお、ここではホームディレクトリ直下に保存した006.fitファイルを006.kmlに変換する場合を示す。
$ gpsbabel -t -i garmin_fit -f ~/006.fit -o kml,line_width=2,line_color=ff0000ff,units=m,points=0,trackdata=0 -F 006.kml
オプションが多くて覚えきれないので、以下のbashスクリプトを作成した。
出力は、ファイルの「日付-時間.kml」にしたが、Linuxで読み取ると、ファイルの時刻が変になってしまう。(手抜き)^^;
元のfitファイルが単なる数字だったので、fitファイル名は日付のファイル名に変更した。
$ cat ~/bin/fit2kml #!/bin/bash # 2020-08-18 start Written by hymd3a # convert fit to kml # ver0.02 [2020-08-23] mv fit filename if [ $# -ne 1 ]; then echo "[Usage] fit2kml fit_file" echo " output date-hms.kml" exit fi fbase=$(date "+%Y-%m-%d-%H%M%S" -r $1) #echo $fbase gpsbabel -t -i garmin_fit -f $1 -o kml,line_width=2,line_color=ff0000ff,units=m,points=0,trackdata=0 -F $fbase.kml # add H.Y [2020-08-23] mv $1 $fbase.fit
スクリプトを作成したら、chmod +x fit2kml で実行権を与える。
さらに、ディレクトリに保存されている???.fit(3ケタの数字)ファイルを一括して変換するには、以下のとおり実行する。
$ for f in ???.fit; do fit2kml $f; done
GUIで変換する場合には、下図を参考に変換すること。
なお、出力のオプションについては、コマンドのhelp等で調べてね。
Google Earthのインストールとkmlの表示方法
Google Earthのインストール
Google Earthはgoogleからダウンロードして以下のとおりインストールする。
ちなみに、Debian64bitの場合は、google-earth-pro-stable_current_amd64.deb ファイルをダウンロードする。
$ sudo apt install google-earth-pro-stable_current_amd64.deb
Google Earthでのkmlファイルの表示
インストールしたGoogle Earthを起動して、ファイルメニューから開くで、変換したkmlファイルを表示させる。
以下の例は、近所を自転車で走り、1秒間隔で保存したkml。 赤字のとおり、詳細な位置が記録されている。
このままでは、あまりおもしろくないので、以下のとおり建物を3D表示させ、経路をトレースさせる。
上図のとおり「保留」ディレクトリの最下層のPathまで表示させ、右三角形が表示された経路のアイコンのボタン(赤丸)をクリックすることにより、移動した経路を3Dで表示させながら、たどることができる。
csvファイルを作る
上記のスクリプトでkmlファイルを作成し、Google Earthで楽しんでいたが、不要なデータがあること、また、バイク等の記録ではその時のスピードを知りたくなり、csvファイルも併せて出力するようにした。
まずは、fitファイルからcsvファイルを出力する場合は、以下のコマンドになる。
gpsbabel -t -i garmin_fit -f ~/006.fit -o iblue747 -F 006.csv
kmlとcsvを一括して作る
kmlとcsvファイルを一括して作るbashスクリプトを作成した。
また、ファイルのタイムスタンプが9時間ずれるので、修正するようにした。
#!/bin/bash # 2020-08-18 start Written by hymd3a # convert fit to kml and csv # ver0.02 [2020-08-23] mv fit filename # ver0.03 [2021-02-28] both kml cvs # ver0.04 [2021-02-28] 9 hours adjust if [ $# -ne 1 ]; then echo "[Usage] fit2kml fit_file" echo " output date-hms.kml" exit fi fday=$(date "+%Y/%m/%d %H:%M:%S" -r $1 ) fbase=$(date "+%Y-%m-%d-%H%M%S" -d "$fday 9 hour ago") #echo $fbase #fbase=$(date "+%Y-%m-%d-%H%M%S" -r $1) #echo $fbase gpsbabel -t -i garmin_fit -f $1 -o kml,line_width=2,line_color=ff0000ff,units=m,points=0,trackdata=0 -F $fbase.kml # add H.Y [2021-02-28] gpsbabel -t -i garmin_fit -f $1 -o iblue747 -F $fbase.csv # add H.Y [2020-08-23] mv $1 $fbase.fit
gpxファイルも作る(2021-06-07 追記)
先日、yamapに登録したら活動の軌跡がgpxだった。
gpxファイルも扱えた方が良いと思い、以下のページをアップした。
ついでに、fitファイルからgpxファイルを作成する方法を示す。
gpsbabel -i garmin_fit -o gpx infile.fit outfile.gpx
以下のサイトにyamapにアップする際に、あまり更新頻度が高いファイルを読み込むと累積標高が多くなるとのこと。以下のようにすると良い。
gpsbabel -i garmin_fit -x simplify,count=800 -o gpx infile.fit outfile.gpx
1分間に4点程度にする。
おわりに
ここまで、駆け足でGP102をDebianで使う方法を記載した。
いろいろな機器をLinuxで使う場合にも、あまり困らない便利な時代になって、とてもありがたい。(^o^)
また、何か気がついたら追記する。