diff --git a/rowers/dataprep.py b/rowers/dataprep.py index 543b3872..dcb39469 100644 --- a/rowers/dataprep.py +++ b/rowers/dataprep.py @@ -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: diff --git a/rowers/views/analysisviews.py b/rowers/views/analysisviews.py index 2e49da27..b96d702e 100644 --- a/rowers/views/analysisviews.py +++ b/rowers/views/analysisviews.py @@ -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: diff --git a/rowers/views/workoutviews.py b/rowers/views/workoutviews.py index 31d75fdb..20be4b90 100644 --- a/rowers/views/workoutviews.py +++ b/rowers/views/workoutviews.py @@ -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 = {