eTrex 10JのGPSログをPythonで効率的に保存する
eTrex10JというGPSロガーは1つのファイルに追加でデータが蓄積されるタイプです。
その為、バックアップを取るときに、いちいちファイル名に日時をつけたりしています。
このような事は効率化したいですね。
免責事項
このプログラムを使って起こった損害等は補償できません。
自己責任で使ってください。
以下のような事が考えられます。
- eTrexが使えなくなってしまった
- PCが壊れた
- データが消えてしまった
- データが破損した
- その他、予期せぬトラブル
プログラム
import os
import win32api
import shutil
import datetime
from datetime import datetime as dt
import gpxpy
target_dir = r'D:\Data\GPS\eTrex 10J'
# Lst Drive
drives = win32api.GetLogicalDriveStrings()
drives = drives.split('\000')[:-1]
# Check file
for drive in drives:
src_filepath = drive + r"Garmin\GPX\Current\Current.gpx"
if os.path.exists(src_filepath):
gpx = gpxpy.parse(open(src_filepath,'r'))
point = gpx.tracks[0].segments[0].points[0]
time = point.time + datetime.timedelta(hours=9)
dest_filename = dt.strftime(time,'%Y%m%d-%H%M%S')+'.gpx'
dest_filepath = os.path.join(target_dir,dest_filename)
shutil.move(src_filepath, dest_filepath)
print('"%s" >> "%s"'%(src_filepath,dest_filepath))
print('Done...')
break
target_dirをGPSファイルを保管したいフォルダ名に変更してください。
target_dir = r'D:\Data\GPS\eTrex 10J'
ファイル名は20200406-193306.pgxみたいな感じになります。
YYYYMMDD-hhmmss というファイル名になります。
GPSの一番最初のLogの日時を拾ってきています。
eTrex10Jのログがいっぱいになって、ログが追加されなくなったら
eTrex10Jの使いづらいところですが、軌跡管理という項目をちょくちょくいじらないといけないです。
特に1秒毎にログをとるとなると、1~2時間程度で『軌跡管理』が必要になります。
測定してLogがいっぱいいっぱいになったら『軌跡管理』で現在の軌跡を『軌跡保存』しないといけません。
で、『現在の軌跡の消去』を押してGPSを保存するエリアを開けてあげる必要があります。
また、上記のツールでは『軌跡保存』で保存したGPXファイルまでは移動しないので、それは手動でコピーしてください。
おすすめ記事
文字列による条件抽出 - Python Pandas
国土地理院 標高タイル テキスト版を使って、ディズニーシーのプロメテウス火山を可視化
Django チーター#1 - Python
contents.jsからbackground.jsにメッセージを渡す方法 / Chrome extension
動画ファイルの読込 - OpenCV、Python徹底解説
Django テンプレート 使用 #3 List Dictの表示
Supponsered
外部サイト
↓プログラムを学んでみたい場合、学習コースなどもおすすめです!