Private
Public Access
1
0

first test on breakthrough workouts (only on upload)

This commit is contained in:
Sander Roosendaal
2017-06-14 01:01:37 +02:00
parent e4d0e38b80
commit 4b0707b7f4
2 changed files with 48 additions and 0 deletions

View File

@@ -43,6 +43,7 @@ from sqlalchemy import create_engine
import sqlalchemy as sa
import sys
import utils
from utils import lbstoN
from scipy.interpolate import griddata
@@ -139,6 +140,34 @@ def filter_df(datadf,fieldname,value,largerthan=True):
return datadf
def getsinglecp(df):
thesecs = df['TimeStamp (sec)'].max()-df['TimeStamp (sec)'].min()
if thesecs != 0:
maxt = 2*thesecs
else:
maxt = 1000.
maxlog10 = np.log10(maxt)
logarr = np.arange(50)*maxlog10/50.
logarr = [int(10.**(la)) for la in logarr]
logarr = pd.Series(logarr)
logarr.drop_duplicates(keep='first',inplace=True)
logarr = logarr.values
dfnew = pd.DataFrame({
'time':df['TimeStamp (sec)']-df.ix[0,'TimeStamp (sec)'],
'power':df[' Power (watts)']
})
dfnew['workoutid'] = 0
dfgrouped = dfnew.groupby(['workoutid'])
delta,cpvalue,avgpower = getcp(dfgrouped,logarr)
return delta,cpvalue,avgpower
def getcp(dfgrouped,logarr):
delta = []
cpvalue = []
@@ -488,6 +517,12 @@ def save_workout_database(f2,r,dosmooth=True,workouttype='rower',
powerperc=powerperc,powerzones=r.powerzones)
row = rdata(f2,rower=rr)
isbreakthrough = False
if workouttype == 'water':
delta,cpvalues,avgpower = getsinglecp(row.df)
if utils.isbreakthrough(delta,cpvalues,r.p0,r.p1,r.p2,r.p3):
isbreakthrough = True
dtavg = row.df['TimeStamp (sec)'].diff().mean()
if dtavg < 1:
@@ -643,6 +678,10 @@ def save_workout_database(f2,r,dosmooth=True,workouttype='rower',
w.save()
# submit email task to send email about breakthrough workout
if isbreakthrough:
pass
if privacy == 'visible':
ts = Team.objects.filter(rower=r)
for t in ts: