GPS 轨迹的最高速度为什么会离谱到不可能
一趟记录哪怕有点毛糙,距离和运动时长通常还算靠谱,偏偏最高速度冒出个时速六十公里的数字,而你从头到尾都没离开过那条步道。不是走得快,是同一份数据被问了另一种问题——而最高速度这种问法,恰好没有一点余地去容错。
先说结论
GPS 轨迹本身不带测速仪。所有速度都是事后算出来的,靠的是每个记录点自带的两样东西——位置和时间戳:拿相邻两点之间的距离,除以两点之间的时间差。距离和运动时长是把这样的算法在整条路线上一路加总起来的结果,一段算错了,也只占一个很长总数里的一小份。最高速度的算法正好反过来:成千上万次除法里,直接挑出最大的那一个报给你看。只要有一个点稍微偏了一点,又恰好跟邻近的点隔得很近,这次除法就能算出一个"不可能"的数字,而其余的记录可以什么问题都没有。
一次除法为什么没地方藏拙
想象两个相隔一秒记录下来的相邻点。如果第二个点真的离第一个点二十米,换算成时速是走路或跑步都说得通的速度。可要是信号短暂乱了一下——跟地图上常见的那种尖刺是同一回事——把第二个点记到了四十米开外而不是二十米,距离其实只是翻了一倍,但除的还是同样的一秒。位置上一个不起眼、很寻常的偏差,到了速度这一步就被放大成一个离谱的数字,因为除以极短的时间,本身就是在放大压在它上面的那个误差。
距离的总数不会遇到这种放大。成千上万段间距加在一起,绝大多数都准,一段偏大的间距会被周围稀释掉。最高速度从设计上就跳过了这个稀释的过程——它的任务就是把整份文件里跑得最快、或者说算出来最猛的那一瞬间单独挑出来报给你,而这一瞬间,恰恰最容易就是一个偏离点造出来的。
这个偏离的点到底是怎么冒出来的
成因跟别的 GPS 怪现象没什么两样,只是这次刚好撞上了算法最不肯将就的那一刻。
- 附近某个面反射了一下——停着的车、一块湿岩壁、金属屋顶——反射信号比直接到达的信号晚了那么一瞬间,把某一次定位往外顶了不该有的距离。
- 一颗卫星一下子被山脊、建筑物挡住,或者被转身的自己挡了一下,接收机能用的卫星组合一时收窄,只剩很窄的一小片天空可用。
- 手机刚从彻底看不见天空的地方——树林深处、地下通道、楼宇之间的窄缝——出来,定位正在重新计算,一时冲过了头,再过一两个点才稳回正常水平。
这几种情况,都只需要把一个点顶偏那么几米。摊在整条轨迹上,这点误差根本不会被人注意到;可一旦被相邻两点之间那一两秒去除,就足以算出一个徒步或骑车都不可能达到的速度。
这种情况多半出现在哪里
离谱的最高速度,多半都集中在接收机天空视野本来就容易变差的那几个时段:刚开始记录的头一分钟左右,接收机还没稳定下来;树林特别密或者楼宇之间特别窄的一段,反射干扰比较常见;还有一时暂停后重新开始记录的那一刻,如果暂停的地方天空视野比走动时更差。
这个数字能说明什么,不能说明什么
离谱的最高速度说的只是某一瞬间的事,不代表整趟徒步或骑行有什么问题。距离、运动时长、配速都是把整条轨迹加总出来的结果,同一个把最高速度顶飞的偏离点,通常只会让这几个数字动一丁点,甚至纹丝不动。把最高速度当成 GPS 轨迹里最容易被带偏的那个数字就好,其余的记录,往往比这一个数字看起来的要靠谱得多。
TrailCam 是怎么做的
TrailCam 为每一条记录的路线显示距离、运动时长、配速和爬升——徒步也好,骑行也好,都是这四个数字,都是把整条轨迹加总出来的结果,而不是单挑某一瞬间报给你看。它不显示最高速度这一项。把一条路线导出成 GPX 1.1 或 CSV 是可选的 TrailCam Pro 里的功能,导出的文件里带着的点,跟别的服务用来算最高速度的是同一批点——所以如果拿这份文件到别处去算最高速度,上面说的这些就是你可能会看到的效果。TrailCam 免费下载。
常见问题
- 最高速度离谱,是不是说明这次 GPS 记录坏了?
- 不是。多数情况下,只是成千上万次定位里的某一个点,因为一次短暂又寻常的信号干扰稍微偏了一点。整条轨迹以及距离、运动时长这些总数,通常都不会受到明显影响。
- 为什么最高速度比距离更不靠谱?
- 距离是把整条轨迹上所有点与点之间的间距加在一起,一段偏大的间距只占很长总数里的一小份。最高速度正好相反,它专门从所有点对点的除法结果里挑出最大的那一个报给你,没有办法把一个偏离点稀释掉。
- 真的跑得很快的那一刻,也会算出很高的最高速度吗?
- 会。真的冲刺一下、自行车下坡冲得猛,或者顺风给力,都能老老实实算出一个很高的最高速度。光看数字没法分辨是哪种情况;但如果只有孤零零的一瞬间冒出一个离谱又刚好凑整的数字,前后完全对不上,那多半是偏离点闹的,不是真的跑出来的。
记录你自己的轨迹
TrailCam 是一款 iPhone 上的 GPS 轨迹记录 App,会把沿途拍的视频、照片和语音钉在你拍下它的那个位置,并支持导出成 GPX 1.1 或 CSV。免费下载。