TrailCam

指南

怎么把 GPX 文件转换成 CSV

「手上有一条 GPX 轨迹,想在表格里看」——这个需求听起来很简单,但「转换」这个词承担的事情比看上去多。GPX 和 CSV 不是同一份信息装在两个不同的容器里,它们本来存的东西就不一样,把一个转成另一个,也只能变出原本就在里面的那些内容。GPX 转 CSV 实际能给你什么,跟大多数人真正想要的东西之间,差在哪里。

先说结论

没有哪种格式会自己变身,你需要一个能读懂 GPX 里的 XML、再把它写成行和列的工具——QGIS 这类 GIS 软件、浏览器里的 GPX 编辑工具,或者一小段脚本,通常就是这几条路。不管用哪一种,它读的都是文件里的点,给你的都是一张表。这张表里有什么,完全取决于原来的 GPX 文件里有什么——这一点值得先弄清楚,再决定要不要动手转换。

「转换」可能是两件不同的事

GPX 文件本质上是一串记录下来的点——坐标、海拔、时间戳,仅此而已。机械地转换一次,你会得到一份逐点的 CSV:文件里每个点占一行,列是纬度、经度、海拔、时间,一趟徒步动辄几千行。这个转换很忠实,但多数人说「想要 CSV 格式的徒步记录」时,脑子里想的其实不是这个。

大多数人真正想要的是一份汇总——一趟徒步一行,列是距离、时长、配速、爬升。这些数字,GPX 文件里一个都没有。距离、时长、配速都是算出来的,是记录或回放这条路线的那个 App 算出来的结果,原始的 GPX 文件里根本没有存放它们的位置。转换一份 GPX 文件变不出汇总 CSV,因为汇总本来就不在文件里,没有东西可以「转」。

拿到逐点的 CSV

能把 GPX 当图层打开的 GIS 工具,通常可以直接把属性表导出成 CSV,一个轨迹点一行。如果你确实要处理原始的几何数据——检查记录有没有断点、自己把海拔和距离画成图、把坐标喂给别的分析工具——这就是你要的输出:一份很大、很朴素的文件,只有四列有用的数据,什么都没帮你算。

直接拿到汇总

如果你真正想要的是表格里的距离、时长、配速和爬升,更近的路是找一个在记录时或记录后就已经算好这些数字的 App,直接把汇总导出成 CSV。这样根本用不上「转换」这一步——数字已经算好了,导出只是把它们写进文件,不用再从原始的点重新推算一遍。

容易搞错的地方

  • 以为转出来的 CSV 里会有距离和配速——不会,除非做转换的工具自己算过这些数字,而不是只把原始的点重新排了一下格式。
  • 一趟徒步转出几千行,以为哪里出了问题——逐点转换本来就是这样,一个记录点一行,很正常。
  • 两个转换工具给出的列名不一样——CSV 不像 GPX 那样有统一的结构,列叫什么、排在第几列,全看做转换的工具自己怎么定。
  • 海拔那一列是空的——如果原始 GPX 本身就没有海拔数据,任何转换工具都变不出来。

TrailCam 在这件事上是怎么做的

TrailCam 在你走的时候就记下距离、时长、配速和爬升,单条轨迹或整段历史都能直接导出成 CSV 汇总,同一条轨迹也能导出成 GPX 1.1。想把这些数字放进表格,其实完全不需要事后去转换 GPX 文件——CSV 导出里数字已经算好了。导出是可选的 TrailCam Pro 里的功能,App 本身免费下载。

常见问题

把 GPX 转成 CSV,能拿到距离和配速吗?
光靠转换不行。GPX 文件里只有坐标、海拔和时间,距离和配速是 App 从这些点算出来的;单纯重新排一下格式的转换工具,手上没有算这些数字的材料。
转出来的 CSV 为什么是几千行,而不是一趟徒步一行?
因为这才是 GPX 文件里实际存的东西——一串单独的点,不是汇总。想要一趟徒步一行的表,得靠一个已经算好总量的 App,单纯的转换做不到。
轨迹数据有没有统一的 CSV 格式?
没有。GPX 有一套所有读取方都认的固定结构,CSV 只是一张表,列名和顺序全看是哪个工具导出来的。

记录你自己的轨迹

TrailCam 是一款 iPhone 上的 GPS 轨迹记录 App,会把沿途拍的视频、照片和语音钉在你拍下它的那个位置,并支持导出成 GPX 1.1 或 CSV。免费下载。

在 App Store 下载