TrailCam

指南

GPX 檔案裡為什麼沒有配速

用文字編輯器打開一個 GPX 檔案,從頭翻到尾也找不到「配速」這兩個字。這不是哪個 App 漏寫了,而是 GPX 裡的一個點從設計上就沒打算裝配速這個數字。它裝的是位置、高度和時間這三樣東西,配速是拿這三樣東西算出來的,而且每個讀這個檔案的軟體都是自己重新算一遍。

先說結論

配速不是 GPX 軌跡點裡的一個欄位,所以它根本沒有「存在」過檔案裡。檔案裡每個點實際存的是經緯度,通常還有海拔和時間戳記。任何打開這個檔案的軟體——包括當初記錄它的那個 App 自己——都是拿相鄰兩個點的距離除以經過的時間,事後算出配速的。同一個 GPX 檔案在兩個 App 裡配速數字不一樣,原因就在這裡:兩邊各算各的。

一個軌跡點裡到底裝了什麼

GPX 檔案的核心是一串 <trkpt> 元素,每記錄一個點就有一個,帶著表示位置的 lat 和 lon。大多數記錄軟體還會在裡面加一個 <ele> 存海拔,加一個 <time> 存時間戳記。GPX 的基礎規範裡能確定有的就這些,沒有 <pace>,也沒有 <speed>。這個格式想描述的是你在什麼時候、在什麼地方,不是你在兩個點之間走得有多快。

有些軟體會用 GPX 的擴充機制,往軌跡點裡塞一些自家的資料,比如速度——這是一種在不破壞基礎格式的前提下加私有欄位的辦法。不認識這個擴充的軟體會直接跳過它,也就是說用這種方式寫進去的速度值,換一個 App 打開未必讀得到。

螢幕上那個配速到底是哪來的

是算出來的,不是存好的

不管是走路的時候即時看到的配速,還是事後翻舊路線看到的配速,顯示它的那個軟體都是拿附近幾個點的座標和時間戳記——走過的距離除以花掉的時間——現場算的。就算是當初記錄這條路線的那個 App 也不例外。走路時即時算出來的配速,和之後從儲存好的 GPX 檔案裡再算一遍的配速,是兩次獨立的計算,只是用的是同一批點。

換個地方打開數字就不一樣了

把同一個 GPX 檔案匯入兩個不同的服務,每一邊都按自己的規則算配速:雜訊怎麼平滑、多慢算「停下來」而不是「在走」、兩個離得特別近的點怎麼處理——這些東西沒有一樣是寫在檔案裡的,全在讀檔案的軟體那一端。同一條路線配速對不上,不代表檔案壞了或哪個 App 算錯了。

配速這個數字到底存在哪

如果想要一個跟著資料走、不用每次打開都重算的配速,那是彙總匯出該做的事。CSV 匯出裡通常會有一欄配速,跟距離、時長、爬升放在一起,因為 CSV 的一列是一整條路線的彙總,不是逐點記錄,所以才有地方放一個「定死了」的數字,這是 GPX 軌跡點做不到的。GPX 和 CSV 正好互補:GPX 把路線本身留下來,誰都能拿它重新算配速;CSV 把這個數字直接留下來,省得每次都算。

容易搞混的地方

  • 匯入一個新 App,平均配速跟原本記錄的不一樣——這是正常的,新 App 不是讀了檔案裡存的數字,而是拿原始的點重新算了一遍。
  • GPX 轉成別的格式以後配速「不見了」——其實不存在遺失,因為 GPX 本來就沒存過配速,轉換完了也一樣得重新算。
  • 有的 App 說自己能靠擴充欄位保留速度資訊,換一個 App 打開同一個檔案卻什麼都沒有——擴充欄位要不要支援完全看軟體自己,一個 App 寫進去的速度,不保證下一個 App 能讀出來。
  • 整段路線的平均配速,比走的時候感覺的任何一段都要慢——這通常是因為計算裡把停下來的時間也算進去了,不是 GPX 資料本身有問題。

TrailCam 在這裡能幫上什麼

TrailCam 記錄每條路線的同時就把距離、移動時間、配速和爬升算好了,不是靠一條光禿禿的軌跡事後再算。路線可以匯出成保留每個點本身的 GPX 1.1,也可以匯出成帶配速在內的 CSV 彙總。匯出是可選的 TrailCam Pro 功能,App 本身免費下載。

常見問題

GPX 到底支不支援配速或速度欄位?
基礎規範裡不支援。GPX 軌跡點有的是位置、海拔和時間。可以靠擴充機制加進速度,但換個 App 未必讀得到,不太能指望它。
同一個 GPX 檔案,為什麼在不同 App 裡平均配速不一樣?
因為兩邊都沒有在讀一個存好的配速值,而是各自拿座標和時間戳記算的。停頓怎麼算、雜訊怎麼處理,兩邊稍微不一樣,答案就會差一點。
想留住配速,是不是 CSV 比 GPX 更合適?
光論這個數字本身,CSV 更合適,因為它每條路線都有一個定好的配速。不過 GPX 也值得留著,因為不管是過去還是以後要算的配速,最終都是從它保存的那些點算出來的。

記錄你自己的軌跡

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

在 App Store 下載