gpxsplitter splits multi-track GPX files, containing waypoints, into individual one-track GPX files with their respective waypoints.

GPX files containing multiple tracks and waypoints jumbled together are produced on export by many GPS units, particularly MTK chipset-based devices such as the Qstarz Q1000 and Transystem i-Blue 474. Separating tracks and their associated waypoints was a headache until gpxsplitter came along.

gpxsplitter depends on the Python 2.6 (or above in the 2.x series) and the modules:

On Debian/Ubuntu, you can install the required dependencies with:

sudo aptitude install python-lxml python-egenix-mxdatetime

At some point, I'm going to refactor gpxsplitter to not need mxDateTime and depend on ElementTree in Python's stdlib, so script can work on Python 3.

[[|http://gitorious.org/gpxsplitter/gpxsplitter/blobs/raw/master/gpxsplitter.pyDownload gpxsplitter.py directly]] (this link will always download the latest version), or browse the gpxsplitter repository on Gitorious.

Changelog

v0.1 — 04 Jan 2010 — First release.

Benchmarks

Very informal testing:

Program

Time

gpxsplit

24s

gpxmgr

32s

gpxsplitter

1s

Other programs

I found a few pre-existing programs that perform the same, or similar function:

As you can see in Benchmarks, gpxsplitter is significantly faster, and requires fewer dependencies.