TRIMP working
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
from utils import lbstoN
|
||||
import numpy as np
|
||||
|
||||
rowingmetrics = (
|
||||
('time',{
|
||||
@@ -301,3 +302,17 @@ dropping to 8m for race pace in the single.""",
|
||||
This value should be fairly constant across all stroke rates.""",
|
||||
},
|
||||
)
|
||||
|
||||
def calc_trimp(df,sex,hrmax,hrmin):
|
||||
if sex == 'male':
|
||||
f = 1.92
|
||||
else:
|
||||
f = 1.67
|
||||
|
||||
dt = df['time'].diff()/6.e4
|
||||
|
||||
hrr = (df['hr']-hrmin)/(hrmax-hrmin)
|
||||
trimpdata = dt*hrr*0.64*np.exp(f*hrr)
|
||||
trimp = trimpdata.sum()
|
||||
|
||||
return trimp
|
||||
|
||||
@@ -59,6 +59,7 @@ from rowers.models import (
|
||||
)
|
||||
from rowers.models import FavoriteForm,BaseFavoriteFormSet,SiteAnnouncement
|
||||
from rowers.metrics import rowingmetrics,defaultfavoritecharts
|
||||
from rowers import metrics
|
||||
import rowers.uploads as uploads
|
||||
from django.forms.formsets import formset_factory
|
||||
import StringIO
|
||||
@@ -6891,6 +6892,8 @@ def workout_stats_view(request,id=0,message="",successmessage=""):
|
||||
if datadf.empty:
|
||||
return HttpResponse("CSV data file not found")
|
||||
|
||||
|
||||
|
||||
workoutstateswork = [1,4,5,8,9,6,7]
|
||||
workoutstatesrest = [3]
|
||||
workoutstatetransition = [0,2,10,11,12,13]
|
||||
@@ -6987,6 +6990,15 @@ def workout_stats_view(request,id=0,message="",successmessage=""):
|
||||
except ZeroDivisionError,ValueError:
|
||||
pass
|
||||
|
||||
# TRIMP
|
||||
if datadf['hr'].mean() > 0 and r.sex != 'not specified':
|
||||
trimp = metrics.calc_trimp(datadf,r.sex,r.max,r.rest)
|
||||
trimp = int(trimp)
|
||||
otherstats['trimp'] = {
|
||||
'verbose_name': 'TRIMP',
|
||||
'value': trimp,
|
||||
'unit': 'minutes'
|
||||
}
|
||||
|
||||
return render(request,
|
||||
'workoutstats.html',
|
||||
|
||||
Reference in New Issue
Block a user