From 988a9361d2cffbe19d5c8e96b94d2b4cf1f10537 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Mon, 12 Jun 2017 20:51:09 +0200 Subject: [PATCH 1/3] Algo to reduce too high resolution data files --- rowers/dataprep.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/rowers/dataprep.py b/rowers/dataprep.py index 08d3a202..87073d1a 100644 --- a/rowers/dataprep.py +++ b/rowers/dataprep.py @@ -204,6 +204,15 @@ def getcp(dfgrouped,logarr): cpvalue = pd.Series(cpvalue,name='CP') return delta,cpvalue,avgpower + +def df_resample(datadf): + # time stamps must be in seconds + timestamps = datadf['TimeStamp (sec)'].astype('int') + datadf['timestamps'] = timestamps + newdf = datadf.groupby(['timestamps']).mean() + return newdf + + def clean_df_stats(datadf,workstrokesonly=True,ignorehr=True, ignoreadvanced=False): # clean data remove zeros and negative values @@ -479,6 +488,13 @@ def save_workout_database(f2,r,dosmooth=True,workouttype='rower', powerperc=powerperc,powerzones=r.powerzones) row = rdata(f2,rower=rr) + dtavg = row.df['TimeStamp (sec)'].diff().mean() + + if dtavg < 1: + newdf = df_resample(row.df) + return new_workout_from_df(r,newdf, + title=title) + checks = row.check_consistency() allchecks = 1 for key,value in checks.iteritems(): From bc726db99a6091f43594e22b02e9e5881b912467 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Mon, 12 Jun 2017 20:53:56 +0200 Subject: [PATCH 2/3] remove original uploaded file --- rowers/dataprep.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rowers/dataprep.py b/rowers/dataprep.py index 87073d1a..d116dbc0 100644 --- a/rowers/dataprep.py +++ b/rowers/dataprep.py @@ -492,6 +492,10 @@ def save_workout_database(f2,r,dosmooth=True,workouttype='rower', if dtavg < 1: newdf = df_resample(row.df) + try: + os.remove(f2) + except: + pass return new_workout_from_df(r,newdf, title=title) From e60b97f7012da106fc6a3ef5aafa02f6e6a5e597 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Mon, 12 Jun 2017 21:08:21 +0200 Subject: [PATCH 3/3] OTW rankings only for Pro users --- rowers/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rowers/views.py b/rowers/views.py index e200a596..9b86f619 100644 --- a/rowers/views.py +++ b/rowers/views.py @@ -2775,7 +2775,7 @@ def rankings_view(request,theuser=0, }) # Show ranking distances including predicted paces -@login_required() +@user_passes_test(ispromember,login_url="/",redirect_field_name=None) def otwrankings_view(request,theuser=0, startdate=timezone.now()-datetime.timedelta(days=365), enddate=timezone.now(),