GPXに時間を追加するツール

GPXファイルは、緯度経度以外に日時の情報を含みます。
ヤマレコのルート機能にて作成したGPXファイルには日時のデータが含まれません。
ここでは、日時を含んでいないGPXファイルに日時情報を追加するツールについてお知らせします。

とある4日間の登山にて、eTrex30(Garmin GPS device)を使用して、GPSデータを1日ごとに記録しておりました。
電源をOnにしておくと電池が消耗するので、毎日宿泊地に到着した時点でGPSデータを保存し電源を切っていました。
ところが、行動中に”メモリーが足りず計算できません”というエラーが出たので、慌てて取得済みの1日分のGPXファイルを消してしまったのです。

登山終了後に、ヤマレコに記録を登録しようと、削除した1日分のGPXファイルをヤマレコのエアリアマップ地図を使用した計画作成機能により作成しました。
3日分の取得済のGPXファイルと1日分の手書きのGPXファイルを記録作成時に指定して登録しようとしました。
すると、手書き分には、日時データ(<time>yyyy-mm-dd'T'HH:mm:ss'Z'</time>)が存在しないためか、その他の3日分とうまくマージすることができないようで、登録エラーとなります。
幸い削除してしまった日の出発時刻および宿泊地到着時刻は、写真の日時からわかっていました。
各エントリーの<time>...</time>に入れる時刻を出発時刻+時間差分/エントリー数で算出し、GPXファイルに追加するプログラムがあればよいはずなので、ネットでツールを探したのですがそうしたものはありませんでした。

そこで、java言語でツールを作成しました。
すると4日分のGPXファイルを問題なく登録することができました。

同じ悩みを抱えた方に、ご使用いただければ嬉しいと思い、ここに公開しておきます。

使用方法:
java -jar GpxEditor.jar gpx_fullpath_filename startTime endTime > output_fullpath_filename.gpx
※ 時刻は日本時間。
例)
java -jar GpxEditor.jar track-xxx.gpx "2018/10/04 05:30:10" "2018/10/04 16:38:00" >track-xxx_timeadded.gpx

なお、javaは、jdk1.7以上があれば問題ありません。
GpxEditor.jarをカレントディレクトリに格納し実行することを想定しております。
gpxファイル、日時は任意です。
各エントリに追加する時刻は按分した時刻であり、Greenwich Mean Time(GMT)となります。
入力元のGPXファイルはヤマレコのルート作成機能で作成されたものを前提としています。

GpxEditor.jarのダウンロード

コメント

  1. まさにこんなツールを求めていました!! ありがとうございます!

    時刻情報付きGPXファイルが必要だったのですがログを取り忘れたため、Googleロケーション履歴からKMLファイルを生成し、それを時刻情報なしGPXファイルへ変換後、こちらのツールを使わせていただき解決しました。

    返信削除
    返信
    1. お知らせありがとうございます。
      お役に立てたようで嬉しいです。

      削除

コメントを投稿

人気の投稿