Private
Public Access
1
0

some optimizations

This commit is contained in:
Sander Roosendaal
2017-06-16 08:04:06 +02:00
parent 4b0707b7f4
commit b7487f1f77
4 changed files with 48 additions and 38 deletions

View File

@@ -179,16 +179,16 @@ def getcp(dfgrouped,logarr):
ww = group['power'].copy()
tmax = tt.max()
newlen = int(tmax/2000.)
print newlen,len(ww)
newt = np.arange(newlen)*tmax/float(newlen)
neww = griddata(tt.values,
ww.values,
newt,method='linear',
rescale=True)
newlen = int(tmax/5000.)
if newlen < len(tt):
newt = np.arange(newlen)*tmax/float(newlen)
ww = griddata(tt.values,
ww.values,
newt,method='linear',
rescale=True)
#tt = pd.Series(newt)
#ww = pd.Series(neww)
tt = pd.Series(newt)
ww = pd.Series(ww)
try:
avgpower[id] = int(ww.mean())
@@ -198,41 +198,49 @@ def getcp(dfgrouped,logarr):
length = len(ww)
dt = []
cpw = []
for i in range(length-2):
w_roll = ww.rolling(i+2).mean().dropna()
if len(w_roll):
# now goes with # data points - should be fixed seconds
indexmax = w_roll.idxmax(axis=1)
try:
t_0 = tt.ix[indexmax]
t_1 = tt.ix[indexmax-i]
deltat = 1.0e-3*(t_0-t_1)
wmax = w_roll.ix[indexmax]
if not np.isnan(deltat) and not np.isnan(wmax):
dt.append(deltat)
cpw.append(wmax)
except KeyError:
pass
for i in xrange(length-2):
deltat,wmax = getmaxwattinterval(tt,ww,i)
if not np.isnan(deltat) and not np.isnan(wmax):
dt.append(deltat)
cpw.append(wmax)
dt = pd.Series(dt)
cpw = pd.Series(cpw)
if len(dt):
cpvalues = griddata(dt.values,
cpw.values,
logarr,method='linear',
rescale=True)
cpvalues = griddata(dt.values,
cpw.values,
logarr,method='linear',
rescale=True)
for cpv in cpvalues:
cpvalue.append(cpv)
for d in logarr:
delta.append(d)
for cpv in cpvalues:
cpvalue.append(cpv)
for d in logarr:
delta.append(d)
delta = pd.Series(delta,name='Delta')
cpvalue = pd.Series(cpvalue,name='CP')
return delta,cpvalue,avgpower
def getmaxwattinterval(tt,ww,i):
w_roll = ww.rolling(i+2).mean().dropna()
if len(w_roll):
# now goes with # data points - should be fixed seconds
indexmax = w_roll.idxmax(axis=1)
try:
t_0 = tt.ix[indexmax]
t_1 = tt.ix[indexmax-i]
deltat = 1.0e-3*(t_0-t_1)
wmax = w_roll.ix[indexmax]
except KeyError:
pass
else:
wmax = 0
deltat = 0
return deltat,wmax
def df_resample(datadf):
# time stamps must be in seconds

View File

@@ -7409,7 +7409,7 @@ def workout_summary_edit_view(request,id,message="",successmessage=""
iunits = []
itypes = []
iresults = []
for i in range(nrintervals):
for i in xrange(nrintervals):
try:
t = datetime.datetime.strptime(request.POST['intervalt_%s' % i],"%H:%M:%S.%f")
except ValueError:
@@ -7462,7 +7462,7 @@ def workout_summary_edit_view(request,id,message="",successmessage=""
iunits = []
itypes = []
iresults = []
for i in range(nrintervals):
for i in xrange(nrintervals):
t = cd['intervalt_%s' % i]
timesecs = t.total_seconds()
itime += [timesecs]
@@ -7496,7 +7496,7 @@ def workout_summary_edit_view(request,id,message="",successmessage=""
form = SummaryStringForm()
initial = {}
for i in range(nrintervals):
for i in xrange(nrintervals):
initial['intervald_%s' % i] = idist[i]
initial['intervalt_%s' % i] = get_time(itime[i])
initial['type_%s' % i] = itype[i]