[問題] Strava 爬升顯示錯誤的問題

跑步

13130

分享一個覺得蠻有趣的問題。

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/


--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 39.10.48.28 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Road_Running/M.1697275457.A.F57.html
locka1樓詳細給推 10/14 18:31
compression2樓感謝提醒,謝謝分享 10/14 18:42
selfvalue3樓 10/14 19:11
mtbigzan4樓 10/14 19:13
selfvalue5樓pdf~ 404 Error 10/14 19:44
selfvalue6樓https://reurl.cc/x6pxgE 10/14 19:50
謝謝告知,直接借用你的短網址。^^
selfvalue7樓^ The Development of the GOVSS Algorithm 10/14 19:51
selfvalue8樓 10/14 19:52
selfvalue9樓SS.pdf 10/14 19:52
selfvalue10樓very informative 10/14 20:08
selfvalue11樓兩推! 10/14 22:54
selfvalue12樓Ron George的blog太好看了== 連續看了一個小時 10/14 22:58
對於Stryd愛用者的我來說,能夠了解它的內部作法才能夠讓我更相信它。Ron George 的解釋對我這種門外漢來說很有用,很高興你喜歡。 儘管直至今日我已經不以「跑步功率」當作我的唯一訓練指標,但基於功率模型所延伸 出的Training Stress Score仍是我借重的,畢竟功能性的overreaching 到 overtraining 只有一線之隔,不希望漢森課表的累積疲勞把自己弄到受傷的話,我會 十分在意GOVSS以及Stryd的RSS所提供的分數當作日常訓練的重要參考。而這時候就需 要手錶的slope資料的正確性。
selfvalue13樓您的文章也是很好, 謝謝分享 10/14 22:59
selfvalue14樓這篇看了太過癮了== 10/14 23:03
isohera16樓我已經放棄看高度了 10/14 23:26
isohera17樓FR245上傳connect轉strava爬升差異 10/14 23:32
isohera18樓 10/14 23:32
isohera19樓FR245沒氣壓高度計,Edge530沒這問題。 10/14 23:34
其實寫這篇主要是在說服自己把FR55換成965 XD,畢竟Garmin的週年慶要到了XD。 我目前在爬坡的課表會將Stryd所提供高度以及slope(Stryd有內建氣壓高度計) 與Garmin FR55的FIT做合併,這有點麻煩 (因為Stryd內建的氣壓式高度計會被跑 表bypass),因此換錶似乎是好時機XD Edge 540 會是我人生的第一隻車錶。:)
Csy06520樓推認真 10/15 08:50
isohera21樓540買起來 10/15 11:21
Isohera 大你的Strava & Garmin connect 的海拔爬升比較(Strava爬升是6368m, 而Garmin connect 是 13622m)你點到了一個重點,「在使用GPS高度計的情況下 誰比較準確?」 下圖是上個月新竹十八尖山三趟約15km分別使用Garmin 以及 Strava,其中Garmin 的爬升為Strava的爬升為258m,而Garmin的爬升為479m跟你的218km長途騎乘一樣 有很大的爬升差異,我們將圖疊在一起看,看看問題出在哪裡:
上圖桃紅是Garmin而淡藍色是Strava,你可以注意到Garmin的桃紅色在Altitude以 及Slope上多了很多"細節",這些細節有可能是GPS的誤差導致(例如定位到旁邊的 小山溝或者是旁邊的民房之類的的XD),而Strava如同Garmin會經過後台的海拔資 料庫校正之外,Strava會針對爬升的資料透過算法做平滑的處理,因此在這個情況 下,Strava的爬升會較為準確。)數據分別是: Garmin GPS高度計經過高度校正爬升為: 479m Strava GPS高度計經過Strava高度校正且平滑處理: 258m Stryd 氣壓高度計:242m 這是一個單獨的例子,你很難就此下結論說「Strava較為準確」,實際上以田徑場 繞圈圈使用GPS高度計的例子為: Garmin GPS高度計經過高度校正爬升為: 125m Strava GPS高度計經過Strava高度校正且平滑處理: 272m Stryd 氣壓高度計: 0m Garmin GPS高度計未經過高度校正為: 0m 因此你很難說是Garmin比較準確還是Strava,要 case by case去看,但以推力比來 到4.x/kg的Isohera大大來說,看Garmin Edge 530的海拔爬升才是正解。XD (一起 換540啊XD)
selfvalue22樓非常好的分享, 謝謝 10/15 18:16
selfvalue23樓您的心得~ 理解運作這點, 在看你整篇文章, 對我幫助也 10/15 18:20
selfvalue24樓很多! 10/15 18:20
selfvalue25樓我們運動人的訓練, 如何變快?變強? 計畫實行的有效性, 10/15 18:22
selfvalue26樓模糊的空間越少越好 10/15 18:22
selfvalue27樓在下十分認同您的看法 10/15 18:23
timofEE28樓專業推 10/15 19:45
n002948030029樓推專業文 10/15 21:00
cygnustw30樓大感謝! 吸收知識了 10/16 17:00