TrailCam

ガイド

GPX ファイルから区間ごとのペース(スプリット)を計算する方法

山行の最後に表示される 1 つのペースは平均であり、平均はその山行を実際におもしろくしていた細部——すぐに終わった歩きやすい最初の 1 km や、途中でペースを落とした登り——を消してしまいます。GPX ファイルにはその形を取り戻すだけの情報が入っています。というのも GPX ファイルは、ペースの数字とは違って、最初から平均を保存しているわけではないからです。保存されているのは数秒に一度の時刻付きの点であり、平均はそのすべてからあとになって計算されるものにすぎません。山行を距離ごとの区間に区切るのも、同じ点の並びを別の形で使うだけのことで、ファイルにすでに入っていない情報は何一つ必要ありません。

結論から

記録された点を順番にたどりながら、隣り合う点同士の距離を足し合わせていき、その累積距離が 1 km や 1 マイルを超えた瞬間を見つけます。そこでの時刻から、ひとつ前の区切りを超えた時刻を引けば、それがその区間のスプリットです。これを山行の中の区切りごとに繰り返し、最後に残った半端な距離はそれだけで最後の区間として扱います。必要なのは各点の座標と時刻だけで、これはふつうの GPX トラックにもともと入っている情報であり、スプリットのために特別な記録を追加する必要はありません。

スプリットとは何か

区間ごとのペースは、全体のペースと同じ計算——時間 ÷ 距離——を、山行全体で一度ではなく 1 km や 1 マイルごとに区切って行ったものです。たとえば全体のペースが 1 km あたり 15 分だった山行でも、区間ごとに見ると 13 分、14 分、19 分、14 分というふうにばらついていることがあり、遅い区間はちょうど登りにかかっていた場所や、写真を撮るために長く立ち止まった場所と重なっていたりします。全体のペースはこの 4 つの数字を距離で重み付けした平均にすぎず、要約としては正確でも、山行のどの部分が実際にきつかったのかまでは教えてくれません。平均を取るという操作自体が、その情報を消してしまうからです。

GPX ファイルにはできて、ペース 1 つの数字にはできない理由

ペースの数字や、ペースの列が 1 つだけある CSV の行は、すでに計算が終わったあとの結果です。一方 GPX トラックは、そもそもペースやスプリットという数字を最初から持っていません。持っているのは、緯度・経度・時刻という生の材料が、記録された順に並んでいるだけです。スプリットは、その点の並びをあとから加工して取り出せるものの一つで、これは獲得標高が、同じ点の並びをたどりながら隣り合う点の標高を比べて積み上げていく合計であるのとよく似ています。どちらの数字もファイルの中にそれ自体として存在しているわけではなく、点の並びから毎回計算し直されるものです。だからこそ、山行 1 件につき 1 行というまとめ方をした要約用のエクスポートからは、どちらも取り出せません。

実際の数字で計算してみる

記録が 10:00:00 に始まり、1 km 地点を 10:14:00 に、2 km 地点を 10:29:20 に、3 km 地点を 10:47:35 に通過したとします。それぞれの通過時刻から直前の通過時刻を引くと、1 km 目は 14 分ちょうど、2 km 目は 15 分 20 秒、3 km 目は 18 分 15 秒という 3 つのスプリットが出てきます。だんだん遅くなっているのは、記録に何か問題があったからというより、後半に向けて登りが強くなっていったと考えるのが自然です。同じ 3 km 全体のペースを計算すると 47:35 ÷ 3 ≈ 1 km あたり 15 分 51 秒になりますが、この 1 つの数字は 3 つのスプリットの正直な平均ではあっても、実際にどの 1 km がきつかったのかは何も語ってくれません。

1 点だけの引っかかり:区切りにぴったり点が乗ることはまずない

GPS 受信機は、距離の間隔ではなく時間の間隔——だいたい 1 秒から数秒に 1 回——で点を記録しているため、累積距離がちょうど 1.000 km になった瞬間に点が記録されていることはまずありません。実際に区切りの通過時刻を求めるには、区切りをまたぐ 2 つの連続した点——1 つは手前、1 つは先——を見つけ、それぞれの距離が区切りからどれだけ離れているかに応じて、2 つの時刻のあいだを補間します。0.996 km 地点に記録された点が 10:13:57、次の 1.009 km 地点の点が 10:14:10 だったとすると、1 km の区切りはこの 2 点の距離の差のおよそ 10 分の 4 のところにあり、通過時刻はおよそ 10:14:02 と推定できます。これは当て推量ではなく短い補間であり、1 km という長さ全体で見れば、結果として出てくるスプリットをほとんど動かさない程度の誤差です。

