From 6eaa594875ee09090477719c7586c2e442e9cb74 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Tue, 30 May 2017 09:23:27 +0200 Subject: [PATCH] getting coordinates right on fusion --- rowers/dataprep.py | 23 +++++++++++++++++++++++ rowers/views.py | 3 ++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/rowers/dataprep.py b/rowers/dataprep.py index 708c3d16..762c4ea3 100644 --- a/rowers/dataprep.py +++ b/rowers/dataprep.py @@ -95,6 +95,22 @@ from scipy.signal import savgol_filter import datetime +def get_latlon(id): + try: + w = Workout.objects.get(id=id) + except Workout.DoesNotExist: + return False + + rowdata = rdata(w.csvfilename) + try: + latitude = rowdata.df.ix[:,' latitude'] + longitude = rowdata.df.ix[:,' longitude'] + except KeyError: + latitude = 0*rowdata.df.ix[:,'TimeStamp (sec)'] + latitude = 0*rowdata.df.ix[:,'TimeStamp (sec)'] + + return [latitude,longitude] + def get_workouts(ids,userid): goodids = [] for id in ids: @@ -1107,6 +1123,13 @@ def datafusion(id1,id2,columns,offset): 'id'], 1,errors='ignore') + # Add coordinates to DataFrame + latitude,longitude = get_latlon(id1) + + df1[' latitude'] = latitude + df1[' longitude'] = longitude + + df2 = getsmallrowdata_db(['time']+columns,ids=[id2],doclean=False) offsetmillisecs = offset.seconds*1000+offset.microseconds/1000. offsetmillisecs += offset.days*(3600*24*1000) diff --git a/rowers/views.py b/rowers/views.py index f534f623..b8abbc77 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -3854,7 +3854,7 @@ def workout_wind_view(request,id=0,message="",successmessage=""): except KeyError: hascoordinates = 0 - if not latitude.std(): + if hascoordinates and not latitude.std(): hascoordinates = 0 try: @@ -6958,6 +6958,7 @@ def workout_fusion_view(request,id1=0,id2=1): if posneg == 'neg': timeoffset = -timeoffset + # Create DataFrame df = dataprep.datafusion(id1,id2,columns,timeoffset) idnew,message = dataprep.new_workout_from_df(r,df,