def check_db_for_training(db,sport,timestamp):
conn = sqlite3.connect(db)
+ conn.text_factory = str
cur = conn.cursor()
cur.execute ("select count(*) from tracks where sport=? and start_time=?" , (sport,timestamp))
def write_parsed_to_db(db,gpx,filename):
conn = sqlite3.connect(db)
+ conn.text_factory = str
cur = conn.cursor()
- cur.execute ("delete from tracks where filename=?" , (filename.decode('UTF-8'),))
+ if type(filename) is str:
+ filename=filename.decode('UTF-8')
+
+ cur.execute ("delete from tracks where filename=?" , (filename,))
tracks = gpx.tracks
try:
name = gpx.name
+ if type(name) is str:
+ name=name.decode('UTF-8')
except:
name = None
descent = track.elevation_loss()
((minlat,minlon),(maxlat,maxlon)) = track.bound_box()
params = (
- gpx.author,name,filename.decode('UTF-8'),
+ gpx.author,name,filename,
track.sport,start_time,full_duration,
distance,filtered_distance,ascent,descent,
start.lat,start.lon,
printable,
minlat,minlon,maxlat,maxlon
)
+ print(params)
cur.execute("""
insert into tracks(
author,name,filename,sport,
write_parsed_to_db(db,gpx,filename)
-
\ No newline at end of file
+def print_parsed_file(filename):
+
+ gpx = pygpx.GPX()
+ gpx.ReadFile(filename)
+
+ for track in gpx.tracks:
+
+ try:
+ author = gpx.author
+ except:
+ author = None
+
+ try:
+ name = gpx.name
+ except:
+ name = None
+
+ start = track.start()
+ if start:
+ printable = pygeocode.GeoName(start.lat,start.lon).printable
+ start_time = track.start_time()
+ full_duration = track.full_duration().total_seconds()
+ distance = track.distance()
+ filtered_distance = track.filtered_distance(max_speed=50)
+ ascent = track.elevation_gain()
+ descent = track.elevation_loss()
+ ((minlat,minlon),(maxlat,maxlon)) = track.bound_box()
+ params = (
+ gpx.author,name,filename.decode('UTF-8'),
+ track.sport,start_time,full_duration,
+ distance,filtered_distance,ascent,descent,
+ start.lat,start.lon,
+ printable,
+ minlat,minlon,maxlat,maxlon
+ )
+ print(params)