TrailCam

指南

怎麼用 GPX 檔案算出健行的分段配速

健行結束後顯示的那一個配速,是個平均數,而平均恰恰把這趟健行真正有意思的細節抹掉了——輕鬆走完的第一公里,和中途因為爬坡慢下來的那一段。GPX 檔案裡有把這個形狀找回來所需要的一切,因為跟配速這個數字不一樣,GPX 從一開始存的就不是平均值。它存的是每隔幾秒鐘記一次、帶時間戳記的點,平均值是後來才從這些點裡算出來的東西。把健行切成一段一段來算,用的還是同一批點,只是用法不一樣,不需要任何檔案裡本來沒有的資訊。

先說結論

按順序把記錄點一個個過一遍,把相鄰兩點之間的距離累加起來,直到累計距離跨過整整 1 公里或 1 英里的那一刻。這一刻的時間戳記,減去上一次跨過整數距離時的時間戳記,就是這一段的分段配速。健行裡每跨過一個整數距離就重複一次,最後剩下不到一整公里的那一小段單獨算作最後一段。這一切只需要每個點都有座標和時間戳記——普通的 GPX 軌跡本來就是這麼記的,不需要為了算分段特地多記點什麼。

分段配速到底是什麼

分段配速用的是跟整體配速一樣的算法——時間除以距離——只不過不是整趟健行算一次,而是每公里或每英里單獨算一次。一趟整體配速是每公里 15 分鐘的健行,拆開看可能是 13 分、14 分、19 分、14 分這樣起伏的四段,那段最慢的 19 分鐘,往往正好對應著一段爬坡,或者是為了拍照長時間停下的地方。整體配速不過是這四個數字按距離加權算出來的平均值——當摘要看很準確,但沒辦法告訴你這趟健行到底哪一段最累,因為「求平均」這個動作本身,就是把這條資訊抹掉的那一步。

GPX 檔案能做到、單獨一個配速數字做不到的事

一個配速數字,或是 CSV 裡只有一欄配速的一行,都是算完之後剩下的結果。GPX 軌跡從來就不存配速,也不存分段配速這種數字。它存的是最原始的材料,按記錄順序排好:每一個點各自的經度、緯度、時間戳記。分段配速是這份點列表事後能被加工出來的東西之一,跟爬升的算法很像——爬升也是順著同一份點列表往下走,把相鄰兩點的海拔拿來比較,一點一點累加出來的總數。這兩個數字都不是檔案裡現成存著的,而是每次都要重新從點列表裡算一遍,這也正是為什麼一趟健行只占一行的彙總匯出,兩個都給不出來。

拿真實數字算一遍

假設一次記錄從 10:00:00 開始,1 公里處的時間戳記是 10:14:00,2 公里處是 10:29:20,3 公里處是 10:47:35。把每個時間戳記減去前一個,就得到三段配速:第一公里 14 分鐘整,第二公里 15 分 20 秒,第三公里 18 分 15 秒——越走越慢,多半是因為後半段爬坡變陡了,而不是記錄出了什麼問題。同樣這 3 公里,整體配速算下來是 47:35 ÷ 3 ≈ 每公里 15 分 51 秒——這一個數字確實是那三段的老實平均,但完全看不出到底是哪一公里真正難走。

唯一的小麻煩:點很少剛好落在整數距離上

GPS 接收器是按時間記點的——大概每一兩秒記一個——不是按距離記點,所以累計距離剛好等於 1.000 公里的那一瞬間,通常並沒有點恰好落在那裡。實際找跨越時間的做法,是找出跨過那個整數距離的前後兩個相鄰點——一個還沒到,一個剛過——然後按這個整數距離落在兩點之間的比例,在兩個時間戳記之間做內插。假設 0.996 公里處的點記錄時間是 10:13:57,下一個 1.009 公里處的點是 10:14:10,那 1 公里這個點大概落在兩點距離差的十分之四處,估算出來的跨越時間大約是 10:14:02——這是一段很短的內插,不是亂猜,而且放在整整一公里的尺度上看,這點誤差基本不會把算出來的分段配速帶偏。

自己動手算,還是交給別的工具

如果只是幾公里的短程健行,靠手算,或是在表格軟體裡順著累計距離和時間那兩欄往下拖,雖然瑣碎,但純粹是體力活,花不了幾分鐘。要是健行長達幾十公里、點數上千,同樣的算法就變成了指令碼或 GPX 分析軟體最擅長做的那種重複勞動——在每一個跨越點上做一次前面說的內插,只是換成機器一瞬間完成,而不是人一個個盯著算。不管選哪種辦法,真正需要的只有一樣東西:每個點都帶時間戳記的檔案。單純的彙總總數從一開始就沒有這份資訊,再多的軟體和耐心也變不出分段配速來。

明明速度沒變,某一段配速卻看著變慢了

  • 休息的時候忘了暫停記錄,那段站著不動的時間會原樣落進恰好經過的那一段裡,讓那一段配速看起來比周圍慢得多,其實走路的速度根本沒變。
  • GPS 訊號短暫變亂或遺失,可能讓某一段記錄到的距離稍微偏多,或是讓兩次真正的跨越之間的時間被拉長,這跟實際走路快慢沒有關係。
  • 真的是一段又陡又難走的路,往往才是最常見、也最沒什麼好奇怪的解釋——分段配速本來就是為了把這種真實的起伏顯出來,而不是拿來找記錄的毛病。

看到某一段配速偏慢時,先看看那一段的路線或海拔剖面,通常比直接懷疑記錄出問題更靠得住。

TrailCam 在這裡能幫上什麼

TrailCam 只要在記錄,就會一直存下帶時間戳記的點,並且能把一條路線——單次健行,或整段歷史——匯出成 GPX 1.1 檔案,這正是這一整套計算的起點。App 本身在每次健行後顯示的是一個整體配速,而不是一張按公里列出的分段配速表,所以要算出分段配速,需要按這篇說的方法,把匯出的點放到表格軟體或專門的工具裡自己處理一遍。匯出是可選的 TrailCam Pro 裡的功能,App 本身免費下載。

常見問題

GPX 檔案裡是不是直接存著分段配速的時間?
不是。GPX 軌跡裡存的只是每個記錄點的時間和位置,僅此而已——分段配速跟爬升、整體配速一樣,都是事後從這份點列表裡算出來的,並不是檔案裡現成存著的數字。
用 CSV 匯出代替 GPX,能算出分段配速嗎?
只有當這份 CSV 給每個記錄點都留著時間和距離,而不是一趟健行只彙總成一行的時候才行。專門用來列彙總資料的 CSV——一趟健行一行,只有一欄整體配速——已經把算分段配速需要的逐點資訊丟掉了。
同樣是平坦好走的兩公里,為什麼分段配速還是不一樣?
忘了暫停記錄就站著休息、GPS 訊號短暫亂了一下,或是這段路實際走起來沒有數字看著那麼輕鬆,都比距離算錯更常見。就算是兩段都很平坦的路,配速有點小差別也很正常——沒有人能一趟健行從頭到尾保持完全一樣的速度。

記錄你自己的軌跡

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

在 App Store 下載