Private
Public Access
1
0

added weighted average - rScore now uses weighted average

This commit is contained in:
Sander Roosendaal
2018-02-24 14:23:48 +01:00
parent f4a66a78cf
commit 57eee137ce
4 changed files with 27 additions and 7 deletions

View File

@@ -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: