把一个 GPX 文件拆成两条轨迹
有时候一个 GPX 文件里装着的,其实是该当成两次外出来看的记录。上午走完一段路忘了停 App,中间隔了顿饭和点事,下午另一次外出就这么接着记进了同一个文件;一趟好几天的徒步没有一天存一段,而是从头到尾存成了一个长文件;或者单纯想把一条往返的路看成去、回两段,而不是一条自己绕回来的线。拆分 GPX 文件,说白了就是在点的序列里挑一处切开,把后面那一段另存成一个新文件。下面说说具体怎么做,以及拆分这件事能改变什么、改变不了什么。
先给结论
GPX 里的一条轨迹,是 trk 元素里一串带时间戳、按顺序排好的点。把一条拆成两条,就是挑中间的某一个点,让第一个文件的轨迹在这个点结束,再新建第二个文件,轨迹从这个点往后的所有点开始。坐标和时间戳本身都不变,变的只是它们分在几个文件里。文件不长的话,用文本编辑器手动拆就够了;点多的长文件,交给专门的工具会更省事。
一个文件为什么会需要拆成两个
最常见的原因是忘了停止记录。上午一段散步走完了,App 还在继续跑,中间穿过一顿午饭和几件杂事,一直跑到下午另一次完全不相干的外出——两次本来毫不相干的活动,中间隔着一大段空白,却被存进了同一条轨迹里。
走好几天的徒步则是反过来的情况:不是每天晚上停一次、第二天早上再开始,而是一路记成一个连续的长文件,走的时候倒也没什么问题,但事后如果哪个服务或者自己整理记录时期待一天一个文件,就会不太好处理。也有人单纯就是想把一条往返路线拆成去程和回程两段来看,而不是一条自己折返的线。
这些情况都不是文件「出错」了,只是一次记录覆盖的范围——不管是距离还是时间——事后当成一个整体来用,已经不太合适了。
具体怎么拆
用专门的 GPS 数据工具
GPX Studio 这类浏览器工具,可以把文件读进来,在地图上显示轨迹,让你挑一个点把它切开,直接导出成两个文件,不用碰底层的 XML。GPSBabel 是个专门为转换和处理 GPS 数据做的免费命令行工具,指定某个点或某个时间点来拆分文件,一条命令就能搞定。QGIS 也能做同样的事,作为正经的 GIS 操作,如果拆分是要反复做的事而不是偶尔一次,用它会更顺手。
文件小的话手动来
GPX 就是纯文本,短一点的文件用文本编辑器就能手动拆。找到要切开的那个轨迹点,把这个点往后的所有内容从第一个文件里删掉,粘贴进第二个文件。第二个文件需要自己重新准备一份和第一个文件一样的开头结构——XML 声明、gpx 标签和它的属性,再加一个新的 trk 和 trkseg 来装剩下的点。两个文件都得有完整、对得上的开始和结束标签;要是不按点的边界切,而是直接把 XML 从中间劈成两半,两个文件就都打不开了。
切在哪里比较合适
最好的切点是一次真正的停留,而不是按点数机械地对半分。如果文件本身的时间戳里已经有个空档——两次活动之间的休息,或者原本记录被打断留下的分段——那通常就是最自然的切点,因为这样两个文件都不会在末尾拖着一段本来不属于自己的停留时间。当然也可以在移动过程中间硬切,只是这样两段各自都会缺一部分本来要合在一起看才有意义的距离和时长。
拆分能解决什么,解决不了什么
拆分解决的是「一个文件里装了两次外出」这件事:上传到服务上以后,看到的会是两份各自独立的距离、时长和海拔曲线,而不是一个把不相干的杂事和徒步混在一起、或者把往返两段混成一个数字的合计。
它不会回头修好每一段里面本来就有的问题。海拔数据的噪声、树林底下飘忽的线、站着不动时 GPS 跳一下——这些点本来是什么样,拆完还是什么样,只是分到了两个文件里而已。拆分改变的是数据分在几个文件里,不是数据本身的质量。
在副本上操作,原始文件留着
拆分的时候用文件的副本,别直接改手上唯一的那一份。标签闭合的位置搞错了、第二个文件的开头结构没抄全,这类失误谁都可能碰上,有没动过的原始文件在,重新来一遍就行。
TrailCam 能做什么
TrailCam 每次开始和停止,都会把这段记录当成历史里独立的一条存下来,而不是让不同的外出接续记进同一个还在跑的文件里,所以事后要拆分文件的场景,大多数情况下压根不会出现。它可以把单条轨迹或者整段历史一起导出,格式是 GPX 1.1 文件或者 CSV 汇总。导出属于可选的 TrailCam Pro,App 本身免费下载。
常见问题
- 拆分 GPX 文件会丢数据吗?
- 不会,只要每个点最后都落在某一个文件里就行。拆分只是决定一个点归哪个文件,坐标、海拔和时间戳本身都不受影响。
- 不装任何软件也能拆 GPX 文件吗?
- 文件不长的话可以。它本质就是纯文本的 XML,系统自带的文本编辑器就够用。要是文件很长、有几千个点,用 GPX Studio 这类专门处理 GPS 数据的浏览器工具,会比手动拆靠谱得多。
- 拆出来的两个文件需要各自起名字吗?
- 值得给每个文件里的 name 都填一个名字,文件名也起得清楚一点,免得上传到服务上以后,两条记录顶着原文件同一个名字并排出现。不管起什么名字,都不影响里面的坐标。
记录你自己的轨迹
TrailCam 是一款 iPhone 上的 GPS 轨迹记录 App,会把沿途拍的视频、照片和语音钉在你拍下它的那个位置,并支持导出成 GPX 1.1 或 CSV。免费下载。