TrailCam

指南

明明走的是平路,爬升數字為什麼還是很高

沿運河走的步道、環湖一圈、廢棄鐵道改成的小徑——這種腿從頭到尾都沒感覺到一絲坡度的路,App 最後卻報出四十公尺、八十公尺,有時甚至超過一百公尺的累積爬升。地面什麼都沒爬。這個數字是「真」的,因為它確實是從手機記錄到的資料裡正確算出來的;但它又是會誤導人的,因為裡面絕大部分跟地面實際的起伏沒什麼關係。

先說結論

GPS 測到的高度,就算人站在完全平坦的地面上一動不動,也會自己上下飄一兩公尺,因為垂直方向的位置本來就是手機 GPS 裡精度最差的一項。爬升不是最高點跟最低點的差,而是把路線上每一次「往上走的瞬間」全部加在一起。走在平路上時,這種細小的隨機抖動大約一半會被算成「向上」。一段又長又平、走得不趕的路,把這些抖動一點一點累積起來,它就不再像雜訊了,反而看起來像一座根本不存在的小山。

腿覺得平的路,GPS 未必覺得平

走路是個很好的坡度判斷器:地面稍微一斜,腿上用的力馬上就知道。手機沒有這種感覺。它算高度靠的是頭頂那些衛星的幾何分布——看得到的衛星永遠在上空某處,不會有一顆從地平線以下幫忙約束高度,所以高度天生就比東西、南北方向的位置更難測準。結果就是,就算這段地面在走路的人看來千真萬確是平的,原始高度讀數在相鄰兩個時刻之間還是會飄個一兩公尺。

這種抖動平均下來是圍著真實高度對稱分布的,不是朝一個方向慢慢漂移。可偏偏是這種對稱的雜訊,才會算出一個偏向一邊的總和——這跟手機測錯了沒有關係。

雜訊本身不偏不倚,加總之後為什麼會偏高

爬升的演算法是這樣的:把軌跡上的點一個一個依序過一遍,只要相鄰兩點之間高度上升了,就把差值加進總數;下降了就直接丟掉,不算進任何一邊。問題就出在這個「只加上升、不減下降」的不對稱上。一枚出現正面的機率剛好一半的硬幣,如果只數正面朝上的次數、每次反面都直接不算,正面的計數照樣會越滾越大。爬升演算法對著一串帶雜訊的高度資料做的,正是同一件事——每一次向下的抖動都被直接丟掉,而不是拿去抵消它前後那次向上的抖動,所以累加的總數只會往上走,不會往下走。

單獨一次抖動看不出什麼。可一段很長的平路走下來,這樣的抖動累積了好幾百次,地面明明一次都沒動過,手機記錄的平均高度也幾乎沒變,總數卻是肉眼可見地漲上去了。

為什麼平路走得越久,數字反而越大

因為要加總的點變多了。同一段平路,匆匆走十分鐘,可能只捕捉到寥寥幾個帶雜訊的讀數,多算出來的爬升不過幾公尺;換成同一段平地,手機每分鐘記好幾個高度點,慢悠悠走上三個小時,並不是路變陡了,而是隨機抖動落到總數「向上」那一邊的機會成倍增加。這裡走了多遠其實關係不大,真正把數字推高的,是在這段平路上記錄了多久。

門檻過濾能壓低數字,但壓不到零

幾乎所有會報爬升的 App 都做了一層降噪:把小於某個門檻——常見是幾公尺——的變化直接忽略,不算進總數。這也是為什麼平路上的爬升很少像原始高度抖動那麼誇張。但這也解釋了它為什麼很少剛好是零:門檻定低了,連雜訊都會被當成爬升;定高了,一段本來就有點起伏的路上真實的小上坡,又會跟著雜訊一起被丟掉。沒有哪個門檻能把兩者完美分開,能做到的只有取捨。這也是為什麼在所有健行資料裡,爬升是最該當參考、而不是當成精確數字來看的一項。

什麼時候值得多看一眼

  • 一段平路的爬升有幾十公尺,數值大致跟記錄時長成正比,跟印象裡的起伏對不上——這就是上面說的正常情況,不是記錄出了問題。
  • 地圖上的海拔曲線是一條密密麻麻的平坦鋸齒,而不是偶爾冒個真實小坡的順滑曲線——看到的是同一批雜訊,只是這次是直接看曲線,而不是看加總之後的數字。
  • 爬升數字大到好幾百公尺,而這段地面確定一次都沒往上走過——這值得對著地圖核實一下,而不是直接歸為雜訊,因為也有可能是某一刻 GPS 高度突然跳了一下,而不是普通的抖動。
  • 同一段平坦環線,一次走得快、一次走得慢,兩次的爬升數字明顯不一樣——這是意料中事,原因跟走得越久雜訊越多是同一個;在這種地形下,比較幾次行程更適合看距離跟行進時長,而不是爬升。

和 TrailCam 的關係

TrailCam 會替每條記錄的路線畫出爬升曲線,放在地圖下方,不管是正在記錄還是之後回放都看得到,匯出成 GPX 1.1 或 CSV 時也會一併帶上,和距離、行進時長、配速放在一起。一段沿運河走的平路,最後爬升數字不是零、但也就那麼一點,這是上面說的 GPS 高度資料的正常表現,不代表記錄出了差錯。App 免費下載。

常見問題

平路上的爬升數字,是不是一直都是錯的?
演算法本身沒有算錯——它確實是把手機記錄到的高度資料老老實實加總出來的。會誤導人的地方在於,這些記錄到的高度變化裡,大部分是 GPS 雜訊,不是真的在爬,而這是垂直方向 GPS 精度本身固有的性質,不是哪個 App 的毛病。
同一段平路,為什麼走得慢一些爬升反而更高?
因為爬升演算法是把記錄裡每一次向上的區間都加起來。同一段地面,記錄時間越長,採到的點就越多,普通的高度抖動落到總數「向上」那一邊的機會也就越多。地面沒變,變的是取樣點的數量。
App 能不能把這種雜訊完全過濾掉?
不能完全過濾掉。App 一般是設一個門檻,忽略小於它的變化再加總,這樣能把影響壓小,但沒辦法在不連帶丟掉緩坡上真實小起伏的前提下,把這個效應徹底消除——沒有哪種設定能完美分清兩者。

記錄你自己的軌跡

TrailCam 是一款 iPhone 上的 GPS 軌跡記錄 App,會把沿途拍下的影片、照片與語音釘在你拍它的那個位置,並支援匯出成 GPX 1.1 或 CSV。免費下載。

在 App Store 下載