TrailCam

指南

怎么用 GPX 文件算出徒步的分段配速

徒步结束后显示的那一个配速,是个平均数,而平均恰恰把这趟徒步真正有意思的细节抹掉了——轻松走完的第一公里,和中途因为爬坡慢下来的那一段。GPX 文件里有把这个形状找回来所需要的一切,因为跟配速这个数字不一样,GPX 从一开始存的就不是平均值。它存的是每隔几秒钟记一次、带时间戳的点,平均值是后来才从这些点里算出来的东西。把徒步切成一段一段来算,用的还是同一批点,只是用法不一样,不需要任何文件里本来没有的信息。

先说结论

按顺序把记录点一个个过一遍,把相邻两点之间的距离累加起来,直到累计距离跨过整整 1 公里或 1 英里的那一刻。这一刻的时间戳,减去上一次跨过整数距离时的时间戳,就是这一段的分段配速。徒步里每跨过一个整数距离就重复一次,最后剩下不到一整公里的那一小段单独算作最后一段。这一切只需要每个点都有坐标和时间戳——普通的 GPX 轨迹本来就是这么记的,不需要为了算分段专门多记点什么。

分段配速到底是什么

分段配速用的是跟整体配速一样的算法——时间除以距离——只不过不是整趟徒步算一次,而是每公里或每英里单独算一次。一趟整体配速是每公里 15 分钟的徒步,拆开看可能是 13 分、14 分、19 分、14 分这样起伏的四段,那段最慢的 19 分钟,往往正好对应着一段爬坡,或者是为了拍照长时间停下的地方。整体配速不过是这四个数字按距离加权算出来的平均值——当摘要看很准确,但没法告诉你这趟徒步到底哪一段最累,因为"求平均"这个动作本身,就是把这条信息抹掉的那一步。

GPX 文件能做到、单独一个配速数字做不到的事

一个配速数字,或者 CSV 里只有一列配速的一行,都是算完之后剩下的结果。GPX 轨迹从来就不存配速,也不存分段配速这种数字。它存的是最原始的材料,按记录顺序排好:每一个点各自的经度、纬度、时间戳。分段配速是这份点列表事后能被加工出来的东西之一,跟爬升的算法很像——爬升也是顺着同一份点列表往下走,把相邻两点的海拔拿来比较,一点点累加出来的总数。这两个数字都不是文件里现成存着的,而是每次都要重新从点列表里算一遍,这也正是为什么一趟徒步只占一行的汇总导出,两个都给不出来。

拿真实数字算一遍

假设一次记录从 10:00:00 开始,1 公里处的时间戳是 10:14:00,2 公里处是 10:29:20,3 公里处是 10:47:35。把每个时间戳减去前一个,就得到三段配速:第一公里 14 分钟整,第二公里 15 分 20 秒,第三公里 18 分 15 秒——越走越慢,多半是因为后半段爬坡变陡了,而不是记录出了什么问题。同样这 3 公里,整体配速算下来是 47:35 ÷ 3 ≈ 每公里 15 分 51 秒——这一个数字确实是那三段的老实平均,但完全看不出到底是哪一公里真正难走。

唯一的小麻烦:点很少刚好落在整数距离上

GPS 接收器是按时间记点的——大概每一两秒记一个——不是按距离记点,所以累计距离刚好等于 1.000 公里的那一瞬间,通常并没有点恰好落在那里。实际找跨越时间的做法,是找出跨过那个整数距离的前后两个相邻点——一个还没到,一个刚过——然后按这个整数距离落在两点之间的比例,在两个时间戳之间做插值。假设 0.996 公里处的点记录时间是 10:13:57,下一个 1.009 公里处的点是 10:14:10,那 1 公里这个点大概落在两点距离差的十分之四处,估算出来的跨越时间大约是 10:14:02——这是一段很短的插值,不是瞎猜,而且放在整整一公里的尺度上看,这点误差基本不会把算出来的分段配速带偏。

自己动手算,还是交给别的工具

如果只是几公里的短途徒步,靠手算,或者在表格软件里顺着累计距离和时间那两列往下拖,虽然琐碎,但纯粹是体力活,花不了几分钟。要是徒步长达几十公里、点数上千,同样的算法就变成了脚本或者 GPX 分析软件最擅长干的那种重复劳动——在每一个跨越点上做一次前面说的插值,只是换成机器一瞬间完成,而不是人一个个盯着算。不管选哪种办法,真正需要的只有一样东西:每个点都带时间戳的文件。单纯的汇总总数从一开始就没有这份信息,再多的软件和耐心也变不出分段配速来。

明明速度没变,某一段配速却看着变慢了

  • 休息的时候忘了暂停记录,那段站着不动的时间会原样落进恰好经过的那一段里,让那一段配速看起来比周围慢得多,其实走路的速度根本没变。
  • GPS 信号短暂变乱或丢失,可能让某一段记录到的距离稍微偏多,或者让两次真正的跨越之间的时间被拉长,这跟实际走路快慢没有关系。
  • 真的是一段又陡又难走的路,往往才是最常见、也最没什么好奇怪的解释——分段配速本来就是为了把这种真实的起伏显出来,而不是拿来找记录的毛病。

看到某一段配速偏慢时,先看看那一段的路线或者海拔曲线,通常比直接怀疑记录出问题更靠谱。

TrailCam 在这里能帮上什么

TrailCam 只要在记录,就会一直存下带时间戳的点,并且能把一条路线——单次徒步,或者整段历史——导出成 GPX 1.1 文件,这正是这一整套计算的起点。App 本身在每次徒步后显示的是一个整体配速,而不是一张按公里列出的分段配速表,所以要算出分段配速,需要按这篇讲的方法,把导出的点放到表格软件或专门的工具里自己处理一遍。导出是可选的 TrailCam Pro 里的功能,App 本身免费下载。

常见问题

GPX 文件里是不是直接存着分段配速的时间?
不是。GPX 轨迹里存的只是每个记录点的时间和位置,仅此而已——分段配速跟爬升、整体配速一样,都是事后从这份点列表里算出来的,并不是文件里现成存着的数字。
用 CSV 导出代替 GPX,能算出分段配速吗?
只有当这份 CSV 给每个记录点都留着时间和距离,而不是一趟徒步只汇总成一行的时候才行。专门用来列汇总数据的 CSV——一趟徒步一行,只有一列整体配速——已经把算分段配速需要的逐点信息丢掉了。
同样是平坦好走的两公里,为什么分段配速还是不一样?
忘了暂停记录就站着休息、GPS 信号短暂乱了一下,或者这段路实际走起来没有数字看着那么轻松,都比距离算错更常见。就算是两段都很平坦的路,配速有点小差别也很正常——没有人能一趟徒步从头到尾保持完全一样的速度。

记录你自己的轨迹

TrailCam 是一款 iPhone 上的 GPS 轨迹记录 App,会把沿途拍的视频、照片和语音钉在你拍下它的那个位置,并支持导出成 GPX 1.1 或 CSV。免费下载。

在 App Store 下载