Private
Public Access
1
0

getting part

This commit is contained in:
2024-04-09 15:50:54 +02:00
parent 016ff6ca6c
commit 6d6acdbd1e
4 changed files with 37 additions and 38 deletions

View File

@@ -192,11 +192,11 @@ def tailwind(bearing, vwind, winddir):
def interactive_hr_piechart(df, rower, title, totalseconds=0):
if df.empty:
if df.is_empty():
return "", "Not enough data to make a chart"
df.sort_values(by='hr', inplace=True)
df['timehr'] = df['deltat']*df['hr']
df = df.sort("hr")
df = df.with_columns((pl.col("deltat")*pl.col("hr")).alias("deltat"))
sumtimehr = df['deltat'].sum()
@@ -205,24 +205,23 @@ def interactive_hr_piechart(df, rower, title, totalseconds=0):
hrzones = rower.hrzones
qry = 'hr < {ut2}'.format(ut2=rower.ut2)
qrydata = df.query(qry)
qrydata = df.filter(pl.col("hr") < rower.ut2)
frac_lut2 = totalseconds*qrydata['deltat'].sum()/sumtimehr
qry = '{ut2} <= hr < {ut1}'.format(ut1=rower.ut1, ut2=rower.ut2)
frac_ut2 = totalseconds*df.query(qry)['deltat'].sum()/sumtimehr
qrydata = df.lazy().filter(pl.col("hr") >= rower.ut2).filter(pl.col("hr") < rower.ut1)
frac_ut2 = totalseconds*qrydata.collect()['deltat'].sum()/sumtimehr
qry = '{ut1} <= hr < {at}'.format(ut1=rower.ut1, at=rower.at)
frac_ut1 = totalseconds*df.query(qry)['deltat'].sum()/sumtimehr
qrydata = df.lazy().filter(pl.col("hr") >= rower.ut1).filter(pl.col("hr") < rower.at)
frac_ut1 = totalseconds*qrydata.collect()['deltat'].sum()/sumtimehr
qry = '{at} <= hr < {tr}'.format(at=rower.at, tr=rower.tr)
frac_at = totalseconds*df.query(qry)['deltat'].sum()/sumtimehr
qrydata = df.lazy().filter(pl.col("hr") >= rower.at).filter(pl.col("hr") < rower.tr)
frac_at = totalseconds*qrydata.collect()['deltat'].sum()/sumtimehr
qry = '{tr} <= hr < {an}'.format(tr=rower.tr, an=rower.an)
frac_tr = totalseconds*df.query(qry)['deltat'].sum()/sumtimehr
qrydata = df.lazy().filter(pl.col("hr") >= rower.tr).filter(pl.col("hr") < rower.an)
frac_tr = totalseconds*qrydata.collect()['deltat'].sum()/sumtimehr
qry = 'hr >= {an}'.format(an=rower.an)
frac_an = totalseconds*df.query(qry)['deltat'].sum()/sumtimehr
qrydata = df.filter(pl.col("hr") >= rower.an)
frac_an = totalseconds*qrydata['deltat'].sum()/sumtimehr
datadict = {
'<{ut2}'.format(ut2=hrzones[1]): frac_lut2,
@@ -1931,7 +1930,6 @@ def interactive_streamchart(id=0, promember=0):
return [script, div]
def forcecurve_multi_interactive_chart(selected): # pragma: no cover
df_plot = pd.DataFrame()
ids = [analysis.id for analysis in selected]
workoutids = [analysis.workout.id for analysis in selected]
@@ -1940,18 +1938,17 @@ def forcecurve_multi_interactive_chart(selected): # pragma: no cover
columns = ['catch', 'slip', 'wash', 'finish', 'averageforce',
'peakforceangle', 'peakforce', 'spm', 'distance',
'workoutstate', 'workoutid', 'driveenergy', 'cumdist']
columns = columns + [name for name, d in metrics.rowingmetrics]
rowdata = dataprep.getsmallrowdata_db(columns, ids=workoutids,
rowdata = dataprep.getsmallrowdata_pl(columns, ids=workoutids,
workstrokesonly=False)
rowdata = rowdata.fill_nan(None).drop_nulls()
rowdata.dropna(axis=1, how='all', inplace=True)
rowdata.dropna(axis=0, how='any', inplace=True)
if rowdata.empty:
if rowdata.is_empty():
return "", "No Valid Data Available", "", ""
data_dict = rowdata.to_dict("records")
data_dict = rowdata.to_dicts()
thresholdforces = []
for analysis in selected: