分享一個覺得蠻有趣的問題。
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/
--