Differences between revisions 1 and 10 (spanning 9 versions)
Revision 1 as of 2011-01-04 01:48:40
Size: 410
Editor: SamatJain
Comment: First rev
Revision 10 as of 2011-02-16 06:26:44
Size: 2475
Editor: SamatJain
Comment: Remove unnecessary paragraph
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
[[GpxSplitter|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:

 * lxml
 * mxDateTime

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

{{{
sudo aptitude install python-lxml python-egenix-mxdatetime
}}}

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

== Changelog ==

 * v0.2 — 15 Feb 2011 — Bug fixes. Works with both GPX 1.0 and 1.1, tracks without timestamps. Thanks malenki!
 * v0.1 — 28 Jan 2011 — First release (not really kept public)

== Other programs ==

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

 * [[http://b42.cz/gpxsplit/|gpxsplit]] is a Haskell/Haxml-based GPX file splitter. On Ubuntu, required some 360 MB of dependencies (Haskell compilers, libraries, etc).
 * [[http://shallowsky.com/software/mapping/|gpxmgr]] is a Python/minidom-based GPX file splitter. Python's minidom is known for being notoriously slow.

Neither preserve waypoints, a discerning GpxSplitter feature. As you can see in Benchmarks, GpxSplitter is significantly faster.
Line 10: Line 41:
== Other programs == == Future plans ==
Line 12: Line 43:
[[http://b42.cz/gpxsplit/|gpxsplit]] is a Haskell/Haxml-based GPX file splitter Port to Python 3.
Line 14: Line 45:
[[http://shallowsky.com/software/mapping/|gpxmgr]] is a Python/minidom-based GPX file splitter. Python's minidom is known for being notoriously slow. Remove dependency upon mxDateTime. (for Python 3 support)

Make lxml dependency optional, so GpxSplitter can run with Python's built-in ElementTree only. For better portability.

Formalize testing. I have a collection of GPX files I use for testing, but at the moment I test manually. To test functions within GpxSplitter, a rewrite of many functions will probably be required.

== Thanks ==

Thanks for the following people who have helped test and develop GpxSplitter:

 * [[http://www.openstreetmap.org/user/malenki|malenki]]

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:

  • lxml
  • mxDateTime

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

sudo aptitude install python-lxml python-egenix-mxdatetime

Download gpxsplitter.py directly (this link will always download the latest version), or browse the gpxsplitter repository on Gitorious.

Changelog

  • v0.2 — 15 Feb 2011 — Bug fixes. Works with both GPX 1.0 and 1.1, tracks without timestamps. Thanks malenki!
  • v0.1 — 28 Jan 2011 — First release (not really kept public)

Other programs

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

  • gpxsplit is a Haskell/Haxml-based GPX file splitter. On Ubuntu, required some 360 MB of dependencies (Haskell compilers, libraries, etc).

  • gpxmgr is a Python/minidom-based GPX file splitter. Python's minidom is known for being notoriously slow.

Neither preserve waypoints, a discerning GpxSplitter feature. As you can see in Benchmarks, GpxSplitter is significantly faster.

Benchmarks

Very informal testing:

Program

Time

gpxsplit

24s

gpxmgr

32s

gpxsplitter

1s

Future plans

Port to Python 3.

Remove dependency upon mxDateTime. (for Python 3 support)

Make lxml dependency optional, so GpxSplitter can run with Python's built-in ElementTree only. For better portability.

Formalize testing. I have a collection of GPX files I use for testing, but at the moment I test manually. To test functions within GpxSplitter, a rewrite of many functions will probably be required.

Thanks

Thanks for the following people who have helped test and develop GpxSplitter:

SamatsWiki: GpxSplitter (last edited 2016-08-26 16:44:39 by SamatJain)