Private
Public Access
1
0

using rpe to calculate trimp/tss

This commit is contained in:
Sander Roosendaal
2020-12-02 15:38:50 +01:00
parent c909c401dc
commit b6785c9376
4 changed files with 33 additions and 4 deletions

View File

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

View File

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

View File

@@ -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')

View File

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