Gpx_converter.py uses Tkinter to open a file browser to select files for processing. You can:
* Convert a GPX file into a text(csv) and shape file
* Convert a shape file into a GPX file
* Convert a multitrack GPX file into a file with one track having multiple segments
* Break up a single line GPX file into multiple lines
* Round off GPX lat/lon coordinates
Gpx_converter.py was tested on Linux OS with Python 3.4.2 and Tkinter 8.5.
GPX_Converter v30. This version (30f) will set up the necessary folder (gpx_converter_30) and subfolders in your home directory and will create argument and option configuration files from default values. It will even create VRT files! Simply download and start to use it. You can customize various user preferences. Button icons can be displayed by unzipping the image file (near bottom of this page) and place the images in the image folder (created the first time you run the program). It runs well on Linux and Python 3.4 but I have not tested it on earlier Python versions. Note: there are a couple of option configuration file incompatibilities between this 30f version and versions earlier than 25.
System calls to cs2cs and ogr2ogr are built into the program. You need to have those programs installed on your computer. If you have QGIS or SAGA or GRASS installed on Linux then you are probably good to go. I went with system calls because my current gdal version (1.10) is not supported by Python 3.
I have not put much effort in getting gpx_converter.py to work on Windows. Needs different coding for the home directory and system calls, and a fix to make input GPX files work.
You can run gpx_converter.py by using the command: python3 gpx_converter-30f.py
A sample waypoint CSV output is below. You can customize headings and columns.
Here is a zip file of images for the button display. You can use your own small .gif files for decoration. The images in the zip file are 16px x 16px. Download: images6buttons.tar.gz
If you are trouble shooting it works well to open the program in a terminal instead of using a launcher. The terminal will stay open and give you helpful error messages. You can change a setting in the program USER_SETTINGS and the config files (in the config subfolder).
More information on using gpx2csv-shp.py can be found in hints.txt.
I've recently made a time converter function, time_to_time.py, that can
be used independently from the gpx_converter-30f.py program. It takes a GPX time string,
<time>2016-09-08T19:01:46Z</time>, an input time zone integer, and an output time zone integer. The
argument string just needs time units separated by something, not necessarily a GPX time format.
The function returns Local Time in a tupel containing year, month, day, hour, minutes, seconds. You can convert a
GPX UTC time string to your local time by using an input zone of 0 (UTC time zone) and an output zone that you want.
Making this function was more fun than trying to figure out the Python library or external time libraries!