Private
Public Access
1
0

bug fix zeropower

This commit is contained in:
Sander Roosendaal
2020-10-21 19:59:58 +02:00
parent 52c15644ba
commit 4b1f3d50f2
3 changed files with 8 additions and 68 deletions

View File

@@ -1037,8 +1037,6 @@ def fetchcp_new(rower,workouts):
if len(data)>1:
df = pd.concat(data,axis=0)
print(df)
df = df = df[df['cp'] == df.groupby(['delta'])['cp'].transform('max')]
@@ -1054,6 +1052,8 @@ def setcp(workout,background=False):
job = myqueue(queuelow,handle_setcp,strokesdf,filename,workout.id)
return job.id
if not strokesdf.empty:
totaltime = strokesdf['time'].max()
try:

View File

@@ -522,11 +522,13 @@ def cpdata(workouts, options):
ids = [w.id for w in workouts]
delta, cpvalue, avgpower,workoutnames = dataprep.fetchcp_new(r,workouts)
powerdf = pd.DataFrame({
'Delta':delta,
'CP':cpvalue,
'workout':workoutnames,
})
if powerdf.empty:

View File

@@ -1278,8 +1278,9 @@ def workouts_join_select(request,
def remove_power_view(request,id=0):
r = getrower(request.user)
workout = get_workout_by_opaqueid(request,id)
try:
os.remove('media/cpdata{id}.parquet.gz'.format(id=workout.id))
os.remove('media/cpdata_{id}.parquet.gz'.format(id=workout.id))
except OSError:
pass
@@ -1294,75 +1295,12 @@ def remove_power_view(request,id=0):
powerperc=powerperc, powerzones=r.powerzones)
row = rdata(f,rower=rr)
row.df[' Power (watts)'] = 0
row.write_csv(f)
res = dataprep.dataprep(row.df, id=workout.id)
cpdf,delta,cpvalues = dataprep.setcp(workout)
if not cpdf.empty:
if workouttype in mytypes.otwtypes:
res, btvalues, res2 = utils.isbreakthrough(
delta, cpvalues, r.p0, r.p1, r.p2, r.p3, r.cpratio)
cprange = r.cprange
firstdate = datetime.date.today()-datetime.timedelta(days=cprange)
workouts = Workout.objects.filter(
date__gte=firstdate,
workouttype__in=otwtypes,
user = w.user,
)
dataprep.initiate_cp(r)
dd,cpcp,avgpower,workoutnames = dataprep.fetchcp_new(r,workouts)
powerdf = pd.DataFrame({
'Delta':dd,
'CP':cpcp,
})
powerdf = powerdf[powerdf['CP']>0]
powerdf.dropna(axis=0,inplace=True)
powerdf.sort_values(['Delta','CP'],ascending=[1,0],inplace=True)
powerdf.drop_duplicates(subset='Delta',keep='first',inplace=True)
res2 = datautils.cpfit(powerdf)
if len(powerdf) != 0:
p1 = res2[0]
r.p0 = p1[0]
r.p1 = p1[1]
r.p2 = p1[2]
r.p3 = p1[3]
r.cpratio = res2[3]
r.save()
elif workouttype in mytypes.otetypes:
res, btvalues, res2 = utils.isbreakthrough(
delta, cpvalues, r.ep0, r.ep1, r.ep2, r.ep3, r.ecpratio)
cprange = r.cprange
firstdate = datetime.date.today()-datetime.timedelta(days=cprange)
workouts = Workout.objects.filter(
date__gte=firstdate,
workouttype__in=otetypes,
user = w.user,
)
dd,cpcp,avgpower,workoutnames = fetchcp_new(r,workouts)
powerdf = pd.DataFrame({
'Delta':dd,
'CP':cpcp,
})
powerdf = powerdf[powerdf['CP']>0]
powerdf.dropna(axis=0,inplace=True)
powerdf.sort_values(['Delta','CP'],ascending=[1,0],inplace=True)
powerdf.drop_duplicates(subset='Delta',keep='first',inplace=True)
res2 = datautils.cpfit(powerdf)
if len(powerdf) != 0:
res = datautils.cpfit(powerdf)
p1 = res2[0]
r.ep0 = p1[0]
r.ep1 = p1[1]
r.ep2 = p1[2]
r.ep3 = p1[3]
r.ecpratio = res2[3]
r.save()
url = reverse(r.defaultlandingpage,
kwargs = {