GPSロガーの日付がずれる問題を Claude に解析してもらった
きっかけ
2026年9月26日に美浜サーキットへ行ったとき、昔から使っている Wintec の GPSロガー「WBT-201」でログを記録しました。
付属の変換ソフト「TimeMachineX」でGPSロガーからログを取り出すと、日付が2007年2月10日になってしまいます。
ちょっと前からこの不具合には気付いていました。
Wintec から修正プログラムが出ていないかと調べてみると、既にリンクが見つからない状態になっていました。
メーカーの対応というものはもう諦めるしかありません。
アプリ自体の動作は今まで通りで特に問題ないように見えるのですが、ログの日付が明らかにおかしい。
時刻は合っているのに日付だけがずれている状態なので、何故だろうと思っていました。
ファームウェアの問題であれば、もう手の出しようがないところですが、TimeMachineX側の処理であれば代替手段を用意できるかもしれません。
今まではNMEA ファイルに変換後、日付情報を書き換えていましたが、そのままではチェックサムが合わないので単純な置換では駄目でした。このためチェックサムを書き換える変換プログラムを作って対応していました。
それなりに面倒なので、Claude に改善できないか相談してみました。
【TimeMachineX で日付が2007年になっている画面】

修正前のNMEAファイル

tk2ファイルのフォーマットを解析してもらう
WBT-201 のログは、「.tk1」というファイルに出力したあとで、1トラック1ファイルに分割した「.tk2」という拡張子のファイルへ変換します。tk2からNMEAなどの別フォーマットに変換することができます。
tk1やtk2ファイルの仕様はどこにも公開されていないようなので、
TimeMachineX でtk2ファイルを作ったあとに、 NMEAファイルへに変換し、そこから日付とチェックサムを修正したファイルを作成して、それらを1セットにしてClaudに読み込ませた上て、「tk2ファイルのフォーマットを解析できますか」と聞いてみました。

Claude はファイルの中身を16進数で調べて NMEA ファイルと突き合わせ、構造を特定してくれました。
先頭の1024バイトがヘッダで、その後ろに1点16バイトの記録(日時・緯度・経度・高度)が並んでいる形式ということが判明しました。
全4411点で、緯度・経度・高度が NMEA ファイルの内容と一致することも確認してくれました。
速度と進行方向はtk2ファイルには含まれていなくて、TimeMachineX がNMEA変換時に前後の点から計算していることも分かりました。
原因は GPS の週番号ロールオーバー
日付がずれる原因は「GPS週番号ロールオーバー」にあるようです。
GPS の日付は週の番号で管理されていて、その番号が1024週(約19.6年)で一周してしまうため、古い機器では日付が1024週前に戻ってしまうことがあるようです。
実際、ログの日付に1024週(7168日)を足すと、正しい日付と一致するようです。
時刻は正しいので、日付に7168日足すだけで正しい日時情報に直せるということになります。
なおNMEA の日付は規格上 UTC なので、日本時間から-9時間の日時が記録されます。
変換ツールを作ってもらう
tk2のフォーマットが分かれば、正しいNMEAに変換することができるはずです。
「Windows向けの変換Exeを作成してください」とだけ頼んだところ、自分には馴染みのないGo という言語を使って exe を作ってくれました。
自分はC#のほうが扱いやすいので、C# に変更できないか聞いてみると、サクッと作ってくれました。
ちなみに何故Go を使ったのかを尋ねると、作業環境に最初から入っていたからで、特別な理由は無いとの回答でした。Go言語を入れた記憶はないのですが。。。
C# コンパイラでのビルドは build.bat をダブルクリックで行います。
できたツールは、tk2 ファイルを exe にドラッグ&ドロップするだけで、日付を直した NMEA ファイルを作ってくれます。
NMEA ファイルと全行を照合してもらったところ、日付・時刻・高度・チェックサムはすべて一致しました。

日時が修正されたNMEAファイル

※緯度経度の最後の1桁が異なる点がありましたが、これはTimeMachineX 側の計算の丸め誤差であり、今回のツールの方が正確(差は最大2mm程度)とのことでした。
