分享一个觉得蛮有趣的问题。
Strava 以及 Garmin connect 上的爬升(Elevation gain )在下面几个条件成立时
有可能会发生错误:
1. 使用手机或是只有GPS高度计的手表纪录活动。
2. 400m的田径场(或是不断的绕圆圈跑步)
3. Strava & Garmin使用高度数据库校正你的海拔资讯。
问题如下图:
https://i.imgur.com/AXU4Luz.jpg
这是某一次在新竹田径场的跑步纪录,新竹田径场是国家级认证的田径场[1],有经
过场地的认证包含横向以及纵向的倾斜度符合规范等等,因此不可能在跑完13.8公里
之后爬升来到不可思议的272m。这是一次以速度为主的锻炼,上图红色框框的部份应
该要显示配速,却因为Strava以为这次是以爬坡为主的锻炼而显示爬升。而随着跑越
多田径场总爬升却大幅上升也造成了困扰,因此花了点时间厘清,一开始以为自己的
手表有问题,厘清后又以为只有新竹田径场的海拔资讯有问题,但后来慢慢发现其他
一些田径场(检查了凤山以及新庄的田径场)的爬升也被错误的放大,因此将我的发
现以及解法分享出来。
这个问题有趣的点是爬升的错误并不是原始的GPS高度的资料造成,原始的资料非常漂
亮,以新竹田径场为例:
https://i.imgur.com/mkQ5tTM.jpg
请注意上图的Altitude以及Slope两个字段,从头到尾都是定值,由此原始资料计算
Elev. Gain的结果应该是0。
问题发生在Strava认为这个GPS高度是不准确的,因此开启了后台的海拔数据库[2]
进行高度的校正,再透过算法求得Elev. Gain。很不幸的是海拔数据库在这里出了错,
也因此将原本对的原始资料改成错的XD,下图是经过海拔数据库求得的Altitude以及
Slope,已经可以看到原本平坦的地面出现了变化:
https://i.imgur.com/u9EJkg5.jpg
这样看没什么感觉,直接转化为图形来看更为明显:
https://i.imgur.com/jYLtCy0.png
可以看到在Altitude字段中,最低到最高的落差到了8m。
Garmin connect的高度校正也不遑多让,我们将同一份跑步资料分别经过Garmin
connect以及Strava高度校正并且与原始的GPS高度叠在一起看:
https://i.imgur.com/7DVHfv9.png
黄色线是原始资料,蓝色是Strava而桃红是Garmin connect分别经过各自的高度校正
结果。尽管Garmin connect经过了高度校正之后也得到错误的Elevation Gain,但至
少它有开关可以让使用者关闭高度校正,而Strava就让使用者无法回避这样的错误,
它的高度校正始终都是开启。
身为Strava的使用者来说,这样的问题实在无能为力,因为高度校正始终都是开启,
在高度校正有问题的情况下,所有的田径场绕圈圈的海拔爬升都会是错误的,因此我
们能做的就是:
- 买一只有气压式高度计的跑表XD(Garmin的周年庆最近陆续开始XD),有气压式高
度计的情况下Starva会关闭后台高度校正。
- 回报Strava。[3] 里面有一个连结,可以回报Elevation的错误。
- Strava是依据手表型号来判断是否要开启高度校正,因此可以修改device name来
回避这个问题。个人不太建议这样的work around,这会修改原始的raw data。而且
平常已经够多work around了,没想到跑步也要XD。方法如下:
上传你的Garmin FIT/GPX/TCR 到 https://www.fitfiletools.com/#/top 接着选择
Device Changer,然后找一款有气压式高度计(ex Garmin FR255)装置,修改之后
再将FIT档重新上传至Strava,此时你就可以看到 elevation gain为0,主页显示也
会以配速为主。如下:
修改device name后Strava 主页恢复以配速为主的显示:
https://i.imgur.com/lY1YCIm.jpg
而elevation 也变成 0,device name 变成 Garmin FR255 Music。
https://i.imgur.com/96v1u3J.jpg
以上是田径场爬升错误的资讯提供参考,希望对你有所帮助。
另外,海拔以及坡度的错误还有一些其他隐藏的影响不容易察觉,如果你习惯使用TSS
(training stress score)来追踪你的疲劳程度,你要稍为了解一下你所使用的平台
背后所使用的算法是否有参考到原始的资料的altitude以及slope,因为这两者错误
可能造成TSS的分数误判,以新竹十八尖山为例:
https://i.imgur.com/T4V8lwc.png
上图是十八尖山三趟约15km的距离,桃红色为GPS高度计,淡蓝色为气压式高度计,
可以看到其中slope的差异甚大,实际上此次的活动TSS的分数差异将近到10分之多。
以跑步来说,GOVSS[4]算法是常被使用的一个功率模型,它不仅是RunScribe跑步功率
计的算法,也被Goldencheetah(GC)用于TriScore中(有设定临界速度时会使用
GOVSS计算stress score,没有则会退回使用以心率为主的Trimp计算stress score),
而GOVSS的其中一个参数正是slope:
https://i.imgur.com/fHGWrXa.jpg
鉴于GC内建的metrics常常被其他平台所"inspired by",个人认为这个影响是大的,因
为如果你原先期望让自己在训练上累积疲劳达到functional overreaching,你有可能
因为slope的错误而造成TSS被多算,而误以为自己已经达到了一定的疲劳。若是你很在
意你所使用各项指标的正确性,建议将来在选购手表上选择具气压式的高度计。
[1] 中华民国国家级400公尺田径场地一览表
https://reurl.cc/x677ve
[2] What Strava does (source), is use a Digital Elevation Model, i.e. a
database of elevation points on different parts of the world, and then
smoothes the GPS points to be a more probable route and then match those
to the DEM and thus get more accurate elevation.
[3] Elevation for Your Activity
https://support.strava.com/hc/en-us/articles/216919447-Elevation-for-Your-Activity
[4] Dr. Skiba 于2006年发表的跑步功率论文,太复杂请直接跳过到[5] XD
https://reurl.cc/x6pxgE (感谢selfvalue大修正网址)
[5] Technical Review of the Runscibe GOVSS Running Power Model。这个blog很棒
,它也有对于Stryd(EESA)的科技审查。如果你想直接玩GOVSS功率,可参考[6]
http://www.georgeron.com/2017/11/the-govss-running-power-algorithm-and.html
[6] 输入你的身高体重速度等就可以推算出功率:
https://runscribe.com/power/