GPS 軌跡的最高速度為什麼會離譜到不可能
一趟記錄就算有點毛糙,距離和行進時間通常還算靠得住,偏偏最高速度冒出個時速六十公里的數字,而你從頭到尾根本沒離開過那條步道。不是走得快,是同一份資料被問了另一種問題——而最高速度這種問法,恰好一點容錯的餘地都沒有。
先說結論
GPS 軌跡本身不帶測速功能。所有速度都是事後算出來的,靠的是每個記錄點自帶的兩樣東西——位置和時間戳:拿相鄰兩點之間的距離,除以兩點之間的時間差。距離與行進時間,是把這樣的算法在整條路線上一路加總起來的結果,某一段算錯了,也只佔一個很長總數裡的一小份。最高速度的算法正好相反:成千上萬次除法裡,直接挑出最大的那一個報給你看。只要有一個點稍微偏了一點,又恰好跟鄰近的點隔得很近,這次除法就能算出一個「不可能」的數字,而其餘的記錄可以什麼問題都沒有。
一次除法為什麼沒地方藏拙
想像兩個相隔一秒記錄下來的相鄰點。如果第二個點真的離第一個點二十公尺,換算成時速是走路或跑步都說得通的速度。可要是訊號短暫亂了一下——跟地圖上常見的那種尖刺是同一回事——把第二個點記到了四十公尺開外而不是二十公尺,距離其實只是翻了一倍,但除的還是同樣的一秒。位置上一個不起眼、很尋常的偏差,到了速度這一步就被放大成一個離譜的數字,因為除以極短的時間,本身就是在放大壓在它上面的那個誤差。
距離的總數不會遇到這種放大。成千上萬段間距加在一起,絕大多數都準,一段偏大的間距會被周圍稀釋掉。最高速度從設計上就跳過了這個稀釋的過程——它的任務就是把整份檔案裡跑得最快、或者說算出來最猛的那一瞬間單獨挑出來報給你,而這一瞬間,恰恰最容易就是一個偏離點造出來的。
這個偏離的點到底是怎麼冒出來的
成因跟其他 GPS 怪現象沒什麼兩樣,只是這次剛好撞上了演算法最不肯將就的那一刻。
- 附近某個面反射了一下——停著的車、一塊濕岩壁、金屬屋頂——反射訊號比直接抵達的訊號晚了那麼一瞬間,把某一次定位往外頂了不該有的距離。
- 一顆衛星一下子被稜線、建築物擋住,或被轉身的自己擋了一下,接收器能用的衛星組合一時收窄,只剩很窄的一小片天空可用。
- 手機剛從徹底看不見天空的地方——樹林深處、地下通道、樓宇之間的窄縫——出來,定位正在重新計算,一時衝過了頭,再過一兩個點才穩回正常水準。
這幾種情況,都只需要把一個點頂偏那麼幾公尺。攤在整條軌跡上,這點誤差根本不會被人注意到;可一旦被相鄰兩點之間那一兩秒去除,就足以算出一個徒步或騎車都不可能達到的速度。
這種情況多半出現在哪裡
離譜的最高速度,多半都集中在接收器天空視野本來就容易變差的那幾個時段:剛開始記錄的頭一分鐘左右,接收器還沒穩定下來;樹林特別密或樓宇之間特別窄的一段,反射干擾比較常見;還有一時暫停後重新開始記錄的那一刻,如果暫停的地方天空視野比走動時更差。
這個數字能說明什麼,不能說明什麼
離譜的最高速度說的只是某一瞬間的事,不代表整趟健行或騎行有什麼問題。距離、行進時間、配速都是把整條軌跡加總出來的結果,同一個把最高速度頂飛的偏離點,通常只會讓這幾個數字動一丁點,甚至紋絲不動。把最高速度當成 GPS 軌跡裡最容易被帶偏的那個數字就好,其餘的記錄,往往比這一個數字看起來的要靠得住得多。
TrailCam 是怎麼做的
TrailCam 為每一條記錄的路線顯示距離、行進時間、配速與爬升——健行也好,騎行也好,都是這四個數字,都是把整條軌跡加總出來的結果,而不是單挑某一瞬間報給你看。它不顯示最高速度這一項。把一條路線匯出成 GPX 1.1 或 CSV,是可選的 TrailCam Pro 裡的功能,匯出的檔案裡帶著的點,跟其他服務用來算最高速度的是同一批點——所以如果拿這份檔案到別處去算最高速度,上面說的這些就是你可能會看到的效果。TrailCam 免費下載。
常見問題
- 最高速度離譜,是不是代表這次 GPS 記錄壞了?
- 不是。多數情況下,只是成千上萬次定位裡的某一個點,因為一次短暫又尋常的訊號干擾稍微偏了一點。整條軌跡以及距離、行進時間這些總數,通常都不會受到明顯影響。
- 為什麼最高速度比距離更不靠得住?
- 距離是把整條軌跡上所有點與點之間的間距加在一起,一段偏大的間距只佔很長總數裡的一小份。最高速度正好相反,它專門從所有點對點的除法結果裡挑出最大的那一個報給你,沒有辦法把一個偏離點稀釋掉。
- 真的跑得很快的那一刻,也會算出很高的最高速度嗎?
- 會。真的衝刺一下、自行車下坡衝得猛,或順風給力,都能老老實實算出一個很高的最高速度。光看數字沒辦法分辨是哪種情況;但如果只有孤零零的一瞬間冒出一個離譜又剛好湊整的數字,前後完全對不上,那多半是偏離點鬧的,不是真的跑出來的。
記錄你自己的軌跡
TrailCam 是一款 iPhone 上的 GPS 軌跡記錄 App,會把沿途拍下的影片、照片與語音釘在你拍它的那個位置,並支援匯出成 GPX 1.1 或 CSV。免費下載。