GPX 檔案裡有沒有記錄你的速度
沒有,至少不是以專門欄位的形式存在。GPX 的一個軌跡點由經緯度、通常還有海拔、通常還有時間戳組成——這是格式給它的固定清單,速度不在裡面。但這不代表速度就沒辦法從 GPX 檔案裡知道:跟那些檔案本身真的沒辦法記下來的東西(比如天氣)不一樣,速度隨時都能事後算出來,因為算速度要用到的兩樣東西——點與點之間的距離、時間戳之間的時間差——本來就已經在檔案裡了。
簡單說
GPX 1.1 給軌跡點定義的是一組固定欄位,速度不在其中。一個點帶的是經緯度,通常還有海拔,通常還有時間戳——不管這份檔案是手機記錄的、專用 GPS 裝置記錄的,還是 GIS 軟體產生的,都是這幾樣。如果打開一份 GPX 檔案之後,地圖或圖表上出現了速度這個數字,那它不是從檔案裡直接讀出來的,而是打開它的那個 App 自己算出來的。
一個軌跡點實際帶著什麼
位置、海拔、時間這三樣涵蓋了幾乎所有讀取 GPX 檔案的軟體都需要的內容,也是這個格式從最初發布起就一直帶著的欄位。正是這份短而固定的清單,才讓 GPX 能在完全不同的軟體之間流通——Strava、Garmin Connect、Komoot 和各種 GIS 軟體都能打開同一份檔案,而且對每個欄位的意思達成一致,因為需要大家統一意見的欄位數量本來就被特意控制得很少。
速度為什麼不需要專門的欄位
GPX 檔案確實有一些東西是壓根沒辦法記的——比如健行當天的天氣,它跟位置、時間之間沒有任何關係,後面的讀取程式沒辦法靠推算把它還原出來。速度不一樣。相鄰兩個點之間的距離,以及這兩個點時間戳之間的間隔,這兩樣都已經在檔案裡了,速度不過是拿一個去除另一個。要是再單獨給速度留一個欄位,等於把一個隨時能從檔案已有資料裡重新算出來的數字又存了一遍。所以這個格式乾脆把速度當成事後需要時再算的東西,而不是記錄當下就要寫進去的東西。
同一份檔案,為什麼會算出兩個不一樣的速度
正因為速度從來不是存好的,讀取的時候也就不是「讀出來」,而是每次重新算一遍。任何顯示速度的 App,做的都是在同一批原始點位上跑自己的一套計算,計算方式上的小差異就會讓答案不一樣,就算底層檔案根本沒變過。有的 App 只看相鄰兩個點,間隔一兩秒就直接算一個瞬時速度;另一些 App 會先把幾個點放在一起做平滑處理,好壓掉兩個靠得很近的點之間難免帶著的 GPS 噪訊抖動。兩邊都不是在讀檔案裡存好的數字,而是在同一份位置和時間資料上做算術,算出來的結果就有點差異——這也是同一份 GPX 檔案在不同 App 裡,速度或配速的數字會不一樣的一大原因。
速度唯一可能藏身的地方
GPX 允許在點上掛一個可選的 extensions(擴充)區塊,專門用來放核心欄位裡沒有定義的那類資料,有些裝置確實會把速度讀數寫進去。不過 extensions 區塊只有認得那個命名空間的軟體才能正確讀懂,換一個 App 打開同一份檔案,完全可以直接跳過它,不算出錯。塞在 extensions 裡的速度值,沒辦法保證從寫下它的那個裝置或 App 換到別的地方打開時還能原樣讀出來。
TrailCam 在這裡的角色
從 TrailCam 匯出的軌跡是一份乾淨的 GPX 1.1 檔案——每個點都帶著位置、海拔、時間,都是任何軟體已經知道怎麼讀的欄位,不會額外塞一個只有 TrailCam 自己才能正確讀回來的速度擴充。配速和距離是 TrailCam 自己用記錄下來的點位算出來、顯示在 App 裡的,跟任何一個 App 算這些數字的方式一樣;匯出的檔案本身只帶著底下那條原始軌跡。GPX 和 CSV 匯出是可選的 TrailCam Pro 升級裡的功能,App 本身免費下載。
常見問題
- GPX 檔案裡存的是配速而不是速度嗎?
- 也不是,道理一樣。配速也是事後算出來的,算法是距離除以移動時間,GPX 規格不管哪個版本都沒有給它留欄位。配速是打開檔案的那個 App 或表格軟體自己算的,不是存在檔案裡的。
- 既然速度不在 GPX 檔案裡,匯入之後 App 是怎麼畫出速度曲線的?
- 是算出來的。App 按順序走過軌跡點,算出每相鄰兩點之間的距離和時間差,拿一個除以另一個,再把結果畫成曲線。只要打開的 GPX 檔案沒有速度擴充,每次都會這樣重新算一遍——曲線是從位置和時間現算出來的,不是從存好的數字裡取出來的。
- 我能自己往 GPX 檔案裡加一個速度值嗎?
- 只能非正式地塞進 extensions 區塊裡,而且沒辦法保證除了寫這個值的那個軟體之外,別的軟體也能正確讀回來。要是希望這個數字換到別的工具裡還能用,更靠得住的做法是讓打開檔案的那個 App 自己從位置和時間算出速度——這個算法在任何 GPX 讀取程式裡都一樣。
記錄你自己的軌跡
TrailCam 是一款 iPhone 上的 GPS 軌跡記錄 App,會把沿途拍下的影片、照片與語音釘在你拍它的那個位置,並支援匯出成 GPX 1.1 或 CSV。免費下載。