gc_area/parse_gpx.py

29 lines
554 B
Python
Raw Normal View History

2023-08-27 10:37:43 +00:00
#!/bin/python3
import gpxpy
import gpxpy.gpx
import shapely
import pickle
GPX_IN_FILE = 'caches.gpx'
GPX_OUT_FILE = 'koggenland.gpx'
PICKLE_FILE = 'polygon.pickle'
def main():
with open(PICKLE_FILE, 'rb') as f:
area = pickle.load(f)
with open(GPX_IN_FILE, 'rb') as f:
gpx = gpxpy.parse(f)
gpx.waypoints = list(filter(lambda wp: area.contains(
shapely.Point(wp.latitude, wp.longitude)), gpx.waypoints))
with open(GPX_OUT_FILE, 'w') as f:
f.write(gpx.to_xml())
if __name__ == '__main__':
main()