Skip to content

Instantly share code, notes, and snippets.

@mrgriscom
Created December 28, 2011 08:58
Show Gist options
  • Save mrgriscom/1527181 to your computer and use it in GitHub Desktop.
Save mrgriscom/1527181 to your computer and use it in GitHub Desktop.
parse GPX trackfiles
from xml.etree import ElementTree as et
import sys
from datetime import datetime
def _(tag):
return '{%s}%s' % ('http://www.topografix.com/GPX/1/1', tag)
def parse(f):
node = et.parse(f).getroot()
for p in node.findall('.//%s' % _('trkpt')):
lat = float(p.attrib['lat'])
lon = float(p.attrib['lon'])
alt = float(p.find(_('ele')).text)
timestamp = datetime.strptime(p.find(_('time')).text, '%Y-%m-%dT%H:%M:%SZ')
yield (timestamp, lat, lon, alt)
if __name__ == "__main__":
with open(sys.argv[1]) as f:
print sorted(list(parse(f)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment