Size: 410
Comment: First rev
|
Size: 2628
Comment: Change links to point to new repository. Indicate new release v0.2
|
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 }}} 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/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 43: |
== Other programs == | == Future plans == |
Line 12: | Line 45: |
[[http://b42.cz/gpxsplit/|gpxsplit]] is a Haskell/Haxml-based GPX file splitter | Port to Python 3. |
Line 14: | Line 47: |
[[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
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.
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: