Merge branch 'develop' of bitbucket.org:sanderroosendaal/rowsandall into develop
This commit is contained in:
+32
-2
@@ -467,7 +467,7 @@ def createc2workoutdata_as_splits(w):
|
|||||||
def createc2workoutdata(w):
|
def createc2workoutdata(w):
|
||||||
filename = w.csvfilename
|
filename = w.csvfilename
|
||||||
try:
|
try:
|
||||||
row = rowingdata(filename)
|
row = rowingdata(csvfile=filename)
|
||||||
except IOError:
|
except IOError:
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
@@ -478,6 +478,32 @@ def createc2workoutdata(w):
|
|||||||
averagehr = 0
|
averagehr = 0
|
||||||
maxhr = 0
|
maxhr = 0
|
||||||
|
|
||||||
|
# Calculate intervalstats
|
||||||
|
itime, idist, itype = row.intervalstats_values()
|
||||||
|
lapnames = row.df[' lapIdx'].unique()
|
||||||
|
nrintervals = len(itime)
|
||||||
|
if len(lapnames != nrintervals):
|
||||||
|
newlapnames = []
|
||||||
|
for name in lapnames:
|
||||||
|
newlapnames += [name,name]
|
||||||
|
lapnames = newlapnames
|
||||||
|
intervaldata = []
|
||||||
|
for i in range(nrintervals):
|
||||||
|
if itime[i]>0:
|
||||||
|
mask = (row.df[' lapIdx'] == lapnames[i]) & (row.df[' WorkoutState'] == itype[i])
|
||||||
|
spmav = int(row.df[' Cadence (stokes/min)'][mask].mean().astype(int))
|
||||||
|
hrav = int(row.df[' HRCur (bpm)'][mask].mean().astype(int))
|
||||||
|
intervaldict = {
|
||||||
|
'type': 'distance',
|
||||||
|
'time': int(10*itime[i]),
|
||||||
|
'distance': int(idist[i]),
|
||||||
|
'heart_rate': {
|
||||||
|
'average':hrav,
|
||||||
|
},
|
||||||
|
'stroke_rate': spmav,
|
||||||
|
}
|
||||||
|
intervaldata.append(intervaldict)
|
||||||
|
|
||||||
# adding diff, trying to see if this is valid
|
# adding diff, trying to see if this is valid
|
||||||
t = 10*row.df.loc[:,'TimeStamp (sec)'].values-10*row.df.loc[:,'TimeStamp (sec)'].iloc[0]
|
t = 10*row.df.loc[:,'TimeStamp (sec)'].values-10*row.df.loc[:,'TimeStamp (sec)'].iloc[0]
|
||||||
try:
|
try:
|
||||||
@@ -547,13 +573,17 @@ def createc2workoutdata(w):
|
|||||||
"time": int(10*makeseconds(durationstr)),
|
"time": int(10*makeseconds(durationstr)),
|
||||||
"weight_class": c2wc(w.weightcategory),
|
"weight_class": c2wc(w.weightcategory),
|
||||||
"comments": w.notes,
|
"comments": w.notes,
|
||||||
|
'stroke_rate': int(row.df[' Cadence (stokes/min)'].mean()),
|
||||||
|
'drag_factor': int(row.dragfactor),
|
||||||
"heart_rate": {
|
"heart_rate": {
|
||||||
"average": averagehr,
|
"average": averagehr,
|
||||||
"max": maxhr,
|
"max": maxhr,
|
||||||
},
|
},
|
||||||
"stroke_data": stroke_data,
|
"stroke_data": stroke_data,
|
||||||
|
'workout': {
|
||||||
|
'splits': intervaldata,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
|||||||
@@ -1671,7 +1671,11 @@ def getrowdata_db(id=0, doclean=False, convertnewtons=True,
|
|||||||
def getsmallrowdata_db(columns, ids=[], doclean=True,workstrokesonly=True,compute=True):
|
def getsmallrowdata_db(columns, ids=[], doclean=True,workstrokesonly=True,compute=True):
|
||||||
# prepmultipledata(ids)
|
# prepmultipledata(ids)
|
||||||
|
|
||||||
|
if ids:
|
||||||
csvfilenames = ['media/strokedata_{id}.parquet.gz'.format(id=id) for id in ids]
|
csvfilenames = ['media/strokedata_{id}.parquet.gz'.format(id=id) for id in ids]
|
||||||
|
else:
|
||||||
|
return pd.DataFrame()
|
||||||
|
|
||||||
data = []
|
data = []
|
||||||
columns = [c for c in columns if c != 'None']
|
columns = [c for c in columns if c != 'None']
|
||||||
columns = list(set(columns))
|
columns = list(set(columns))
|
||||||
|
|||||||
@@ -708,7 +708,7 @@ def testdata(time,distance,pace,spm):
|
|||||||
|
|
||||||
|
|
||||||
def getsmallrowdata_db(columns,ids=[],debug=False):
|
def getsmallrowdata_db(columns,ids=[],debug=False):
|
||||||
csvfilenames = ['media/strokedata_{id}.parquet'.format(id=id) for id in ids]
|
csvfilenames = ['media/strokedata_{id}.parquet.gz'.format(id=id) for id in ids]
|
||||||
data = []
|
data = []
|
||||||
columns = [c for c in columns if c != 'None']
|
columns = [c for c in columns if c != 'None']
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -16,8 +16,8 @@ from django.dispatch import receiver
|
|||||||
from django.forms.widgets import SplitDateTimeWidget,SelectDateWidget
|
from django.forms.widgets import SplitDateTimeWidget,SelectDateWidget
|
||||||
#from django.forms.extras.widgets import SelectDateWidget
|
#from django.forms.extras.widgets import SelectDateWidget
|
||||||
from django.forms.formsets import BaseFormSet
|
from django.forms.formsets import BaseFormSet
|
||||||
from django.contrib.admin.widgets import AdminDateWidget,AdminTimeWidget,AdminSplitDateTime
|
|
||||||
from datetimewidget.widgets import DateTimeWidget
|
from datetimewidget.widgets import DateTimeWidget
|
||||||
|
from django.contrib.admin.widgets import AdminDateWidget,AdminTimeWidget,AdminSplitDateTime
|
||||||
from django.core.validators import validate_email
|
from django.core.validators import validate_email
|
||||||
import os
|
import os
|
||||||
import twitter
|
import twitter
|
||||||
|
|||||||
Reference in New Issue
Block a user