TrailCam

指南

GPX 文件里有没有记录你的速度

没有,至少不是以专门字段的形式存在。GPX 的一个轨迹点由经纬度、通常还有海拔、通常还有时间戳组成——这是格式给它的固定清单,速度不在里面。但这不代表速度就没法从 GPX 文件里知道:跟那些文件本身真的没办法记下来的东西(比如天气)不一样,速度随时都能事后算出来,因为算速度要用到的两样东西——点与点之间的距离、时间戳之间的时间差——本来就已经在文件里了。

简单说

GPX 1.1 给轨迹点定义的是一组固定字段,速度不在其中。一个点带的是经纬度,通常还有海拔,通常还有时间戳——不管这个文件是手机录的、专用 GPS 设备录的,还是 GIS 软件生成的,都是这几样。如果打开一份 GPX 文件之后,地图或图表上出现了速度这个数字,那它不是从文件里直接读出来的,而是打开它的那个 App 自己算出来的。

一个轨迹点实际带着什么

位置、海拔、时间这三样覆盖了几乎所有读取 GPX 文件的软件都需要的内容,也是这个格式从最初发布起就一直带着的字段。正是这份短而固定的清单,才让 GPX 能在完全不同的软件之间流通——Strava、Garmin Connect、Komoot 和各种 GIS 软件都能打开同一份文件,而且对每个字段的含义达成一致,因为需要大家统一意见的字段数量本来就被特意控制得很少。

速度为什么不需要专门的字段

GPX 文件确实有一些东西是压根没办法记的——比如徒步当天的天气,它跟位置、时间之间没有任何关系,后面的读取程序没法靠推算把它还原出来。速度不一样。相邻两个点之间的距离,以及这两个点时间戳之间的间隔,这两样都已经在文件里了,速度不过是拿一个去除另一个。要是再单独给速度留一个字段,等于把一个随时能从文件已有数据里重新算出来的数字又存了一遍。所以这个格式干脆把速度当成事后需要时再算的东西,而不是记录当时就要写进去的东西。

同一份文件,为什么会算出两个不一样的速度

正因为速度从来不是存好的,读取的时候也就不是「读出来」,而是每次重新算一遍。任何显示速度的 App,做的都是在同一批原始点位上跑自己的一套计算,计算方式上的小差别就会让答案不一样,哪怕底层文件根本没变过。有的 App 只看相邻两个点,间隔一两秒就直接算一个瞬时速度;另一些 App 会先把几个点放在一起做平滑处理,好压掉两个靠得很近的点之间难免带着的 GPS 噪声抖动。两边都不是在读文件里存好的数字,而是在同一份位置和时间数据上做算术,算出来的结果就有点差别——这也是同一份 GPX 文件在不同 App 里,速度或配速的数字会不一样的一大原因。

速度唯一可能藏身的地方

GPX 允许在点上挂一个可选的 extensions(扩展)区块,专门用来放核心字段里没有定义的那类数据,有些设备确实会把速度读数写进去。不过 extensions 区块只有认得那个命名空间的软件才能正确读懂,换一个 App 打开同一份文件,完全可以直接跳过它,不算出错。塞在 extensions 里的速度值,没法保证从写下它的那个设备或 App 换到别处打开时还能原样读出来。

TrailCam 在这里的角色

从 TrailCam 导出的轨迹是一份干净的 GPX 1.1 文件——每个点都带着位置、海拔、时间,都是任何软件已经知道怎么读的字段,不会额外塞一个只有 TrailCam 自己才能正确读回来的速度扩展。配速和距离是 TrailCam 自己用记录下来的点位算出来、显示在 App 里的,跟任何一个 App 算这些数字的方式一样;导出的文件本身只带着底下那条原始轨迹。GPX 和 CSV 导出是可选的 TrailCam Pro 升级里的功能,App 本身免费下载。

常见问题

GPX 文件里存的是配速而不是速度吗?
也不是,道理一样。配速也是事后算出来的,算法是距离除以移动时间,GPX 规格不管哪个版本都没有给它留字段。配速是打开文件的那个 App 或表格软件自己算的,不是存在文件里的。
既然速度不在 GPX 文件里,导入之后 App 是怎么画出速度曲线的?
是算出来的。App 按顺序遍历轨迹点,算出每相邻两点之间的距离和时间差,拿一个除以另一个,再把结果画成曲线。只要打开的 GPX 文件没有速度扩展,每次都会这样重新算一遍——曲线是从位置和时间现算出来的,不是从存好的数字里取出来的。
我能自己往 GPX 文件里加一个速度值吗?
只能非正式地塞进 extensions 区块里,而且没法保证除了写这个值的那个软件之外,别的软件也能正确读回来。要是希望这个数字换到别的工具里还能用,更靠得住的办法是让打开文件的那个 App 自己从位置和时间算出速度——这个算法在任何 GPX 读取程序里都一样。

记录你自己的轨迹

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

在 App Store 下载