また山に行きたくなる。山の記録を楽しく共有できる。

Yamareco

HOME > ヤマノート > GPXファイルの時間変更ツール & GPSログの欠落補完(Windows PC用)
更新日:2023年03月20日 訪問者数:12792
ジャンル共通 IT
GPXファイルの時間変更ツール & GPSログの欠落補完(Windows PC用)
guchi999
 GPSログ(GPXファイル)の時間を書き換えるツール(スクリプト)です。このスクリプトは元のファイルには何の変更もせず、時間を変更したファイルを新たに作ります。

*このスクリプトと同じことは「GPXログエディタ」を使ってもできます。ブラウザで動くJavascriptで書いたプログラムで、IEでは動きませんがChrome、Firefox、Edgeで動き、MACでも使えると思います。
 時間変更以外にもGPSログを編集するのに必要な事は大体できます。
   https://www.yamareco.com/modules/yamanote/detail.php?nid=3089

 このようなツールが必要になるのはヤマレコでは以下のような場合でしょうが、他の用途で単に時間を変更したい場合にも使えます。

 山行記録のルート作成でヤマプラやカシミール3D、他のソフトで作った手書きのルートファイル(GPXファイル)を使うと、写真の自動配置は使えず、コースタイムも一つ一つ設定する必要があります。
 また、GPS機器でログを取っていても電池切れや操作ミスでログが飛んでしまった場合、データが無い区間はレコの地図でルートが直線になって飛んでしまいます。(画像1上)
 その欠落した区間をヤマレコのルート入力やヤマプラ、他のソフトで作った手書きのルートファイル(GPXファイル)で補うと、地図の赤線が細切れで表示されたり飛んだりして標高グラフも上手く表示されません。
 これは手書きのGPXファイルに時間情報が無かったり、あっても実際の山行の時間と違うためで、手書きのGPXファイルの時間情報を実際のGPSログの時間に合わせて繋げば、綺麗なルート図/標高グラフが作れます。(画像1下)
画像1.
 変更後の時間は移動距離に対する標高差で経過時間の配分を変えており、その比率を自分の歩く速度に合わせれば、手書きのルートファイルでも実際に歩いた時のコースタイムに近づけられ、写真配置やコースタイム入力の手助けになります。

 特別なソフトは不要で、必要なのはWindowsの標準テキストエディタであるメモ帳だけです。ソース(プログラム)を公開しているのでウイルスの心配もありません。
 下記にスクリプトや補完ログファイルの作成手順を記します。ゴチャゴチャと色々書いているので面倒そうですが、一度スクリプトを作ってしまえば繰り返し使えて、それほど複雑な作業ではありません。


 スクリプトはWindowsに標準で搭載されているVBScriptで書いており、Windows7、8、10のいずれでも動きます。時間を変更するGPXファイルはヤマレコのルート入力、ヤマプラ、カシミール3Dで作ったもので動作を確認していますが、他のソフトで作ったファイルでも動くと思います。

 PCによってはVBScriptが動かない場合もあるかも知れません。その場合はWindows Script Hostをマイクロソフトのサイトからインストールする必要があります。(Windows10の場合は面倒そうです。)
1.準備(vbsスクリプトの作成)
 作成したvbsスクリプトは繰り返し使えますので、この作業は基本的に1回だけです。

 メモ帳(別なテキストエディタを使っている場合は、それを使って)を開き、'---------スクリプト ・・・-------以下を全てをコピペします。(最初が 「'」で始まっている行はコメントなので省いても大丈夫です。)
 次にメモ帳のコマンド「編集(E)」「置換(R)」で「<」を全て「<」に置き換えてください。(全角から半角に変更します。半角のままでヤマノートに書くと、タグと判断されて正常に表示されないので全角にしたためです。)

 適当に名前をつけて(半角英数を推奨します)、文字ードをANSIかUTF16-LEで保存し、ファイルの拡張子を「.txt」から「.vbs」に代えるとアイコンが画像2のようになります。拡張子を変更しようとすると「ファイルが使えなくなる可能性がある」というメッセージが出ますが、気にせずに変更してOKです。
  作成した ***.vbs のアイコンをダブルクリックして「GPXファイルをドロップしてください。」というメッセージが出れば準備は完了です。

 もしエラーメッセージが出た場合は、拡張子を「.txt」に戻し、下記の語句を、それぞれ半角英数字で()内の例のような英語表記か適当なローマ字に置き換えて再度保存し、やり直してみてください。この場合はメモ帳のデフォルトであるUTF-8保存しても大丈夫だと思いますが、ANSIかUTF16-LEで保存した方が無難です。

  GPX時間変更 (GPX time change)
  GPXファイルをドロップしてください。 (Drop the GPX file.)
  ドロップされたのはファイルではありません。 (It is not a file.)
  ドロップされたのはGPXファイルではありません。 (No GPX file was dropped.)
  日付を入力 (Input the date.)
  出発時間を入力 (Input the departure time.)
  到着時間を入力 (Input the arrival time.)
  入力値が正しくありません (Input value is not correct.)
  同名のファイルがあります。上書きしますか? (Same name file is existing. Overwrite?)
  終了しました (Finished)

 メモ帳でない他のエディタを使っていて、ファイル保存時に文字コードの指定がある場合は、SJISI(Shift-JIS)かANSIで保存してください。


* WSH(Windows Script Host)のVBSは古いシステムであるため、2バイト文字コードでエラーになる場合があります。Windows 10 Ver.1903のアップデート時に、メモ帳のデフォルト文字コードがANSIからUTF-8に変更され、それ以後スクリプトがエラーになる現象が発生している考えられるので、記述を変更しました。詳細はDonaiさんのコメント等をご参照ください。【2020/05/27】
画像2
 拡張子が表示されない設定になっている場合は、保存したファイルのアイコンを右クリックしてプロパティを表示すれば、そこで拡張子を変更できます
 アイコンが変化しない場合はWindows Script Hostがインストールされていない可能性が高いです。

 vbsファイルを編集したい時、メモ帳では通常「.txt」拡張子に関連付けられているのでvbsファイルは「開く」のウィンドウには出てきません。ファイル名の横の「テキスト文書(.txt)」を「全てのファイル(*.*)」に変更すればリストから開けます。
 また、メモ帳を開いておき、そこにvbsスクリプトをドラッグ&ドロップ(vbsファイルのアイコンの上で左クリックを押したままメモ帳のウインドウまで持って行き、クリックを離す)しても開けます。GPXファイルも同様に開くことができます。

 自分の歩き方に合わせて登り下りの時間配分を変えるには、スクリプトの下記の行で「=」の後の数値を適当に変えてください。
 時間配分を変える必要が無ければ、速度比率を全て1.0にします。

  Const dblVelUpL = 0.85  '平地を1とした登りの速度比率
  Const dblVelDnL = 1.15  '平地を1とした下りの速度比率
  Const dblVelUpH = 0.5   '平地を1とした急な登りの速度比率
  Const dblVelDnH = 0.8   '平地を1とした急な下りの速度比率
  Const dblUpTh1 = 0.01  '傾斜係数 1m/100m 以上を登りとする
  Const dblUpTh2 = 0.5   '傾斜係数 50m/100m 以上を急な登りとする
  Const dblDnTh1 = -0.01  '傾斜係数 -1m/100m 以下を下りとする
  Const dblDnTh2 = -0.5  '傾斜係数 -50m/100m 以下を急な下りとする

 また、最初の方にある intTC の値を変えれば、時間をグリニッジ標準時か日本時間にするか選べます。
