#!/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()