Private
Public Access
1
0

bug fix flex power zones

This commit is contained in:
Sander Roosendaal
2017-01-25 21:59:35 +01:00
parent 3cec874a84
commit 9072d50f5a
4 changed files with 42 additions and 20 deletions

View File

@@ -4,6 +4,7 @@ import time
import gc
import gzip
import shutil
import numpy as np
import rowingdata
from rowingdata import main as rmain
@@ -17,6 +18,8 @@ from matplotlib import figure
import stravalib
from utils import serialize_list,deserialize_list
from rowers.dataprepnodjango import update_strokedata
from django.core.mail import send_mail, BadHeaderError,EmailMessage
@@ -171,6 +174,7 @@ def handle_otwsetpower(f1,boattype,weightvalue,
# This function generates all the static (PNG image) plots
@app.task
def handle_makeplot(f1,f2,t,hrdata,plotnr,imagename):
hrmax = hrdata['hrmax']
hrut2 = hrdata['hrut2']
hrut1 = hrdata['hrut1']
@@ -178,8 +182,8 @@ def handle_makeplot(f1,f2,t,hrdata,plotnr,imagename):
hrtr = hrdata['hrtr']
hran = hrdata['hran']
ftp = hrdata['ftp']
powerzones = hrdata['powerzones']
powerperc = hrdata['powerperc']
powerzones = deserialize_list(hrdata['powerzones'])
powerperc = np.array(deserialize_list(hrdata['powerperc'])).astype(int)
rr = rowingdata.rower(hrmax=hrmax,hrut2=hrut2,
hrut1=hrut1,hrat=hrat,

View File

@@ -13,6 +13,7 @@ from django.core.files.uploadedfile import SimpleUploadedFile
from time import strftime,strptime,mktime,time,daylight
import os
from rowers.tasks import handle_makeplot
from rowers.utils import serialize_list,deserialize_list
from rowers.c2stuff import C2NoTokenError
from minimocktest import MockTestCase
@@ -1062,9 +1063,15 @@ class PlotTests(TestCase):
duration="0:55:00",distance=8000,
csvfilename=filename)
# timestr = strftime("%Y%m%d-%H%M%S")
# imagename = f1+timestr+'.png'
# fullpathimagename = 'static/plots/'+imagename
# timestr = strftime("%Y%m%d-%H%M%S")
# imagename = f1+timestr+'.png'
# fullpathimagename = 'static/plots/'+imagename
powerperc = 100*np.array([r.pw_ut2,
r.pw_ut1,
r.pw_at,
r.pw_tr,r.pw_an])/r.ftp
self.hrdata = {
'hrmax':r.max,
'hrut2':r.ut2,
@@ -1073,7 +1080,9 @@ class PlotTests(TestCase):
'hrtr':r.tr,
'hran':r.an,
'ftp':r.ftp,
}
'powerperc':serialize_list(powerperc),
'powerzones':serialize_list(r.powerzones),
}
def test_ote_plots(self):

View File

@@ -1,4 +1,14 @@
import math
import numpy as np
def serialize_list(value,token=','):
assert(isinstance(value, list) or isinstance(value, tuple) or isinstance(value,np.ndarray))
return token.join([unicode(s) for s in value])
def deserialize_list(value,token=','):
if isinstance(value, list):
return value
return value.split(token)
def geo_distance(lat1,lon1,lat2,lon2):
""" Approximate distance and bearing between two points

View File

@@ -192,7 +192,7 @@ def splitstdata(lijst):
return [np.array(t),np.array(latlong)]
from utils import geo_distance
from utils import geo_distance,serialize_list,deserialize_list
# Check if a user is a Pro member
def promember(user):
@@ -3257,8 +3257,8 @@ def workout_add_power_piechart_view(request,id):
'hrtr':r.tr,
'hran':r.an,
'ftp':r.ftp,
'powerperc':powerperc,
'powerzones':r.powerzones,
'powerperc':serialize_list(powerperc),
'powerzones':serialize_list(r.powerzones),
}
# make plot - asynchronous task
@@ -3308,8 +3308,8 @@ def workout_add_timeplot_view(request,id):
'hrtr':r.tr,
'hran':r.an,
'ftp':r.ftp,
'powerperc':powerperc,
'powerzones':r.powerzones,
'powerperc':serialize_list(powerperc),
'powerzones':serialize_list(r.powerzones),
}
# make plot - asynchronous task
@@ -3361,8 +3361,8 @@ def workout_add_distanceplot_view(request,id):
'hrtr':r.tr,
'hran':r.an,
'ftp':r.ftp,
'powerperc':powerperc,
'powerzones':r.powerzones,
'powerperc':serialize_list(powerperc),
'powerzones':serialize_list(r.powerzones),
}
# make plot - asynchronous task
@@ -3412,8 +3412,8 @@ def workout_add_distanceplot2_view(request,id):
'hrtr':r.tr,
'hran':r.an,
'ftp':r.ftp,
'powerperc':powerperc,
'powerzones':r.powerzones,
'powerperc':serialize_list(powerperc),
'powerzones':serialize_list(r.powerzones),
}
# make plot - asynchronous task
@@ -3465,8 +3465,8 @@ def workout_add_timeplot2_view(request,id):
'hrtr':r.tr,
'hran':r.an,
'ftp':r.ftp,
'powerperc':powerperc,
'powerzones':r.powerzones,
'powerperc':serialize_list(powerperc),
'powerzones':serialize_list(r.powerzones),
}
# make plot - asynchronous task
@@ -3916,7 +3916,6 @@ def workout_upload_view(request,message=""):
r.pw_at,
r.pw_tr,r.pw_an])/r.ftp
print powerperc
rr = rrower(hrmax=r.max,hrut2=r.ut2,
hrut1=r.ut1,hrat=r.at,
hrtr=r.tr,hran=r.an,ftp=r.ftp,
@@ -4031,8 +4030,8 @@ def workout_upload_view(request,message=""):
'hrtr':r.tr,
'hran':r.an,
'ftp':r.ftp,
'powerperc':powerperc,
'powerzones':r.powerzones,
'powerperc':serialize_list(powerperc),
'powerzones':serialize_list(r.powerzones),
}
# make plot - asynchronous task