GPSファイルの欠落補間の場合は元のGPSデータの時間に合わせてください。
 手書きGPSのファイルの場合、ヤマレコのシステムではグリニッジ標準時がデフォルトなので、特に変える必要はありません。
2.手書きGPXファイルの作成
 ヤマレコやカシミール3D、その他のソフトでルートを入力しての手書きGPXファイルを作成します。
 ヤマレコの山行記録の作成でGPXファイルを作る場合は、ルートを入力した後「保存して終了」し、その下書きレコ開いて「グラフを拡大」から、GPXファイルをダウンロードします。
 ヤマプラの場合、ルート入力後に保存を選べば「山行計画を作る/GPX書き出し」ボタンがあるダイアログが出てくるので、それで保存します。詳細はヤマレコやソフトのヘルプをご参照ください。
3.GPXファイルの時間変更
 時間を変更したいGPXファイルをvbsファイルのアイコンの上にドラッグ&ドロップ(GPXファイルの上で左クリックを押したままvbsアイコンの上まで持って行き、クリックを離す)すると、山行の日付と出発時間、到着時間を聞いてきますので、日付は2016-11-13、出発/到着時間は06:00と言うように入力します。「-」と「:」は必ず必要です。

 「終了しました」というメッセージが出れば、スクリプト(vbsファイル)があるフォルダに、時間が変更されたxxx_Change.gpx(xxxはドロップした元のファイルの名前)というファイルが出来ています。
元のGPXファイルには何も変更も加えず、そのまま残っています。
4.GPXファイルの確認
 メモ帳等のテキストエディタでxxx_Change.gpxファイルを開き、最初の1行目が「<?xml」で始まっていたら、そのままファイルを閉じて終了、次回からこの確認は不要です。

 もし「・ソ<?xml」のように、他の文字で始まっていたら「・ソ」を削除して上書き保存します。「・ソ」以外の文字がある場合も同じで、この作業は毎回必要になります。

