adding critical stroke rate chart
This commit is contained in:
@@ -553,7 +553,10 @@ def setcp(workout, background=False, recurrance=True):
|
||||
# check dts
|
||||
tarr = datautils.getlogarr(4000)
|
||||
if df['delta'][0] in tarr:
|
||||
return(df, df['delta'], df['cp'])
|
||||
try:
|
||||
return(df, df['delta'], df['cp'], df['cr'])
|
||||
except KeyError:
|
||||
return(df, df['delta'], df['cp'], 0*df['cp'])
|
||||
except Exception as e:
|
||||
try:
|
||||
os.remove(filename)
|
||||
@@ -565,7 +568,7 @@ def setcp(workout, background=False, recurrance=True):
|
||||
strokesdf = remove_nulls_pl(strokesdf)
|
||||
|
||||
if strokesdf.is_empty():
|
||||
return pl.DataFrame({'delta': [], 'cp': []}), pl.Series(dtype=pl.Float64), pl.Series(dtype=pl.Float64)
|
||||
return pl.DataFrame({'delta': [], 'cp': [], 'cr': []}), pl.Series(dtype=pl.Float64), pl.Series(dtype=pl.Float64), pl.Series(dtype=pl.Float64)
|
||||
|
||||
totaltime = strokesdf['time'].max()
|
||||
maxt = totaltime/1000.
|
||||
@@ -580,7 +583,7 @@ def setcp(workout, background=False, recurrance=True):
|
||||
elif os.path.exists(csvfilename+'.gz'): # pragma: no cover
|
||||
csvfile = csvfilename+'.gz'
|
||||
else: # pragma: no cover
|
||||
return pl.DataFrame({'delta': [], 'cp': []}), pl.Series(dtype=pl.Float64), pl.Series(dtype=pl.Float64)
|
||||
return pl.DataFrame({'delta': [], 'cp': [], 'cr': []}), pl.Series(dtype=pl.Float64), pl.Series(dtype=pl.Float64), pl.Series(dtype=pl.Float64)
|
||||
csvfile = os.path.abspath(csvfile)
|
||||
|
||||
with grpc.insecure_channel(
|
||||
@@ -593,7 +596,7 @@ def setcp(workout, background=False, recurrance=True):
|
||||
grpc.channel_ready_future(channel).result(timeout=10)
|
||||
except grpc.FutureTimeoutError: # pragma: no cover
|
||||
dologging('metrics.log','grpc channel time out in setcp')
|
||||
return pl.DataFrame({'delta': [], 'cp': []}), pl.Series(dtype=pl.Float64), pl.Series(dtype=pl.Float64)
|
||||
return pl.DataFrame({'delta': [], 'cp': [], 'cr':[]}), pl.Series(dtype=pl.Float64), pl.Series(dtype=pl.Float64), pl.Series(dtype=pl.Float64)
|
||||
|
||||
stub = metrics_pb2_grpc.MetricsStub(channel)
|
||||
req = metrics_pb2.CPRequest(filename = csvfile, filetype = "CSV", tarr = logarr)
|
||||
@@ -602,16 +605,18 @@ def setcp(workout, background=False, recurrance=True):
|
||||
response = stub.GetCP(req, timeout=60)
|
||||
except Exception as e:
|
||||
dologging('metrics.log', traceback.format_exc())
|
||||
return pl.DataFrame({'delta': [], 'cp': []}), pl.Series(dtype=pl.Float64), pl.Series(dtype=pl.Float64)
|
||||
return pl.DataFrame({'delta': [], 'cp': [], 'cr': []}), pl.Series(dtype=pl.Float64), pl.Series(dtype=pl.Float64), pl.Series(dtype=pl.Float64)
|
||||
|
||||
delta = pl.Series(np.array(response.delta))
|
||||
cpvalues = pl.Series(np.array(response.power))
|
||||
powermean = response.avgpower
|
||||
spmvalues = pl.Series(np.array(response.spm))
|
||||
|
||||
try:
|
||||
df = pl.DataFrame({
|
||||
'delta': delta,
|
||||
'cp': cpvalues,
|
||||
'cr': spmvalues,
|
||||
'id': workout.id,
|
||||
})
|
||||
|
||||
@@ -620,7 +625,7 @@ def setcp(workout, background=False, recurrance=True):
|
||||
|
||||
except Exception as e:
|
||||
dologging("metrics.log", "setcp: "+ str(e))
|
||||
return pl.DataFrame({'delta': [], 'cp': []}), pl.Series(dtype=pl.Float64), pl.Series(dtype=pl.Float64)
|
||||
return pl.DataFrame({'delta': [], 'cp': [], 'cr': []}), pl.Series(dtype=pl.Float64), pl.Series(dtype=pl.Float64), pl.Series(dtype=pl.Float64)
|
||||
|
||||
#df.to_parquet(filename, engine='fastparquet', compression='GZIP')
|
||||
|
||||
@@ -631,7 +636,7 @@ def setcp(workout, background=False, recurrance=True):
|
||||
workout.goldmedalduration = goldmedalduration
|
||||
workout.save()
|
||||
|
||||
return df, delta, cpvalues
|
||||
return df, delta, cpvalues, spmvalues # pragma: no cover
|
||||
|
||||
|
||||
|
||||
@@ -772,7 +777,7 @@ def fetchcp_new(rower, workouts):
|
||||
data = []
|
||||
|
||||
for workout in workouts:
|
||||
df, delta, cpvalues = setcp(workout)
|
||||
df, delta, cpvalues, cpvalues_spm = setcp(workout)
|
||||
df = df.drop('id')
|
||||
df = df.with_columns((pl.lit(str(workout))).alias("workout"))
|
||||
df = df.with_columns((pl.lit(workout.url())).alias("url"))
|
||||
@@ -780,7 +785,7 @@ def fetchcp_new(rower, workouts):
|
||||
data.append(df)
|
||||
|
||||
if len(data) == 0:
|
||||
return pl.Series(dtype=pl.Float64), pl.Series(dtype=pl.Float64), 0, pl.Series(dtype=pl.Float64), pl.Series(dtype=pl.Float64)
|
||||
return pl.Series(dtype=pl.Float64), pl.Series(dtype=pl.Float64), pl.Series(dtype=pl.Float64), 0, pl.Series(dtype=pl.Float64), pl.Series(dtype=pl.Float64)
|
||||
if len(data) > 1:
|
||||
df = pl.concat(data)
|
||||
|
||||
@@ -791,11 +796,16 @@ def fetchcp_new(rower, workouts):
|
||||
pl.all().sort_by('cp').last(),
|
||||
])
|
||||
except (KeyError, ColumnNotFoundError): # pragma: no cover
|
||||
return pl.Series(dtype=pl.Float64), pl.Series(dtype=pl.Float64), 0, pl.Series(dtype=pl.Float64), pl.Series(dtype=pl.Float64)
|
||||
return pl.Series(dtype=pl.Float64), pl.Series(dtype=pl.Float64), pl.Series(dtype=pl.Float64), 0, pl.Series(dtype=pl.Float64), pl.Series(dtype=pl.Float64)
|
||||
|
||||
df = df.filter(pl.col("cp")>20)
|
||||
|
||||
return df['delta'], df['cp'], 0, df['workout'], df['url']
|
||||
try:
|
||||
testje = df['cr']
|
||||
except KeyError:
|
||||
return df['delta'], df['cp'], 0*df['cp'], 0, df['workout'], df['url']
|
||||
|
||||
return df['delta'], df['cp'], df['cr'], 0, df['workout'], df['url']
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user