working on low level plannedsession
This commit is contained in:
@@ -36,7 +36,7 @@ from rowingdata import (
|
||||
summarydata, get_file_type,
|
||||
)
|
||||
|
||||
from rowers.metrics import axes
|
||||
from rowers.metrics import axes,calc_trimp
|
||||
from async_messages import messages as a_messages
|
||||
import os
|
||||
import zipfile
|
||||
@@ -2212,3 +2212,40 @@ def dataprep(rowdatadf, id=0, bands=True, barchart=True, otwpower=True,
|
||||
conn.close()
|
||||
engine.dispose()
|
||||
return data
|
||||
|
||||
def workout_trimp(workout):
|
||||
r = workout.user
|
||||
df,row = getrowdata_db(id=workout.id)
|
||||
df = clean_df_stats(df)
|
||||
if df.empty:
|
||||
df,row = getrowdata_db(id=workout.id)
|
||||
df = clean_df_stats(df,workstrokesonly=False)
|
||||
trimp = calc_trimp(df,r.sex,r.max,r.rest)
|
||||
trimp = int(trimp)
|
||||
|
||||
return trimp
|
||||
|
||||
def workout_rscore(w):
|
||||
r = workout.user
|
||||
df,row = getrowdata_db(id=workout.id)
|
||||
df = clean_df_stats(df)
|
||||
if df.empty:
|
||||
df,row = getrowdata_db(id=workout.id)
|
||||
df = clean_df_stats(df,workstrokesonly=False)
|
||||
|
||||
duration = df['time'].max()-df['time'].min()
|
||||
duration /= 1.0e3
|
||||
pwr4 = df['power']**(4.0)
|
||||
normp = (pwr4.mean())**(0.25)
|
||||
if not np.isnan(normp):
|
||||
ftp = float(r.ftp)
|
||||
if w.workouttype in ('water','coastal'):
|
||||
ftp = ftp*(100.-r.otwslack)/100.
|
||||
|
||||
intensityfactor = df['power'].mean()/float(ftp)
|
||||
intensityfactor = normp/float(ftp)
|
||||
tss = 100.*((duration*normp*intensityfactor)/(3600.*ftp))
|
||||
else:
|
||||
tss = 0
|
||||
|
||||
return tss
|
||||
|
||||
Reference in New Issue
Block a user