From 82c182f6570998e8383ee70f42bbcf8cc58836f4 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Wed, 1 Mar 2017 15:40:16 +0100 Subject: [PATCH] improved empower calculation of drive length --- rowers/dataprep.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/rowers/dataprep.py b/rowers/dataprep.py index 8365cee1..f0468037 100644 --- a/rowers/dataprep.py +++ b/rowers/dataprep.py @@ -31,7 +31,7 @@ import os import pandas as pd import numpy as np import itertools - +import math from tasks import handle_sendemail_unrecognized from django.conf import settings @@ -460,7 +460,7 @@ def save_workout_database(f2,r,dosmooth=True,workouttype='rower', # put stroke data in database res = dataprep(row.df,id=w.id,bands=True, - barchart=True,otwpower=True,empower=True) + barchart=True,otwpower=True,empower=True,inboard=inboard) return (w.id,message) @@ -892,7 +892,7 @@ def smalldataprep(therows,xparam,yparam1,yparam2): # saves it to the stroke_data table in the database # Takes a rowingdata object's DataFrame as input def dataprep(rowdatadf,id=0,bands=True,barchart=True,otwpower=True, - empower=True): + empower=True,inboard=0.88): rowdatadf.set_index([range(len(rowdatadf))],inplace=True) t = rowdatadf.ix[:,'TimeStamp (sec)'] t = pd.Series(t-rowdatadf.ix[0,'TimeStamp (sec)']) @@ -1005,7 +1005,11 @@ def dataprep(rowdatadf,id=0,bands=True,barchart=True,otwpower=True, finish = rowdatadf.ix[:,'finish'] peakforceangle = rowdatadf.ix[:,'peakforceangle'] driveenergy = rowdatadf.ix[:,'driveenergy'] - drivelength = driveenergy/(averageforce*4.44822) + arclength = (inboard-0.05)*(np.radians(finish)-np.radians(catch)) + if arclength.mean()>0: + drivelength = arclength + else: + drivelength = driveenergy/(averageforce*4.44822) slip = rowdatadf.ix[:,'slip'] if windowsize > 3 and windowsize