#!/usr/bin/python3

import gpxpy
import gpxpy.gpx
import argparse

# setup CLI parsing
parser = argparse.ArgumentParser(
    prog='GPX simplifier',
    description='Reduce number of points and / or remove data from GPX track to make it lighter',
    epilog='')

parser.add_argument('-f', '--filename')
parser.add_argument('-t', '--removetime', action=argparse.BooleanOptionalAction)
parser.add_argument('-d', '--maxdistance')
args = parser.parse_args()

# parse gpx track
gpxfile = open(args.filename, 'r')

gpx = gpxpy.parse(gpxfile)

# drop time data
if args.removetime == True:
    gpx.remove_time()

# simplify
gpx.simplify(max_distance = float(args.maxdistance))

print(gpx.to_xml(prettyprint=False))