自分で計算するか、何かに任せるか

数 km 程度の短い山行なら、累積距離と時刻の列を表計算ソフトでたどりながら手作業でこれをやっても、地道ではあるけれど数分で終わる機械的な作業です。何十 km もあり点の数も数千にのぼる長い山行になると、同じ計算は、スクリプトや GPX 解析用のソフトウェアがまさに得意とする類の、繰り返しの多い作業になります。やることは上で説明した補間を区切りごとに行うだけで、人が目でやるか機械が一瞬でやるかの違いにすぎません。どちらの方法を取るにしても、実際に必要なのは各点に時刻が記録されているファイルだけです。単なる合計値の要約にはその情報が最初から入っていないので、どれだけソフトウェアや根気があってもスプリットを取り出すことはできません。

実際には変わっていないのに、あるスプリットだけ遅く見える理由

  • 一時停止せずに記録を続けたまま休憩を挟むと、その止まっていた時間はたまたま重なった区間にそのまま入り込み、その区間だけ周りに比べて極端に遅く見えることがあります。
  • 一時的に GPS が乱れたり途切れたりすると、ある区間の距離がわずかに水増しされたり、本当の 2 つの通過点の間の時間が実際より広がったりすることがあり、これは実際に歩く速さが変わったこととは関係ありません。
  • 本当に急な区間や歩きにくい区間だったというのが、たいていの場合はいちばんありふれた、面白くも何ともない説明です。スプリットは、記録の不具合ではなく、こうした本当の変化を浮かび上がらせるために計算するものです。

遅いスプリットを正しく読み解くには、まず記録に何か問題があったと決めつける前に、その区間のルートや標高プロフィールを見てみるのが早道です。

TrailCam との関わり

TrailCam は記録している間、時刻付きの点をずっと記録し続け、ルートを 1 件でも履歴全体でも GPX 1.1 として書き出せます。これはまさに、この一連の計算の出発点になるファイルです。アプリ自体が山行ごとに表示するのは 1 km ごとのスプリット一覧ではなく、山行 1 件につき 1 つのペースの数字なので、スプリットまでたどり着くには、この記事で説明したように、書き出した点を表計算ソフトや専用のツールで自分で処理する必要があります。書き出しは任意の TrailCam Pro に含まれる機能で、アプリ自体のダウンロードは無料です。

よくある質問

GPX ファイルにはスプリットの時間がそのまま入っていますか?
いいえ。GPX トラックに入っているのは、記録された各点の時刻と位置だけです。獲得標高や全体のペースと同じように、スプリットもその並びからあとで計算されるものであり、ファイルの中にそれ自体の数字として存在しているわけではありません。
GPX の代わりに CSV の書き出しからスプリットは出せますか?
山行 1 件につき 1 行という要約ではなく、記録された各点に時刻と距離が入っている CSV であれば可能です。合計値を並べるための CSV——1 回の山行につき 1 行、全体のペースの列が 1 つだけあるようなもの——は、スプリットの計算に必要な点ごとの情報をすでに失っています。
平坦で歩きやすい区間なのに、2 つの km でスプリットが違って見えるのはなぜですか?
一時停止せずに立ち止まった、GPS が一時的に乱れた、あるいは実際に歩いてみると数字ほど楽ではなかった、といった理由のほうが、距離の誤差よりもずっとありそうです。平坦な区間同士でも、小さいながら本当にペースが違うことはごく普通のことでもあります。誰でも、山行のあいだずっと完全に一定の速さで歩いているわけではありません。

自分のルートを記録する

TrailCam は iPhone 用の GPS ルート記録アプリです。動画・写真・音声メモを撮ったその地点に紐づけて保存し、GPX 1.1 または CSV で書き出せます。ダウンロードは無料です。

App Store でダウンロード