Private
Public Access
1
0

TRIMP working

This commit is contained in:
Sander Roosendaal
2017-12-07 09:19:36 +01:00
parent 2f7fcf444b
commit 9721aa6a9c
2 changed files with 27 additions and 0 deletions

View File

@@ -1,4 +1,5 @@
from utils import lbstoN from utils import lbstoN
import numpy as np
rowingmetrics = ( rowingmetrics = (
('time',{ ('time',{
@@ -301,3 +302,17 @@ dropping to 8m for race pace in the single.""",
This value should be fairly constant across all stroke rates.""", 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

View File

@@ -59,6 +59,7 @@ from rowers.models import (
) )
from rowers.models import FavoriteForm,BaseFavoriteFormSet,SiteAnnouncement from rowers.models import FavoriteForm,BaseFavoriteFormSet,SiteAnnouncement
from rowers.metrics import rowingmetrics,defaultfavoritecharts from rowers.metrics import rowingmetrics,defaultfavoritecharts
from rowers import metrics
import rowers.uploads as uploads import rowers.uploads as uploads
from django.forms.formsets import formset_factory from django.forms.formsets import formset_factory
import StringIO import StringIO
@@ -6891,6 +6892,8 @@ def workout_stats_view(request,id=0,message="",successmessage=""):
if datadf.empty: if datadf.empty:
return HttpResponse("CSV data file not found") return HttpResponse("CSV data file not found")
workoutstateswork = [1,4,5,8,9,6,7] workoutstateswork = [1,4,5,8,9,6,7]
workoutstatesrest = [3] workoutstatesrest = [3]
workoutstatetransition = [0,2,10,11,12,13] workoutstatetransition = [0,2,10,11,12,13]
@@ -6987,6 +6990,15 @@ def workout_stats_view(request,id=0,message="",successmessage=""):
except ZeroDivisionError,ValueError: except ZeroDivisionError,ValueError:
pass 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, return render(request,
'workoutstats.html', 'workoutstats.html',