fixed power time fitness chart
This commit is contained in:
@@ -1037,7 +1037,7 @@ def fetchcp_new(rower,workouts):
|
|||||||
if len(data)>1:
|
if len(data)>1:
|
||||||
df = pd.concat(data,axis=0)
|
df = pd.concat(data,axis=0)
|
||||||
|
|
||||||
df = df = df[df['cp'] == df.groupby(['delta'])['cp'].transform('max')]
|
df = df[df['cp'] == df.groupby(['delta'])['cp'].transform('max')]
|
||||||
|
|
||||||
|
|
||||||
df = df.sort_values(['delta']).reset_index()
|
df = df.sort_values(['delta']).reset_index()
|
||||||
|
|||||||
@@ -1535,6 +1535,7 @@ def fitnessmetric_chart(fitnessmetrics,user,workoutmode='rower',startdate=None,
|
|||||||
power1hr = [int(m.PowerOneHour) for m in fitnessmetrics]
|
power1hr = [int(m.PowerOneHour) for m in fitnessmetrics]
|
||||||
dates = [m.date for m in fitnessmetrics]
|
dates = [m.date for m in fitnessmetrics]
|
||||||
|
|
||||||
|
|
||||||
mode = [m.workoutmode for m in fitnessmetrics]
|
mode = [m.workoutmode for m in fitnessmetrics]
|
||||||
|
|
||||||
if len(power4min) == 0:
|
if len(power4min) == 0:
|
||||||
@@ -1584,7 +1585,6 @@ def fitnessmetric_chart(fitnessmetrics,user,workoutmode='rower',startdate=None,
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
# fit
|
# fit
|
||||||
|
|
||||||
resampled = groups.set_index('dates')
|
resampled = groups.set_index('dates')
|
||||||
@@ -1667,11 +1667,13 @@ def fitnessmetric_chart(fitnessmetrics,user,workoutmode='rower',startdate=None,
|
|||||||
plot.sizing_mode = 'stretch_both'
|
plot.sizing_mode = 'stretch_both'
|
||||||
|
|
||||||
plot.y_range = Range1d(0,1.5*max(power4min))
|
plot.y_range = Range1d(0,1.5*max(power4min))
|
||||||
|
startdate = datetime.datetime.combine(startdate,datetime.datetime.min.time())
|
||||||
|
enddate = datetime.datetime.combine(enddate,datetime.datetime.min.time())
|
||||||
if not startdate:
|
if not startdate:
|
||||||
startdate = min(date)
|
startdate = datetime.datetime.combine(min(date), datetime.datetime.min.time())
|
||||||
|
|
||||||
if not enddate:
|
if not enddate:
|
||||||
enddate = max(date)
|
enddate = datetime.datetime.combine(max(date), datetime.datetime.min.time())
|
||||||
|
|
||||||
plot.x_range = Range1d(
|
plot.x_range = Range1d(
|
||||||
startdate,enddate,
|
startdate,enddate,
|
||||||
@@ -1689,6 +1691,8 @@ def fitnessmetric_chart(fitnessmetrics,user,workoutmode='rower',startdate=None,
|
|||||||
|
|
||||||
script,div = components(plot)
|
script,div = components(plot)
|
||||||
|
|
||||||
|
print(len(script))
|
||||||
|
|
||||||
return [script,div]
|
return [script,div]
|
||||||
|
|
||||||
def interactive_histoall(theworkouts,histoparam,includereststrokes,
|
def interactive_histoall(theworkouts,histoparam,includereststrokes,
|
||||||
|
|||||||
@@ -58,7 +58,6 @@ def do_update(user,mode='rower',days=42):
|
|||||||
except ValueError:
|
except ValueError:
|
||||||
max_id = 0
|
max_id = 0
|
||||||
|
|
||||||
|
|
||||||
if last_update_date < now_date and max_workout_id < max_id:
|
if last_update_date < now_date and max_workout_id < max_id:
|
||||||
job = myqueue(queuelow,
|
job = myqueue(queuelow,
|
||||||
handle_updatefitnessmetric,
|
handle_updatefitnessmetric,
|
||||||
|
|||||||
@@ -201,8 +201,6 @@ def handle_strava_sync(stravatoken,workoutid,filename,name,activity_type,descrip
|
|||||||
failed = True
|
failed = True
|
||||||
except stravalib.exc.ObjectNotFound:
|
except stravalib.exc.ObjectNotFound:
|
||||||
failed = True
|
failed = True
|
||||||
except stravalib.exc.TimeoutExceeded:
|
|
||||||
failed = True
|
|
||||||
except ActivityUploadFailed:
|
except ActivityUploadFailed:
|
||||||
failed = True
|
failed = True
|
||||||
|
|
||||||
@@ -2078,12 +2076,28 @@ def cp_from_workoutids(workoutids,debug=False):
|
|||||||
maxt = 1.05*df['time'].max()/1000.
|
maxt = 1.05*df['time'].max()/1000.
|
||||||
|
|
||||||
logarr = datautils.getlogarr(maxt)
|
logarr = datautils.getlogarr(maxt)
|
||||||
|
data = []
|
||||||
|
|
||||||
delta,cpvalue,avgpower = datautils.getcp(dfgrouped,logarr)
|
for id in workoutids:
|
||||||
|
cpfile = 'media/cpdata_{id}.parquet.gz'.format(id=id)
|
||||||
|
try:
|
||||||
|
df = pd.read_parquet(cpfile)
|
||||||
|
df['workout'] = str(id)
|
||||||
|
data.append(df)
|
||||||
|
except:
|
||||||
|
pass # ignore for now
|
||||||
|
|
||||||
|
if len(data) == 0:
|
||||||
|
return 0,0,0
|
||||||
|
if len(data)>1:
|
||||||
|
df = pd.concat(data,axis=0)
|
||||||
|
|
||||||
|
df = df[df['cp'] == df.groupby(['delta'])['cp'].transform('max')]
|
||||||
|
df = df.sort_values(['delta']).reset_index()
|
||||||
|
|
||||||
powerdf = pd.DataFrame({
|
powerdf = pd.DataFrame({
|
||||||
'Delta':delta,
|
'Delta':df['delta'],
|
||||||
'CP':cpvalue,
|
'CP':df['cp'],
|
||||||
})
|
})
|
||||||
|
|
||||||
powerdf = powerdf[powerdf['CP']>0]
|
powerdf = powerdf[powerdf['CP']>0]
|
||||||
|
|||||||
@@ -1505,9 +1505,11 @@ def fitnessmetric_view(request,userid=0,mode='rower',
|
|||||||
|
|
||||||
fitnessmetrics = PowerTimeFitnessMetric.objects.filter(
|
fitnessmetrics = PowerTimeFitnessMetric.objects.filter(
|
||||||
user=theuser,
|
user=theuser,
|
||||||
|
workoutmode=mode,
|
||||||
date__gte=startdate,
|
date__gte=startdate,
|
||||||
date__lte=enddate)
|
date__lte=enddate)
|
||||||
|
|
||||||
|
|
||||||
script,thediv = fitnessmetric_chart(
|
script,thediv = fitnessmetric_chart(
|
||||||
fitnessmetrics,theuser,
|
fitnessmetrics,theuser,
|
||||||
workoutmode=mode,startdate=startdate,
|
workoutmode=mode,startdate=startdate,
|
||||||
|
|||||||
Reference in New Issue
Block a user