Private
Public Access
1
0

Merge branch 'develop' of bitbucket.org:sanderroosendaal/rowsandall into develop

This commit is contained in:
Sander Roosendaal
2019-10-31 14:55:23 +01:00
4 changed files with 325 additions and 291 deletions
+32 -2
View File
@@ -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
+4
View File
@@ -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))
+1 -1
View File
@@ -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
View File
@@ -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