TRIMP working
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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',
|
||||||
|
|||||||
Reference in New Issue
Block a user