*「<?xml」の前の文字はBOMコードといって、Windowsのファイル識別の為の物です。カシミール3Dでは無視されますが、ヤマレコのシステムではBOMが入っていると正常なGPXファイルとして認識されません。
5.GPXファイルの補完、および接続
 手書きで作ったGPXファイルだけをルートとしてヤマレコに登録する場合は、時間を変更したらそのまま登録できますが、スクリプトは、単純に距離と標高差の比率で時間配分を変えているだけなので、長い休息をとった場合などは途中通過点の時間のズレが大きくなります。時間のズレを減らすには、GPXファイルを作る際に休息ポイント毎に分けて作成し、時間を変更した後にルートを繋ぎます。

 欠落したGPSログの補完する場合は、途切れた区間のGPXファイルを手書きで作り、出発時間を欠落の最初の時間、到着時間を欠落の最後の時間として、正しく取れているGPSログに補完します。
 接続および補完にはヤマノート「GPSログ(GPXファイル)の接続および挿入(Windows PC)」(https://www.yamareco.com/modules/yamanote/detail.php?nid=1824)に書いたスクリプトを使っていただくと簡単ですが、カシミール3Dや手作業でもできます。特に手作業の場合はGPSログを直接編集するので、元のGPSログをコピーして、そのコピーファイルで作業する事をお勧めします。

 カシミール3Dで補完する場合は、GPSログファイルを欠落した所で分割し、時間を変更したGPXファイルと分割したファイルを接続します。(カシミール3Dで複数のルートを繋ぐ場合の手順は、osamuwvさんのヤマノートに詳しく書かれています。 http://www.yamareco.com/modules/yamanote/detail.php?nid=202

 手作業の場合は、テキストエディタで時間変更したGPXファイルとGPSログの2つを開いておき、時間変更したファイルの最初の「<trkseg>」の次の「<trkpt…」から最後の「</trkpt>」までをコピーして、ログファイルの時間が飛んでいる「</trkpt>」と「<trkpt…」の間にペーストするだけです。

 ただし、コピー範囲が大きく、ペーストする場所を間違える可能性もあるので、下記のようにWindowsシステムツールのコマンドプロンプトを使った方が楽です。

(1) GPSログファイルの複製を作り、そのファイルで欠落した時間の所から最後までを削除して 1.gpx という名前で保存する。

(2) 再度、複製ファイルを開き、先頭から欠落した時間の所までを削除して 3.gpx という名前で保存する。

(3) 挿入するGPXファイルを開くいて、先頭から「<trkseg>」までと、</trkseg>から最後までを削除して 2.gpx という名前で保存する。

(4) これらのファイルを全てデスクトップに置き、Windowsシステムツールのコマンドプロンプトを開いて cd desktop とタイプして[enter]。([enter]はエンタキーを押すという意味です。)

(5) 以下、順番に
type 2.gpx >> 1.gpx[enter]
type 3.gpx >> 1.gpx[enter]
と入力すれば 1.gpx が最終的にルートの繋がったファイルになります。

(6) 手書きのルートを複数つなぐ場合も同様で、最初の行程のGPXファイルの</trkseg>から最後までを削除して 1.gpx の名前で保存。

(7) 次の行程以後のGPXファイルは、先頭から<trkseg>までと、</trkseg>から最後までを削除して 2.gpxの名前で保存。複数のファイルがあれば、同様に処理する。

(8) 最後の行程のGPXファイルは先頭から<trkseg>までだけを削除して n.gpxの名前で保存。

(9) これらのファイルをデスクトップに置き、コマンドプロンプトを開いて下記のように順次タイプすれば、最終的に1.gpx が目的のルートファイルになります。

cd desktop[enter]
type 2.gpx >> 1.gpx[enter]
type 3.gpx >> 1.gpx[enter]

type n.gpx >> 1.gpx[enter]
5.山行記録への登録
 補完したログファイルは通常のGPSログとしてアップします。

 時間を変更した手書きのGPXファイルをルートファイルとしてアップする場合、ルートを登録する際のGPSデータか否かの選択で「GPSデータでない」を選択しても写真の自動配置はできますが、コースタイムは「GPSデータ」にしないと出てきません。

 GPSデータとして登録すると、レコに「※このトラックログはGPSにより採取されたデータです。」という表示が出ます。 GPSログでも手書きのルートでも、あまり問題はないと思います。ただ、ログをダウンロードしてGPS機器に入れて、それを頼りに歩く人もいるので、コースタイムのコメントにルートは手書きである事を明記しておいた方が良いかも知れません。

 「GPSにより採取・・・」の表示を出したくなければ、最初にGPSデータとしてルートを登録し、コースタイムが記入されているのを確認して一度保存、その後に編集モードにしてルートを削除し、ルートファイルを「GPSデータでない」を選択して再度アップロードし、写真を自動配置すればコースタイムが残ります。ただし、コースタイムの設定で「再計算」のボタンを押すと、タイムがリセットされてしまいます。
 あとは、撮影した場所がわかる写真の時間、および登山中の記録や記憶で写真位置やコースタイムを調整します。
スクリプト
'-----------スクリプト GPXファイルの時間変更 2016/11/13 v3.0 --------------------------

Option explicit
Const strTitl = "GPX時間変更"
Const intTC = -9 '標準時間係数 グリニッジ標準時は-9, 日本ローカル時間は0
Const dblVelUpL = 0.85 '平地を1とした登りの速度比率
Const dblVelDnL = 1.15 '平地を1とした下りの速度比率
Const dblVelUpH = 0.5 '平地を1とした急な登りの速度比率
Const dblVelDnH = 0.8 '平地を1とした急な下りの速度比率
Const dblUpTh1 = 0.01 '傾斜係数 1m/100m を登りとする
Const dblUpTh2 = 0.5 '傾斜係数 50m/100m を急な登りとする
Const dblDnTh1 = -0.01 '傾斜係数 -1m/100m を下りとする
Const dblDnTh2 = -0.5 '傾斜係数 -50m/100m を急な下りとする

If WScript.Arguments.Count = 0 Then
MsgBox "GPXファイルをドロップしてください。",,strTitl
WScript.Quit
End If
'スクリプトのあるフォルダを作業フォルダにしてFileSystemObjectの取得
Dim strScriptPath, objFSO, strArg, objDrpFile
strScriptPath = Replace( Wscript.ScriptFullName, Wscript.ScriptName, "")
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
strArg = WScript.Arguments(0)
If objFSO.FileExists(strArg) Then 'ファイルならFileオブジェクト取得
On Error Resume Next
Set objDrpFile = objFSO.GetFile(strArg)
If Err.Number <> 0 Then Set objDrpFile = Nothing
On Error Goto 0
Else
Set objDrpFile = Nothing
End If
If objDrpFile Is Nothing Then
MsgBox "ドロップされたのはファイルではありません。",,strTitl
WScript.Quit '終了
End If

Dim objInFile, objOutFile, strInFilePath, strOutFilePath
Set objInFile = objFSO.OpenTextFile(objDrpFile.Path, 1)
Dim intI, intJ, strBuf
intI = 0: intJ = 0
For intI = 1 to 3
strBuf = objInFile.ReadLine
If InStr(strBuf, "gpx") <> 0 Then intJ = 1
Next
If intJ <> 1 Then
MsgBox "ドロップされたのはGPXファイルではありません。",,strTitl
objInFile.Close
WScript.Quit '終了
End if

'=========最初にファイルを全部読みこみ、距離、昇降値を集計==============
Dim strOutLine
Dim strPrevIdo, strPrevKeido, dblPrevEle, strCurIdo, strCurKeido, dblCurEle
'最初のtrkptを読み込んで初期値とする
Call get_lon_lat_ele_val 'trkptから緯度/軽度/標高を抽出
strPrevIdo = strCurIdo : strPrevKeido = strCurKeido : dblPrevEle = dblCurEle
'距離、昇降値の集計
Dim dblPtDis, dblPtEle, dblDisAll, dblUpDisL, dblUpDisH, dblDwnDisL, dblDwnDisH, dblEvnDis
dblDisAll=0 : dblUpDisL=0 : dblUpDisH=0 : dblDwnDisL=0 : dblDwnDisH=0 : dblEvnDis=0
Dim dblBalo
Do Until InStr(strBuf, "</trkseg>")
Call get_lon_lat_ele_val
'前のポイントからの距離と標高差を求める
dblPtDis = DistanceCaluc(strPrevIdo, strPrevKeido, strCurIdo, strCurKeido)
dblPtEle = dblCurEle - dblPrevEle
dblDisAll = dblDisAll + dblPtDis
'標高差によって距離を集計(振り分け)する
If dblPtDis = 0 Then
dblBalo = 0
Else
dblBalo = dblPtEle/dblPtDis
End If
If dblBalo > dblUpTh2 Then dblUpDisH = dblUpDisH + dblPtDis
If (dblUpTh2 > dblBalo) and (dblBalo > dblUpTh1) Then dblUpDisL = dblUpDisL + dblPtDis
If (dblDnth1 < dblBalo) and (dblBalo < dblUpTh1) Then dblEvnDis = dblEvnDis + dblPtDis
If (dblDnth2 < dblBalo) and (dblBalo < dblDnth1) Then dblDwnDisL = dblDwnDisL + dblPtDis
If dblBalo < dblDnth2 Then dblDwnDisH = dblDwnDisH + dblPtDis
strPrevIdo = strCurIdo : strPrevKeido = strCurKeido : dblPrevEle = dblCurEle
Loop
objInFile.Close

'============再度ファイルを読み込み時間変更==========================
Dim strStrTim, strEndTim, strTimBuf, dblTimAll, strDate
strDate =InputBox ("日付を入力 (yyyy-mm-dd)", strTitl, "20yy-mm-dd")
strStrTim = InputBox ("出発時間を入力 (hh:mm)", strTitl, "hh:mm")
strEndTim = InputBox ("到着時間を入力 (hh:mm)", strTitl, "hh:mm")
On Error Resume next
strStrTim = strDate & " " & strStrTim : strEndTim = strDate & " " & strEndTim
strStrTim = DateAdd("h", intTC, strStrTim )
strEndTim = DateAdd("h", intTC, strEndTim )
dblTimAll = DateDiff("s", strStrTim, strEndTim)
On Error Goto 0
If dblTimAll < 1 Then
MsgBox "入力値が正しくありません",,strTitl
WScript.Quit
End If
If InStr(strStrTim, ":") = 0 Then strStrTim = strStrTim & " 00:00:00"
'出力ファイル準備
strOutFilePath = strScriptPath + objFSO.GetBaseName(objDrpFile.Name) + "_Change.gpx"
If objFSO.FileExists(strOutFilePath) Then
If MsgBox ("同名のファイルがあります。上書きしますか?", vbYESNO,strTitl) = vbNO Then
Wscript.Quit
End If
objFSO.DeleteFile(strOutFilePath)
End If
Set objOutFile = objFSO.OpenTextFile(strOutFilePath, 8, True, 0)
'入力ファイル再オープン
Set objInFile = objFSO.OpenTextFile(objDrpFile.Path, 1)
'最初のtrkptまでを出力ファイルにコピー & スタート点の緯度/軽度初期値の設定
Do
strBuf = ObjInFile.ReadLine
If InStr(strBuf, "<trkpt") = 0 Then
If InStr(strBuf, "<name>") And InStr(strBuf, "</name>") = 0 Then 'UTF-8文字化け対策
strBuf = Replace(strBuf, "/name", "</name")
End If
objOutFile.WriteLine strBuf
End If
Loop Until InStr(strBuf, "<trkpt")

Dim strBuf2
Call get_lon_lat_str
If InStr(strBuf, "</trkpt>") Then 'ヤマプラ/ヤマレコ ファイル
intElbgn = InStr(strBuf, "<ele>")
intElend = InStr(strBuf, "</ele>")
dblCurEle = CDbl(Mid(strBuf, intElbgn + 5, intElend - intElbgn - 5))
strBuf2 = Left(strBuf, InStr(strBuf, "</ele>") + 5)
strStrTim = Replace(strStrTim, "/", "-")
strBuf = Replace(strStrTim, " ", "T")
strBuf2 = strBuf2 & "<time>" & strBuf & "Z</time>"
strBuf = strBuf2 & "</trkpt>"
objOutFile.WriteLine strBuf
Else 'カシミール ファイル
objOutFile.WriteLine strBuf
Do '<ele>から</trkpt>までの読み込みと書き出しループ
strBuf = ObjInFile.ReadLine
If InStr(strBuf, "<ele>") Then
intElbgn = InStr(strBuf, "<ele>")
intElend = InStr(strBuf, "</ele>")
dblCurEle = CDbl(Mid(strBuf, intElbgn + 5, intElend - intElbgn - 5))
End If
If InStr(strBuf, "<time>") Then
strStrTim = Replace(strStrTim, "/", "-")
strBuf2 = Replace(strStrTim, " ", "T")
strBuf = "<time>" & strBuf2 & "Z</time>"
End If
objOutFile.WriteLine strBuf
Loop Until InStr(strBuf, "</trkpt>")
End If
strPrevIdo = strCurIdo : strPrevKeido = strCurKeido : dblPtEle = dblCurEle

'--------------時間変更---------------------
Dim intAddTim, dblVupH, dblVupL, dblVdnH, dblVdnL, dblVelEvn, strTimFmt
dblVelEvn=(dblUpDisH / dblVelUpH + dblUpDisL / dblVelUpL + dblEvnDis + dblDwnDisL / dblVelDnL + dblDwnDisH / dblVelDnH) / dblTimAll
dblVupH = dblVelEvn * dblVelUpH
dblVupL = dblVelEvn * dblVelUpL
dblVdnL = dblVelEvn * dblVelDnL
dblVdnH = dblVelEvn * dblVelDnH
Do
strBuf = ObjInFile.ReadLine
If InStr(strBuf, "<trkpt") Then
Call get_lon_lat_str
dblPtDis = DistanceCaluc(strPrevIdo, strPrevKeido, strCurIdo, strCurKeido)
End If
If InStr(strBuf, "</trkpt>") Then 'ヤマプラ/ヤマレコ ファイル
intElbgn = InStr(strBuf, "<ele>")
intElend = InStr(strBuf, "</ele>")
dblCurEle = CDbl(Mid(strBuf, intElbgn + 5, intElend - intElbgn - 5))
dblPtEle = dblCurEle - dblPrevEle
Call add_tim_calc
strBuf2 = Left(strBuf, InStr(strBuf, "</ele>") + 5)
strBuf = strBuf2 & strTimFmt & "</trkpt>"
objOutFile.WriteLine strBuf
Else 'カシミール ファイル
If InStr(strBuf, "<trkpt") Then
objOutFile.WriteLine strBuf
Do '<ele>から</trkpt>までの読み込みと書き出しループ
strBuf = ObjInFile.ReadLine
If InStr(strBuf, "<ele>") Then
intElbgn = InStr(strBuf, "<ele>")
intElend = InStr(strBuf, "</ele>")
dblCurEle = CDbl(Mid(strBuf, intElbgn + 5, intElend - intElbgn - 5))
dblPtEle = dblCurEle - dblPrevEle
End If
If InStr(strBuf, "<time>") Then
Call add_tim_calc
strBuf = strTimFmt
End If
objOutFile.WriteLine strBuf
Loop Until InStr(strBuf, "</trkpt>")
End If
End If
strPrevIdo = strCurIdo : strPrevKeido = strCurKeido : dblPrevEle = dblCurEle
Loop Until InStr(strBuf, "</trkseg>")

objOutFile.WriteLine strBuf
If InStr(strBuf, "</trk>") = 0 Then
strBuf = "</trk>"
objOutFile.WriteLine strBuf
End If
strBuf = "</gpx>"
objOutFile.WriteLine strBuf

objInFile.Close
objOutFile.Close
MsgBox "終了しました",,strTitl
Wscript.Quit

'=================関数、サブルーチン==================

'2つの緯度、経度間の距離を計算する関数 (ヒュベニの公式を使用)
Function DistanceCaluc(strIdo1, strKeido1, strIdo2, strKeido2)
Dim ido1, ido2, keido1, keido2
Dim P, dP, dR, M, N
Const pai = 3.141592
ido1 = CDbl(strIdo1) : keido1= CDbl(strKeido1)
ido2 = CDbl(strIdo2) : keido2 = CDbl(strKeido2)
P = (ido1 + ido2) / 2 * pai / 180
dP = (ido1 - ido2) * pai / 180
dR = (keido1 - keido2) * pai / 180
M = 6334834 / Sqr((1 - 0.006674 * Sin(P) * Sin(P))^3)
N = 6377397 / Sqr(1 - 0.006674 * Sin(P) * Sin(P))
DistanceCaluc = Sqr((M * dP) * (M * dP) + (N * Cos(P) * dR) * (N * Cos(P) * dR))
End Function

'</trkpt>行までを読み込み緯度/軽度/標高を抽出するサブルーチン : 返数=strCurIdo, strCurKeido, dblCurEle
Dim intElbgn, intElend
Sub get_lon_lat_ele_val
Do
strBuf = ObjInFile.ReadLine '1行読み込む
If InStr(strBuf, "<trkpt") Then
Call get_lon_lat_str
End If
If InStr(strBuf, "<ele>") Then
intElbgn = InStr(strBuf, "<ele>")
intElend = InStr(strBuf, "</ele>")
dblCurEle = CDbl(Mid(strBuf, intElbgn + 5, intElend - intElbgn - 5))
End If
If InStr(strBuf, "</trkseg>") Then
strBuf = "</trkpt></trkseg>"
End If
Loop Until InStr(strBuf, "</trkpt>")
End Sub

'文字列(strBuf)から緯度/軽度を抽出するサブルーチン : 引数=strBuf 返数=strCurIdo, strCurKeido
Dim strTmp, strArr
Dim intA, intB
Sub get_lon_lat_str
intA = InStr(strBuf, "=" ) + 2
intB = InStr(strBuf, ">") - 1 - intA
strTmp = Mid(strBuf, intA, intB)
strTmp = Replace(strTmp, chr(34), "")
strTmp = Replace(strTmp, chr(20), "")
If InStr(strTmp, "lon=") Then
strArr = Split(strTmp, "lon=")
strCurIdo = strArr(0)
strCurKeido = strArr(1)
Else
strArr = Split(strTmp, "lat=")
strCurIdo = strArr(1)
strCurKeido = strArr(0)
End If
End sub

'前trkptと現trkptの距離/標高差によって加算時間を求め、現trkptの時間を決めるサブルーチン : 引数=dblPtEle, dblPtDis, strStrTim 返数=strTimFmt
Dim dblVelCur
Sub add_tim_calc
If dblPtDis = 0 Then
dblBalo = 0
Else
dblBalo = dblPtEle/dblPtDis
End If
'昇降傾斜によって速度を決める
If dblBalo > dblUpTh2 Then dblVelCur = dblVupH
If (dblUpTh2 > dblBalo) and (dblBalo > dblUpTh1) Then dblVelCur = dblVupL
If (dblDnth1 < dblBalo) and (dblBalo < dblUpTh1) Then dblVelCur = dblVelEvn
If (dblDnth2 < dblBalo) and (dblBalo < dblDnth1) Then dblVelCur = dblVdnL
If dblBalo < dblDnth2 Then dblVelCur = dblVdnH
intAddTim = Round(dblPtDis/dblVelCur, 0) '距離/速度
strStrTim = DateAdd("s", intAddTim, strStrTim ) 'strStrTim = Time at current point.
If InStr(strStrTim, ":") = 0 Then strStrTim = strStrTim & " 00:00:00"
strStrTim = Replace(strStrTim, "/", "-")
strTimFmt = Replace(strStrTim, " ", "T")
strTimFmt = "<time>" & strTimFmt & "Z</time>"
End sub
お気に入りした人
拍手で応援
拍手した人
拍手

※この記事はヤマレコの「ヤマノート」機能を利用して作られています。
どなたでも、山に関する知識や技術などのノウハウを簡単に残して共有できます。 ぜひご協力ください!

詳しくはこちら

コメント

一部のログが取れていなくて困っていました
表記の通り一部のログの取れていなかった為困っていました。
早速抜け落ちたログをカシミールで作成してこのプログラムを走らせたところ、うまく行きました。
後は、カシミールで編集して綺麗なログを作成したいと思います。
ありがとうございました。
2019/1/5 10:32
Re: 一部のログが取れていなくて困っていました
TEYANDAYさん、

お役に立てたようで何よりです。

ログを繋ぐのに、カシミールをお持ちなら問題ないですが、
『GPSログ(GPXファイル)の接続および挿入(Windows PC)』
https://www.yamareco.com/modules/yamanote/detail.php?nid=1824
の方もお試しください。と、宣伝してみたりして
2019/1/6 8:56
とても助かりました。
はじめまして こんにちは。
サックと走らせて、サクッと修正出来ました。
とっても助かりました。 ありがとうございます。
自分の日記内で備忘録として紹介させて頂きます。(不都合が有ればすぐに消しますのでご指摘ください。)
最初、エラーが出たのですが、ファイルの文字コードをSJISに修正したところ正常に動きました。 よろしければ、本文「1.準備(vbsスクリプトの作成)」の何処かに文字コードを指定するように追記していただければ幸せになる人が増えそうにお思います。(読み飛ばしていて、記載を見落としてた場合は何卒ご容赦ください)
以上、誠にありがとうございました。m(__)m
2020/1/15 11:10
Re: とても助かりました。
文字コードのご指摘、ありがとうございます。
追記しました。
2020/1/15 14:19
出来ません
上記の通りスクリプト以下をメモ帳にコピペして拡張子「.vbs」で保存してGPX時間変更.vbsというファイル名保存しました。その上にgpxファイルをドラッグ&ドロップするとガチャと音がしてエラーメッセージが出ます。
行   16
文字  47 終了していない文字型の定数です
コード 800A409
ソース Microsoft VBScript コンパイルエラー
どういうことでしょう?
2020/5/26 13:54
Re: 出来ません
16行目で「終了していない文字型の定数です」のコンパイルエラーが出るということは、その行にある「"」が消えているのかもしれません。
メモ帳を開いておき、GPX時間変更.vbsをドラッグ&ドロップすると、コードが見られるから確認して見て下さい。

ただ、VBSのエラーメッセージは不親切なので他のエラーである可能性もあります。
コピペや編集作業の途中でマウスやキーボードの操作によっては文字がが変わる事もあるので、その点には注意が必要です。
2020/5/26 14:45
Re[2]: 出来ません
すみません。解決しませんでした。
2020/5/26 16:08
Re[3]: 出来ません
やはり、GPX Editorでポイントを一つ一つ変えていかないとだめなんでしょうか?400ポイントくらいあるので気が遠くなります。
2020/5/26 16:14
Re[4]: 出来ません
現在、調査中なのですが、メモ帳で保存するときに文字コードを ANSI 選択して保存するのを試してもらえないでしょうか。
(名前を付けて保存にすると、出てくるウインドウの一番下に選択する所があります。)
2020/5/26 19:16
Re[5]: 出来ません
やってみます
2020/5/26 19:44
Re[6]: 出来ません
やってみましたが出来ませんでした。
2020/5/26 20:33
Re[7]: 出来ません
guchi999 さん お世話になります。 横やり失礼します。

akiyone さん
まずは、以下の項目を実施して下い。。
これ以上の進展はそれからでしょうね。

・これまで出たエラーの詳しい内容すべてを記載する

・Windowsのバージョンを記載する
・ファイル作成したエディター名及びバージョンを記載する
・GPSデーターを作ったソフト&方法を記載する

以下、2点を何処かに上げて、こちらがダウンロード出来る環境を整える。
 1.今回作った vbsファイル
 2.GPSデーターファイル

このために、わざわざユーザー登録されてる様なので、相当困ってるのでしょうけど・・
これ以上のヘルプは、少なくともこれぐらいやってからにしましょう。
2020/5/26 22:58
Re[7]: 出来ません
Donaiさん、助言ありがとうございます。

akiyoneさん、

私の環境でも、最初は問題無しだったのが、同じエラーが起こるようになりました。
メモ帳以外のエディタを使えば問題ないので、今回の問題は保存するときの文字コードに起因しているようです。
数日前にWindowsのアップデートがあったので、そのせいかもしれません。

それで、色々試してみたのですが、私の環境ではANSIで保存すると問題なく動きました。
(akiyoneさんがANSIでも駄目だったのは、Windowsのバージョン等の問題かもしれません。)
また、UTF8で保存してもスクリプトの日本語を英語にすれば動きました。
それで、スクリプト中の日本語を、それぞれ下記のように英語に置き換えてみてください。
(英語の文字は全て半角にしてください)

ーーーー変更箇所ーーーーーーー
GPX時間変更
GPX time change

GPXファイルをドロップしてください。
Drop the GPX file.

ドロップされたのはファイルではありません。
It is not a file.

ドロップされたのはGPXファイルではありません。
no GPX file was dropped.

日付を入力
input the date

出発時間を入力
input the departure time

到着時間を入力
input the arrival time

入力値が正しくありません
input value is not correct

同名のファイルがあります。上書きしますか?
same name file is existing. Overwrite?

終了しました
Finished
ーーーー変更箇所ここまでーーーーーーー

他の日本語はコメントなので変えなくてもOKです。
これでも駄目だと、今の所はお手上げです。
2020/5/27 0:12
Re[8]: 出来ません
guchi999 さん こんばんは 

ソースコードには間違いが無いようですので・・
おそらく、Windowsのバージョンによる内部文字コードの処理の違いからくるエラーで間違いないと思われますよね?

コメントアウト以外は、半角英文でUTFってのが、正解のような気もしますが、未だにWinXPを使ってる人も居ますから少々厄介かもですね。

素晴らしいスクリプトなので多くの人が幸せになってくれればいいのですが・・
2020/5/27 0:48
Re[9]: 出来ません
前の投稿が妙にモヤモヤと気になったので、検証してみました。
結果・・ Winのバージョンに関係なく同じ結果になりましたので、先の自分の書き込みは勘違いも甚だしいと言う事になりました。 
誠に。申し訳ないっす。orz

以下、検証結果です。

vbs ファイルについて
ファイル名は GPXtimeExchange.vbs にしています。
Win10 環境で作成してます。
UTFは全て BOM 無しです。
改行コードは CR+LF です。
EOFコード無しです。

* 下記の結果から、私の環境では、説明文中の「メモ帳の場合はBOMなしのUTF-8でOKです。」はエラーとの結果になりました。

-- Win10 Vwr1903 --
GPXtimeExchange-SJISI ○
GPXtimeExchange-ANSI ○
GPXtimeExchange-DBCS932 ○
GPXtimeExchange-EUC ✕
GPXtimeExchange-JIS ✕
GPXtimeExchange-UTF8 ✕
GPXtimeExchange-UTF16BE ✕
GPXtimeExchange-UTF16LE ○


-- Win7 Ver6.1 SP1 --
GPXtimeExchange-SJISI ○
GPXtimeExchange-ANSI ○
GPXtimeExchange-DBCS932 ○
GPXtimeExchange-EUC ✕
GPXtimeExchange-JIS ✕
GPXtimeExchange-UTF8 ✕
GPXtimeExchange-UTF16BE ✕
GPXtimeExchange-UTF16LE ○


-- WinXP Ver5.1 SP3 --
GPXtimeExchange-SJISI ○
GPXtimeExchange-ANSI ○
GPXtimeExchange-DBCS932 ○
GPXtimeExchange-EUC ✕
GPXtimeExchange-JIS ✕
GPXtimeExchange-UTF8 ✕
GPXtimeExchange-UTF16BE ✕
GPXtimeExchange-UTF16LE ○

上から3つ迄の文字コード SJISI, ANSI, DBCS932 は、同意だと思いますので結果が同じで当然かも・・
2020/5/27 3:13
Re[10]: 出来ません
Donaiさん、guchi999さんありがとうございます。見よう見まねでVBA程度は仕事で使っておりますが、プログラムについてはさすがに知識不足です。
緊急事態宣言が解除されて今日からバッチリ仕事モードなので次の休暇にアドバイスの件、再度トライしてみます。ありがとうございました。
2020/5/27 6:15
Re[10]: 出来ません
Donaiさん、
ご検証、ありがとうございます。

今回の問題は、やはり2バイト文字コードが原因であることは間違いないですね。
昨年5月のWindows 10 Ver.1903のアップデートの時に、メモ帳のデフォルト文字コードがANSIからUTF-8に変更された時から起きていたのかも知れません。

WSHのVBSは古いシステムで、UTF8やUTF16の文字コードに対応していないから、こういう問題が起こるのでHTMLやJAVAscriptで書き直せば良いのかも知れません。
でも素人だから、そんなに簡単に移行できないのです。

それで、現実的な解決方法として、以下の注意書きを追記しておきたいと思います。

1.メモ帳ではANSIで保存するのを推奨
2.1.で駄目な場合は、コメント以外の日本語の部分を半角英数モードで、英語またはローマ字に書き直してANSIまたはUTF-8かUTF16LEのBOMなしで保存で試してみる
3.保存するファイル名は半角英数を推奨
4.メモ帳以外のエディタの場合はShift-JIS(SJISI)を推奨


akiyoneさん、
お手数ですが、上記を試してみてください。
それでも駄目な場合は、何か手立てを考えます。
2020/5/27 12:26
Re[11]: 出来ません
guchi999 さん こんにちは
それだけの記載が追加されれば安心ですね。

ただ、UTF-8 の場合を再検証してみてもらえませんか? 私の環境では、UTF-8 はエラーが出ます。

最初にakiyoneさんが食らった以下のエラーは UTF-8 の場合に吐き出す固有エラーと合致しており、akiyoneさんもUTF-8で作成したファイルを使用したのではないでしょうか?
--- 引用 ------
行   16
文字  47 終了していない文字型の定数です
コード 800A409
-----------------------------------
ちなみに、EUC等の他の文字コードでは、違うエラーが吐き出されました。

このスクリプトが、多くの人が簡単に使えるようになれば歯抜けデーターが減り、行く行くは多くの地図データーを参考に計画が立てられる事に繋がると思われますので・・
2020/5/27 13:16
Re[12]: 出来ません
Donaiさん、こんにちは。

再度、確認してみました。
Donaiさんの環境と同じく、日本語が入っているとANSIかUTF16LEでしか動きませんね。
UTF-8はメモ帳のデフォルトだし、英語だと動くから、その旨を記して入れて置こうとおもってます。
色々ご助言いただきまして、大変感謝しております。
2020/5/27 16:25
Re[13]: 出来ません
色々恐縮です。土日に試してみます。
2020/5/28 5:44
出来ました
アドバイス通り、やったらできました。
何処で違っていたか説明できませんが、今後は作った作成したスクリプトが繰り返し使えますね。ありがとうございました。
ちなみに、OSはwindows10です。保存方法で勘違いしたのかもしれません。
2020/5/30 7:39
Re: 出来ました
akiyoneさん、

上手く動いたようで何よりです。
この手の作業は細かい設定や手順が必要で、慣れないと色々問題が出たりするので厄介ですね。
だから、最近の人はパソコンよりスマホになってしまうのでしょうね。
2020/5/30 11:43
「日時データがないGPXファイル」では日時が追加作成されません
お世話様になります。
ヤマレコ アプリ(Android)からダウンロードしたGPXファイルは日時が記録されていますが、GPX時間変更Ver3,vbsで日時を変更することができました。
1.しかし、Google Earth Proでルートを作成したKMLファイルをGPXファイルに変換したファイルは「日時の記録がありません」。GPX時間変更Ver3.vbsで実行するとエラーがなく変更ファイルが出力されますが、「日時の記録」がありません。
2.ポケツト旅行記アプリでKMLファイルを出力し、GPXファイルに変換。
  このファイルも日時の記録が出力されていません。著者に問い合わせましたが次期以降のバージョンで考慮して下さるとのことですが、未定です。
GPX時間変更Ver3.vbsで実行すると「ドロップされたのはファイルではありません」エラーになり困っております。
本来ならGPXファイルを添付すべきですが添付方法が解りませんでした。
宜しくお願いします。
2020/10/4 13:41
Re: 「日時データがないGPXファイル」では日時が追加作成され...
エラーになるのは恐らくヘッダにgpxの文字が入っていないためと思われます。

エラーになるGPXファイルをメモ帳かテキストエディタで開き、最初の行から<trk>までをコピーして、コメント欄にペーストしてヘッダの部分を見せてもらえないでしょうか。
2020/10/4 15:02
Re[2]: 「日時データがないGPXファイル」では日時が追加作成され...
早速、回答を頂き有難うございます。
1.日時データがないGPXファイル の最初の行から<trk>までのコピーです。
<?xml version="1.0" encoding="UTF-8"?>
<gpx version="1.0" creator="GPSBabel - https://www.gpsbabel.org" xmlns="http://www.topografix.com/GPX/1/0">
<time>2020-09-26T07:48:03.712Z</time>
<bounds minlat="47.010970000" minlon="8.519250000" maxlat="47.449210000" maxlon="9.513230000"/>
<wpt lat="47.449206200" lon="8.562135700">
<ele>0.000</ele>
<name>Swiss Kloten Flughofstrasse, Zurich International Airport </name>
<cmt>Swiss Kloten Flughofstrasse, Zurich International Airport</cmt>
<desc>Swiss Kloten Flughofstrasse, </desc>
Zurich International Airport </wpt>
<wpt lat="47.190019300" lon="8.852394800">
<ele>0.000</ele>
<name>Lachen, Lachen, Swiss</name>
<cmt>Lachen, Lachen,Swiss</cmt>
<desc>Lachen, Lachen, Swiss</desc>
</wpt>
<wpt lat="47.011745600" lon="9.512225200">
<ele>0.000</ele>
<name>Marche Heidilnd</name>
<cmt>Marche Heidilnd</cmt>
<desc>Marche Heidilnd</desc>
</wpt>
<trk>
<name>Swiss Kloten Flughofstrasse, Ruote Zurich International Airport to Marche Heidilnd </name>
<trkseg>
<trkpt lat="47.449210000" lon="8.562140000">
<ele>0.000</ele>
</trkpt>
<trkpt lat="47.448790000" lon="8.562410000">
<ele>0.000</ele>
</trkpt>
<trkpt lat="47.448780000" lon="8.562420000">
<ele>0.000</ele>
</trkpt>
<trkpt lat="47.448650000" lon="8.562520000">
<ele>0.000</ele>
2.エラーになるGPXファイルの最初の行から<trk>までのコピーです
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<gpx version="1.1" xmlns="http://www.topografix.com/GPX/1/1" xmlns:geotracker="http://ilyabogdanovich.com/gpx/extensions/geotracker" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd" creator="Geo Tracker 4.0.2.1750 for Android by Ilya Bogdanovich">
<metadata>
<name>白雲山 鳥居観音 紅葉観賞</name>
<desc>�^�C�g��:白雲山 鳥居観音 紅葉観賞
��ށF歩き旅
�n��F埼玉県飯能市
ポケット旅行記で記録
�|�P�b�g���s�L�_�E�����[�hURL�Fhttps://play.google.com/store/apps/details?id=t.hirata.tabilog</desc>
</metadata>
<wpt lat="35.877744" lon="139.185582">
<ele>0</ele>
<name>連慶橋から鳥居観音を望む</name>
<desc>大きい写真を表示</desc>
<extensions>
<geotracker:meta visited="0" />
</extensions>
</wpt>
<wpt lat="35.878088" lon="139.184721">
<ele>0</ele>
<name>白雲山鳥居観音</name>
<desc>大きい写真を表示</desc>
<extensions>
<geotracker:meta visited="0" />
</extensions>
</wpt>
<wpt lat="35.879352" lon="139.183002">
<ele>0</ele>
<name>白雲山 鳥居観音境内入口</name>
<desc>大きい写真を表示</desc>
<extensions>
<geotracker:meta visited="0" />
</extensions>
</wpt>
<wpt lat="35.879957" lon="139.182688">
<ele>0</ele>
<name>鳥居観音本堂</name>
<desc>大きい写真を表示</desc>
<extensions>
<geotracker:meta visited="0" />
</extensions>
</wpt>
<wpt lat="35.880034" lon="139.182546">
<ele>0</ele>
<name>鳥居文庫</name>
<desc>大きい写真を表示</desc>
<extensions>
<geotracker:meta visited="0" />
</extensions>
</wpt>
<wpt lat="35.880101" lon="139.182209">
<ele>0</ele>
<name>見事な紅葉</name>
<desc>大きい写真を表示</desc>
<extensions>
<geotracker:meta visited="0" />
</extensions>
</wpt>
<wpt lat="35.879748" lon="139.182201">
<ele>0</ele>
<name>白雲山を彩る見事な紅葉</name>
<desc>大きい写真を表示</desc>
<extensions>
<geotracker:meta visited="0" />
</extensions>
</wpt>

途中省略

</wpt>
<wpt lat="35.878971" lon="139.18047">
<ele>0</ele>
<name>玉華門</name>
<desc>大きい写真を表示</desc>
<extensions>
<geotracker:meta visited="0" />
</extensions>
</wpt>
<trk>
<name>経路</name>
<extensions>
<geotracker:meta>
<length>25257.11</length>
<duration>0</duration>
<activity>0</activity>
</geotracker:meta>
</extensions>
<trkseg>
<trkpt lat="35.877688" lon="139.185806">
<ele>0</ele>
</trkpt>
<trkpt lat="35.877724" lon="139.185722">
<ele>0</ele>
</trkpt>
<trkpt lat="35.877743" lon="139.185721">
<ele>0</ele>
</trkpt>
<trkpt lat="35.877753" lon="139.185718">
<ele>0</ele>
</trkpt>
<trkpt lat="35.877752" lon="139.185719">

お手数をおかけします、宜しくお願いします。
2020/10/4 23:08
Re[3]: 「日時データがないGPXファイル」では日時が追加作成され...
yaiiさん、

まず、基本的にこのスクリプトは時間データを書き換えるだけなので、元々時間データが入っていないGPXファイルには対応できていません。
そのためご質問の1のように時間データの無いファイルを処理しても、そのまま出力されてしまいます。
ご質問2については、なぜそうなるかは分かりません。GPXファイルでなければそのメッセージが出るはです。

時間データのないGPXフィルを何とかする手立てを考えてみたのですが、簡単に解決する手段はなく、スクリプト全体を作り直さなければいけないようです。
いずれ対策を考えたいと思いますが、申し訳ありませんが、いつまでにとは言えない状況です。

なお、他のソフトを使う手段としては、カシミール3Dを使う手段があります。
カシミール3Dでは時間変更はできませんが、時間データの無いファイルを読み込ませ、データの書き出しを行うと時間データが追加されたGPXファイルができます。
そのファイルをこのスクリプトで所用の時間に変更します。
ただし、ご質問2のファイルがカシミール3Dで読み込めるかは分かりません。
google mapで出力したGPXファイルは読み込めました。


追記:
メモ帳以外のテキストエディタをお使いで、エスケープシーケンスが使えるのならカシミール3Dを使わなくても、時間データの項目が追加できる事が判りました。
全ての「</trkpt>」を「<time>2020-10-05T07:31:33Z</time>\n</trkpt>」で置き換えるだけです。
(\nは文字列でなくて改行コードのエスケープシーケンスです)
そのファイルをスクリプトで時間変更します。
2020/10/5 16:27
出来ました!!
ご助言に従い、カシミール3Dを利用してGoogleEarth Proで
出力したGPXファイルはそのままで、質問2のエラーが出るファイルは「文字化け部分を修正」してカシミール3Dで読込み、GPXファイルを出力することが出来ました。
その後、guchi999さん作成の「時間変更Ver3.vbs」で日時を変更することが出来ました。スマホの「Relive」アプリでGPXファイルを読み込み、3D動画を作成することが出来ました! 時間情報が出力されいていないKMLファイルやGPXファイルの利用範囲が広がりました。
有難うございました!!
2020/10/6 14:52
Re: 出来ました!!
上手くできたようで何よです。
時間データの無いGPSファイルの事は、いずれ何らかの対応をしたいと思います。
ただ、何時になるかは分かりませんが。
2020/10/7 15:22
ツールを作り直しました
時間データや標高データの無いGPXファイルに対応するため、ツールを新たに作りました。

GPSログ時間書換え
https://www.yamareco.com/modules/yamanote/detail.php?nid=2873

Javascript で書いており、ブラウザ上で動きますので文字コードの問題も解消されると思います。
2020/11/4 15:28
ガーミンで記録を忘れた区間のトラックログ作成することが出来ました。有用なアプリを提供していただき、ありがとうございます。
さっそく、ヤマレコの記録のアップに使用させていただきます。
2021/10/3 19:25
TomaToOkiさん、お役に立てたようで何よりです。

このプログラムは単機能で、時間データの無いログに対応しておらず、ログの接続も少し面倒です。
記録を忘れたり、データが異常になったログを編集するためのツールなんてのも作っていますので、よろしければお試しください。

GPXログエディタ
https://www.yamareco.com/modules/yamanote/detail.php?nid=3089
2021/10/3 20:08
guchi999 さん

GPXログエディタ 見させて頂きます。

ヤマレコIDの登録は結構前なんですが、最近使い始めました。
ガーミンで記録したログと、記録忘れ区間を後からカシミールで作成したトラックログをヤマレコに登録したところ、前後が逆に表示されてしまい困っていたところguchi999さんのツールに出会いました。

記録忘れ区間のスタート・ゴールの時刻と場所は写真の記録から分かっていたので、それを入力して記録忘れ部分のログを修正しレコに再登録したところうまくいき感激しております。

こうしたツールはあるようでないんですよね。とても助けられました。
デジカメのデータ(画像を見れば場所が分かる、時刻は校正しておけば正確)とコース図があれば大体のログを作成できますよね。楽しそうなツールなのでいろいろ使えるんじゃないかと思っております。

ありがとうございました。
2021/10/4 9:20
TomaToOkiさん、

ログが乱れたときは、以前は私もカシミールでやってました。
カシミールは凄いソフトなのですが自分の目的とする作業には多少不満な所があり、ツールを作る気になったのです。
GPXログエディタはカシミールより動作が軽く(トラック編集はポイント数が多いとカシミールの方が軽いですが )自信作なので試してもらえると嬉しいです。
2021/10/4 10:49
guchi999さん

ありがとうございます。

GPXログエディタ 試させて頂きます。

よろしくお願いします。
2021/10/5 6:37
プロフィール画像
ニッ にっこり シュン エッ!? ん? フフッ げらげら むぅ べー はー しくしく カーッ ふんふん ウィンク これだっ! 車 カメラ 鉛筆 消しゴム ビール 若葉マーク 音符 ハートマーク 電球/アイデア 星 パソコン メール 電話 晴れ 曇り時々晴れ 曇り 雨 雪 温泉 木 花 山 おにぎり 汗 電車 お酒 急ぐ 富士山 ピース/チョキ パンチ happy01 angry despair sad wobbly think confident coldsweats01 coldsweats02 pout gawk lovely bleah wink happy02 bearing catface crying weep delicious smile shock up down shine flair annoy sleepy sign01 sweat01 sweat02 dash note notes spa kissmark heart01 heart02 heart03 heart04 bomb punch good rock scissors paper ear eye sun cloud rain snow thunder typhoon sprinkle wave night dog cat chick penguin fish horse pig aries taurus gemini cancer leo virgo libra scorpius sagittarius capricornus aquarius pisces heart spade diamond club pc mobilephone mail phoneto mailto faxto telephone loveletter memo xmas clover tulip apple bud maple cherryblossom id key sharp one two three four five six seven eight nine zero copyright tm r-mark dollar yen free search new ok secret danger upwardright downwardleft downwardright upwardleft signaler toilet restaurant wheelchair house building postoffice hospital bank atm hotel school fuji 24hours gasstation parking empty full smoking nosmoking run baseball golf tennis soccer ski basketball motorsports cafe bar beer fastfood boutique hairsalon karaoke movie music art drama ticket camera bag book ribbon present birthday cake wine bread riceball japanesetea bottle noodle tv cd foot shoe t-shirt rouge ring crown bell slate clock newmoon moon1 moon2 moon3 train subway bullettrain car rvcar bus ship airplane bicycle yacht

コメントを書く

ヤマレコにユーザー登録いただき、ログインしていただくことによって、コメントが書けるようになります。
ヤマレコにユーザ登録する