From 988a9361d2cffbe19d5c8e96b94d2b4cf1f10537 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Mon, 12 Jun 2017 20:51:09 +0200 Subject: [PATCH] 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():