first pass - untested
This commit is contained in:
@@ -1202,7 +1202,7 @@ def getsmallrowdata_db(columns,ids=[],doclean=True,workstrokesonly=True):
|
||||
return data
|
||||
|
||||
# Fetch both the workout and the workout stroke data (from CSV file)
|
||||
def getrowdata(id=0,convertnewtons=True):
|
||||
def getrowdata(id=0):
|
||||
|
||||
# check if valid ID exists (workout exists)
|
||||
row = Workout.objects.get(id=id)
|
||||
@@ -1263,7 +1263,7 @@ def read_cols_df_sql(ids,columns,convertnewtons=True):
|
||||
if not c in axx:
|
||||
columns.remove(c)
|
||||
|
||||
columns = list(columns)+['distance','spm']
|
||||
columns = list(columns)+['distance','spm','workoutid']
|
||||
columns = [x for x in columns if x != 'None']
|
||||
columns = list(set(columns))
|
||||
cls = ''
|
||||
@@ -1297,14 +1297,14 @@ def read_cols_df_sql(ids,columns,convertnewtons=True):
|
||||
funits = ((w.id,w.forceunit) for w in Workout.objects.filter(id__in=ids))
|
||||
for id,u in funits:
|
||||
if u=='lbs':
|
||||
mask = data['workoutid']==id
|
||||
mask = df['workoutid']==id
|
||||
df.loc[mask,'peakforce'] = data.loc[mask,'peakforce']*lbstoN
|
||||
if 'averageforce' in columns:
|
||||
funits = ((w.id,w.forceunit) for w in Workout.objects.filter(id__in=ids))
|
||||
for id,u in funits:
|
||||
if u=='lbs':
|
||||
mask = data['workoutid']==id
|
||||
df.loc[mask,'averageforce'] = data.loc[mask,'averageforce']*lbstoN
|
||||
mask = df['workoutid']==id
|
||||
df.loc[mask,'averageforce'] = df.loc[mask,'averageforce']*lbstoN
|
||||
|
||||
engine.dispose()
|
||||
return df
|
||||
@@ -1399,6 +1399,9 @@ def smalldataprep(therows,xparam,yparam1,yparam2):
|
||||
|
||||
# data fusion
|
||||
def datafusion(id1,id2,columns,offset):
|
||||
workout1 = Workout.objects.get(id=id1)
|
||||
workout2 = Workout.objects.get(id=id2)
|
||||
|
||||
df1,w1 = getrowdata_db(id=id1)
|
||||
df1 = df1.drop([#'cumdist',
|
||||
'hr_ut2',
|
||||
@@ -1412,7 +1415,7 @@ def datafusion(id1,id2,columns,offset):
|
||||
'workoutid',
|
||||
'id'],
|
||||
1,errors='ignore')
|
||||
|
||||
|
||||
# Add coordinates to DataFrame
|
||||
latitude,longitude = get_latlon(id1)
|
||||
|
||||
@@ -1421,6 +1424,18 @@ def datafusion(id1,id2,columns,offset):
|
||||
|
||||
|
||||
df2 = getsmallrowdata_db(['time']+columns,ids=[id2],doclean=False)
|
||||
|
||||
forceunit = 'N'
|
||||
# set Force to same units
|
||||
if 'averageforce' in columns or 'peakforce' in columns:
|
||||
forceunit = workout2.forceunit
|
||||
if workout1.forceunit == 'lbs' and workout2.forceunit == 'N':
|
||||
df1['averageforce'] *= lbstoN
|
||||
df1['peakforce'] *= lbstoN
|
||||
if workout1.forceunit == 'N' and workout2.forceunit == 'lbs':
|
||||
df1['averageforce'] /= lbstoN
|
||||
df1['peakforce'] /= lbstoN
|
||||
|
||||
offsetmillisecs = offset.seconds*1000+offset.microseconds/1000.
|
||||
offsetmillisecs += offset.days*(3600*24*1000)
|
||||
df2['time'] = df2['time']+offsetmillisecs
|
||||
|
||||
Reference in New Issue
Block a user