Private
Public Access
1
0

advanced data filtering

This commit is contained in:
Sander Roosendaal
2017-02-28 13:28:11 +01:00
parent 59b4dc4333
commit 34b2a9335b
3 changed files with 185 additions and 55 deletions

View File

@@ -142,6 +142,7 @@ def interactive_forcecurve(theworkouts,workstrokesonly=False):
'workoutstate']
rowdata = dataprep.getsmallrowdata_db(columns,ids=ids)
rowdata.dropna(axis=0,how='any',inplace=True)
workoutstateswork = [1,4,5,8,9,6,7]
workoutstatesrest = [3]
@@ -153,6 +154,7 @@ def interactive_forcecurve(theworkouts,workstrokesonly=False):
except KeyError:
pass
catchav = rowdata['catch'].mean()
finishav = rowdata['finish'].mean()
washav = rowdata['wash'].mean()
@@ -381,15 +383,17 @@ def interactive_histoall(theworkouts):
ids = [int(w.id) for w in theworkouts]
rowdata = dataprep.getsmallrowdata_db(['power'],ids=ids)
rowdata = dataprep.getsmallrowdata_db(['power'],ids=ids,doclean=True)
rowdata.dropna(axis=0,how='any',inplace=True)
histopwr = rowdata['power'].values
if len(histopwr) == 0:
return "","CSV file not found","",""
return "","No valid data available","",""
# throw out nans
histopwr = histopwr[~np.isinf(histopwr)]
histopwr = histopwr[histopwr > 25]
histopwr = histopwr[histopwr < 1000]
plot = Figure(tools=TOOLS,plot_width=900,
toolbar_sticky=False,
@@ -763,7 +767,7 @@ def interactive_streamchart(id=0,promember=0):
rowdata = rdata(f1,rower=rr)
if rowdata == 0:
return "","CSV Data File Not Found"
return "","No Valid Data Available"
dist = rowdata.df.ix[:,'cum_dist']
@@ -810,15 +814,16 @@ def interactive_chart(id=0,promember=0):
columns = ['time','pace','hr','fpace','ftime']
datadf = dataprep.getsmallrowdata_db(columns,ids=[id])
datadf.dropna(axis=0,how='any',inplace=True)
row = Workout.objects.get(id=id)
if datadf.empty:
return "","CSV Data File Not Found"
return "","No Valid Data Available"
else:
datadf.sort_values(by='time',ascending=True,inplace=True)
#datadf,row = dataprep.getrowdata_db(id=id)
#if datadf.empty:
#return "","CSV Data File Not Found"
#return "","No Valid Data Available"
source = ColumnDataSource(
datadf
@@ -887,8 +892,7 @@ def interactive_cum_flex_chart2(theworkouts,promember=0,
# datadf = dataprep.smalldataprep(theworkouts,xparam,yparam1,yparam2)
ids = [int(w.id) for w in theworkouts]
datadf = dataprep.getsmallrowdata_db([xparam,yparam1,yparam2],ids=ids)
datadf = dataprep.getsmallrowdata_db([xparam,yparam1,yparam2],ids=ids,doclean=False)
yparamname1 = axlabels[yparam1]
if yparam2 != 'None':
@@ -1155,10 +1159,13 @@ def interactive_flex_chart2(id=0,promember=0,
'ftime','distance','fpace',
'power','hr','spm',
'time','pace','workoutstate']
rowdata = dataprep.getsmallrowdata_db(columns,ids=[id])
rowdata = dataprep.getsmallrowdata_db(columns,ids=[id],doclean=True)
rowdata.dropna(axis=1,how='all',inplace=True)
row = Workout.objects.get(id=id)
if rowdata.empty:
return "","CSV Data File Not Found"
return "","No valid data"
else:
rowdata.sort_values(by='time',ascending=True,inplace=True)
@@ -1172,13 +1179,23 @@ def interactive_flex_chart2(id=0,promember=0,
except KeyError:
pass
rowdata['x1'] = rowdata.ix[:,xparam]
rowdata['y1'] = rowdata.ix[:,yparam1]
try:
rowdata['x1'] = rowdata.ix[:,xparam]
except KeyError:
rowdata['x1'] = 0*rowdata.ix[:'time']
try:
rowdata['y1'] = rowdata.ix[:,yparam1]
except KeyError:
rowdata['y1'] = 0*rowdata.ix[:,xparam]
tseconds = rowdata.ix[:,'time']
if yparam2 != 'None':
rowdata['y2'] = rowdata.ix[:,yparam2]
try:
rowdata['y2'] = rowdata.ix[:,yparam2]
except KeyError:
rowdata['y2'] = rowdata.ix[:,yparam1]
else:
rowdata['y2'] = rowdata['y1']
@@ -1495,8 +1512,9 @@ def interactive_flex_chart2(id=0,promember=0,
def interactive_bar_chart(id=0,promember=0):
# check if valid ID exists (workout exists)
rowdata,row = dataprep.getrowdata_db(id=id)
rowdata.dropna(axis=0,how='any',inplace=True)
if rowdata.empty:
return "","CSV Data File Not Found"
return "","No Valid Data Available"
# Add hover to this comma-separated string and see what changes
if (promember==1):
@@ -1592,6 +1610,7 @@ def interactive_multiple_compare_chart(ids,xparam,yparam,plottype='line',
'workoutid']
datadf = dataprep.getsmallrowdata_db(columns,ids=ids)
datadf.dropna(axis=0,how='any',inplace=True)
tseconds = datadf.ix[:,'time']
yparamname = axlabels[yparam]
@@ -1749,17 +1768,22 @@ def interactive_comparison_chart(id1=0,id2=0,xparam='distance',yparam='spm',
rowdata1 = dataprep.getsmallrowdata_db(columns,ids=[id1])
rowdata2 = dataprep.getsmallrowdata_db(columns,ids=[id2])
for n in ['distance','power','hr','spm','time','pace','workoutstate']:
rowdata1[n].fillna(value=0,inplace=True)
rowdata2[n].fillna(value=0,inplace=True)
rowdata1.dropna(axis=0,how='any',inplace=True)
rowdata2.dropna(axis=0,how='any',inplace=True)
row1 = Workout.objects.get(id=id1)
row2 = Workout.objects.get(id=id2)
if rowdata1.empty:
return "","CSV Data File Not Found"
return "","No Valid Data Available"
else:
rowdata1.sort_values(by='time',ascending=True,inplace=True)
if rowdata2.empty:
return "","CSV Data File Not Found"
return "","No Valid Data Available"
else:
rowdata2.sort_values(by='time',ascending=True,inplace=True)
@@ -1919,8 +1943,9 @@ def interactive_comparison_chart(id1=0,id2=0,xparam='distance',yparam='spm',
def interactive_otw_advanced_pace_chart(id=0,promember=0):
# check if valid ID exists (workout exists)
rowdata,row = dataprep.getrowdata_db(id=id)
rowdata.dropna(axis=0,how='any',inplace=True)
if rowdata.empty:
return "","CSV Data File Not Found"
return "","No Valid Data Available"
# Add hover to this comma-separated string and see what changes
if (promember==1):