なぜ GPX ファイルは、長く記録するほど大きくなるのか
GPX ファイルは、山行の最後にまとめて計算される 1 つの数値ではなく、道中ずっと記録され続けた点の長いリストだからです。ファイルサイズは、実質そのリストをテキストとして書き出したものにすぎません。長く記録すればリストは長くなります。見落とされている圧縮の工夫があるわけでも、設定を間違えているわけでもありません。正直に長く記録すれば、ファイルが大きくなるのはむしろ当然の結果です。
結論から
GPX のトラックは点の連なりで、それぞれの点は山行を通してほぼ同じ間隔で記録されます。記録時間が 2 倍になれば、ほかの条件が同じなら点の数もおおよそ 2 倍になり、それぞれの点がほぼ一定の小さなバイト数をファイルに積み上げていきます。ファイルサイズは記録していた時間の長さに比例するのであって、歩いた距離や道のりの面白さとは関係ありません。
点 1 つに実際どれだけコストがかかっているか
GPX はコンパクトなバイナリ形式ではなく、プレーンテキストの XML です。つまりビットを詰め込むのではなく、すべての点を読める形のタグと数字として書き出します。1 つのトラックポイントには、たいてい緯度・経度・標高・時刻が含まれ、それぞれが独自のタグと周辺の構造に包まれています。積み上げると、1 点あたりだいたい 100 バイト程度——それ単体では大した量ではありませんが、トラック中のすべての点で繰り返されます。
点数が数百程度の短い散歩なら、ファイルは数十キロバイト程度になることが多いです。点数が数千に達する長い一日なら、そのぶん比例して大きくなります。どちらも今どきのスマートフォンからすれば決して大きな数字ではなく、GPX のファイルサイズが実際の使用で問題になることはめったにありません。ただ、何が数えられているかさえ分かれば、記録時間とファイルサイズの関係はすぐに見えてきます。
なぜ距離より記録時間のほうが効くのか
長いルートだからファイルが大きくなる、と考えたくなりますが、より直接効いているのは歩いた距離ではなく時間です。記録アプリは、下り坂で速く進んでいるときも、急な登りでゆっくり動いているときも、時計の進みに対してほぼ一定の間隔で点を記録します。同じ長さの時間をかけた 2 つの山行なら、片方がもう片方の 2 倍の距離を歩いていたとしても、点の数もファイルサイズも似たようなものになります。ずっと数えられていたのは経過した時間であって、移動した距離ではないからです。
これは、アプリが休憩中に記録を止めるなら、長い昼休憩をはさんだ山行のほうが、休憩なしの短い山行よりファイルが小さくなりうる理由でもあります。一時停止している間は新しい点が記録されないというのは、獲得標高や行動時間に何も加算されないのと同じ仕組みです。ファイルが大きくなるのは記録が実際に動いている間だけであって、壁の時計が進んでいる間ずっとではありません。
あまり影響しないもの
- 地形の急さ——標高は、すでにある点にもう 1 つ数字を足すだけで、点そのものが増えるわけではありません。
- ルートの曲がりの多さ——GPX のトラックは、まっすぐな区間とくねくねした区間を区別しません。どちらでも同じ間隔で点を記録し続けるだけです。
- 選んだアクティビティの種類——これは記録に貼るラベルであって、点を記録する頻度を変えるものではありません。
- ループか往復かという形——ファイルサイズは記録していた時間に沿うのであって、地図上に描かれた形には沿いません。
今どきの山行で、実際に容量を食っているもの
トラック——座標のリストそのもの——は、それだけを見れば、たとえ長い山行であっても控えめなテキストベースのファイルにとどまります。単純な数字とタグは、絶対量としてはごくわずかにしかならないからです。一方、ルートの途中に残した写真や動画、音声メモは、まったく別物で、バイト数で見ればトラック本体よりはるかに大きくなります。動画クリップ 1 本だけで、その日 1 日分の GPS の点をすべて合わせたより重いことも珍しくありません。ある山行の保存データが重く感じるとき、その原因がトラック側にあることはほとんどなく、たいていは紐づいたメディアのほうです。
よくあるつまずき
- ファイルが大きいほど正確、あるいは詳細なトラックだと思い込む——たいていは記録時間が長いというだけで、記録の質がよいという意味ではありません。
- 距離からファイルサイズを予想しようとする——点は距離ではなく時間に対して記録されるので、記録時間のほうが近い目安になります。
- ファイルサイズを、山が険しかったことや道が曲がりくねっていたことのせいにする——どちらも単独では点を増やしません。増やすのは、記録が実際に動いていた時間だけです。
- 大きな GPX ファイルは開きにくい、アップロードしにくいと心配する——長い一日分のトラックでも中身はプレーンテキストで、今どきの基準からすれば小さいものです。ある山行の保存データを重くしているのは、たいてい添付された写真や動画のほうです。
TrailCam でどうなるか
TrailCam は、動いている間ずっとルートをトラックとして記録し、一時停止すればそのぶん記録も止め、求めたときに標準的な GPX 1.1 ファイルとして書き出します。トラック自体は、山行がどれだけ長くても控えめな書き出しのままです。長い山行で実際に容量の大部分を占めるのは、道中に残した動画クリップや写真、音声メモのほうです。TrailCam はダウンロード無料です。
よくある質問
- 長く歩けば GPX ファイルは必ず大きくなりますか?
- おおむねそうです。記録時間が長いほど記録される点の数が増え、それぞれの点がどんな山行であってもほぼ同じだけファイルに加算されるからです。
- 起伏が多い、あるいは曲がりくねったルートだとファイルは大きくなりますか?
- それ単体ではあまり変わりません。点は地形の急さや曲がりの多さではなく、経過時間に対してほぼ一定の間隔で記録されるため、標高や曲がりはファイルサイズにほとんど影響しません。
- 保存された山行の中で、実際に一番容量を取っているのは何ですか?
- たいていはトラック本体ではありません。ピンで留めた動画クリップや写真、音声メモのほうが、座標だけのプレーンテキストである GPX ファイルよりバイト数ではるかに大きくなります。
自分のルートを記録する
TrailCam は iPhone 用の GPS ルート記録アプリです。動画・写真・音声メモを撮ったその地点に紐づけて保存し、GPX 1.1 または CSV で書き出せます。ダウンロードは無料です。