added weighted average - rScore now uses weighted average
This commit is contained in:
@@ -56,7 +56,7 @@ import sys
|
||||
|
||||
import utils
|
||||
import datautils
|
||||
from utils import lbstoN,myqueue,is_ranking_piece
|
||||
from utils import lbstoN,myqueue,is_ranking_piece,wavg
|
||||
|
||||
from timezonefinder import TimezoneFinder
|
||||
|
||||
@@ -2234,16 +2234,19 @@ def workout_rscore(w):
|
||||
df,row = getrowdata_db(id=w.id)
|
||||
df = clean_df_stats(df,workstrokesonly=False)
|
||||
|
||||
df['deltat'] = df['time'].diff()
|
||||
duration = df['time'].max()-df['time'].min()
|
||||
duration /= 1.0e3
|
||||
pwr4 = df['power']**(4.0)
|
||||
normp = (pwr4.mean())**(0.25)
|
||||
df['pwr4'] = df['power']**(4.0)
|
||||
pwr4mean = wavg(df,'pwr4','deltat')
|
||||
pwrmean = wavg(df,'power','deltat')
|
||||
normp = (pwr4mean)**(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 = pwrmean/float(ftp)
|
||||
intensityfactor = normp/float(ftp)
|
||||
tss = 100.*((duration*normp*intensityfactor)/(3600.*ftp))
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user