using rpe to calculate trimp/tss
This commit is contained in:
@@ -13,6 +13,20 @@ from rowers.mytypes import otwtypes,otetypes,rowtypes
|
||||
#p0 = [500,350,10,8000]
|
||||
p0 = [190,200,33,16000]
|
||||
|
||||
# RPE to TSS
|
||||
rpetotss = {
|
||||
1:20,
|
||||
2:30,
|
||||
3:40,
|
||||
4:50,
|
||||
5:60,
|
||||
6:70,
|
||||
7:80,
|
||||
8:100,
|
||||
9:120,
|
||||
10:140,
|
||||
}
|
||||
|
||||
def updatecp(delta,cpvalues,r,workouttype='water'):
|
||||
if workouttype in otwtypes:
|
||||
p0 = r.p0
|
||||
|
||||
@@ -97,7 +97,7 @@ import rowers.c2stuff as c2stuff
|
||||
from rowers.metrics import axes,axlabels,yaxminima,yaxmaxima,get_yaxminima,get_yaxmaxima
|
||||
|
||||
from rowers.utils import lbstoN
|
||||
from rowers.datautils import p0
|
||||
from rowers.datautils import p0,rpetotss
|
||||
import rowers.datautils as datautils
|
||||
|
||||
from pandas.core.groupby.groupby import DataError
|
||||
@@ -1650,18 +1650,29 @@ def getfatigues(
|
||||
if metricchoice == 'rscore':
|
||||
factor = 2.0
|
||||
|
||||
for i in range(nrdays):
|
||||
for i in range(nrdays+1):
|
||||
date = startdate+datetime.timedelta(days=i)
|
||||
ws = Workout.objects.filter(user=user.rower,date=date,duplicate=False)
|
||||
weight = 0
|
||||
for w in ws:
|
||||
weight += factor*getattr(w,metricchoice)
|
||||
if getattr(w,metricchoice) <= 0:
|
||||
if metricchoice == 'rscore' and w.hrtss != 0:
|
||||
if metricchoice == 'rscore' and w.hrtss > 0:
|
||||
weight+= factor*w.hrtss
|
||||
else:
|
||||
trimp,hrtss = dataprep.workout_trimp(w)
|
||||
rscore,normp = dataprep.workout_rscore(w)
|
||||
if w.rpe and w.rpe > 0:
|
||||
dd = 3600*w.duration.hour+60*w.duration.minute+w.duration.second
|
||||
dd = dd/3600
|
||||
weight += factor*rpetotss[w.rpe]*dd
|
||||
if metricchoice == 'trimp' and w.trimp <= 0:
|
||||
trimp,hrtss = dataprep.workout_trimp(w)
|
||||
rscore,normp = dataprep.workout_rscore(w)
|
||||
if w.rpe and w.rpe > 0:
|
||||
dd = 3600*w.duration.hour+60*w.duration.minute+w.duration.second
|
||||
dd = dd/3600
|
||||
weight += factor*rpetotss[w.rpe]*dd
|
||||
|
||||
impulses.append(weight)
|
||||
|
||||
|
||||
@@ -2948,7 +2948,7 @@ class Workout(models.Model):
|
||||
normp = models.IntegerField(default=-1,blank=True)
|
||||
normv = models.FloatField(default=-1,blank=True)
|
||||
normw = models.FloatField(default=-1,blank=True)
|
||||
goldmedalstandard = models.FloatField(default=-1,blank=True)
|
||||
goldmedalstandard = models.FloatField(default=-1,blank=True,verbose_name='Gold Medal Standard')
|
||||
rpe = models.IntegerField(default=0,blank=True,choices=rpechoices,
|
||||
verbose_name='Rate of Perceived Exertion')
|
||||
|
||||
|
||||
@@ -585,12 +585,16 @@ def addmanual_view(request,raceid=0):
|
||||
weightcategory = form.cleaned_data['weightcategory']
|
||||
adaptiveclass = form.cleaned_data['adaptiveclass']
|
||||
distance = form.cleaned_data['distance']
|
||||
rpe = form.cleaned_data['rpe']
|
||||
if not rpe:
|
||||
rpe = -1
|
||||
notes = form.cleaned_data['notes']
|
||||
thetimezone = form.cleaned_data['timezone']
|
||||
private = form.cleaned_data['private']
|
||||
avghr = metricsform.cleaned_data['avghr']
|
||||
avgpwr = metricsform.cleaned_data['avgpwr']
|
||||
avgspm = metricsform.cleaned_data['avgspm']
|
||||
|
||||
try:
|
||||
ps = form.cleaned_data['plannedsession']
|
||||
except KeyError:
|
||||
|
||||
Reference in New Issue
Block a user