fixing ub
This commit is contained in:
@@ -26,7 +26,7 @@ def updatecp(delta,cpvalues,r):
|
||||
powerdf.dropna(axis=0,inplace=True)
|
||||
powerdf.sort_values(['Delta','CP'],ascending=[1,0],inplace=True)
|
||||
powerdf.drop_duplicates(subset='Delta',keep='first',inplace=True)
|
||||
|
||||
|
||||
|
||||
res = cpfit(powerdf)
|
||||
p1 = res[0]
|
||||
@@ -45,7 +45,7 @@ def cpfit(powerdf):
|
||||
# Fit the data to thee parameter CP model
|
||||
fitfunc = lambda pars,x: abs(pars[0])/(1+(x/abs(pars[2]))) + abs(pars[1])/(1+(x/abs(pars[3])))
|
||||
errfunc = lambda pars,x,y: fitfunc(pars,x)-y
|
||||
|
||||
|
||||
|
||||
p1 = p0
|
||||
|
||||
@@ -58,7 +58,7 @@ def cpfit(powerdf):
|
||||
except:
|
||||
factor = fitfunc(p0,thesecs.mean())/theavpower.mean()
|
||||
p1 = [p0[0]/factor,p0[1]/factor,p0[2],p0[3]]
|
||||
|
||||
|
||||
else:
|
||||
factor = fitfunc(p0,thesecs.mean())/theavpower.mean()
|
||||
p1 = [p0[0]/factor,p0[1]/factor,p0[2],p0[3]]
|
||||
@@ -82,7 +82,7 @@ def cpfit(powerdf):
|
||||
dd = fitpoints-theavpower
|
||||
ddmin = dd.min()
|
||||
frac = abs(ddmin)/fitpoints.mean()
|
||||
|
||||
|
||||
ratio = fitpoints.mean()/fitpoints0.mean()
|
||||
|
||||
return p1,fitt,fitpower,ratio
|
||||
@@ -90,8 +90,15 @@ def cpfit(powerdf):
|
||||
def getlogarr(maxt):
|
||||
maxlog10 = np.log10(maxt-5)
|
||||
logarr = np.arange(50)*maxlog10/50.
|
||||
logarr = [5+int(10.**(la)) for la in logarr]
|
||||
logarr = pd.Series(logarr)
|
||||
res = []
|
||||
for la in logarr:
|
||||
try:
|
||||
v = 5+int(10.**(la))
|
||||
except ValueError:
|
||||
v = 0
|
||||
res.append(v)
|
||||
|
||||
logarr = pd.Series(res)
|
||||
logarr.drop_duplicates(keep='first',inplace=True)
|
||||
|
||||
logarr = logarr.values
|
||||
@@ -111,9 +118,9 @@ def getsinglecp(df):
|
||||
'time':1000*(df['TimeStamp (sec)']-df.loc[:,'TimeStamp (sec)'].iloc[0]),
|
||||
'power':df[' Power (watts)']
|
||||
})
|
||||
|
||||
|
||||
dfnew['workoutid'] = 0
|
||||
|
||||
|
||||
dfgrouped = dfnew.groupby(['workoutid'])
|
||||
delta,cpvalue,avgpower = getcp(dfgrouped,logarr)
|
||||
|
||||
@@ -124,7 +131,7 @@ def getcp_new(dfgrouped,logarr):
|
||||
cpvalue = []
|
||||
avgpower = {}
|
||||
|
||||
|
||||
|
||||
for id, group in dfgrouped:
|
||||
tt = group['time'].copy()
|
||||
|
||||
@@ -149,7 +156,7 @@ def getcp_new(dfgrouped,logarr):
|
||||
ww.values,
|
||||
newt,method='linear',
|
||||
rescale=True)
|
||||
|
||||
|
||||
tt = pd.Series(newt)
|
||||
ww = pd.Series(ww)
|
||||
|
||||
@@ -178,7 +185,7 @@ def getcp_new(dfgrouped,logarr):
|
||||
|
||||
restime = []
|
||||
power = []
|
||||
|
||||
|
||||
for i in np.arange(0,len(tt)+1,1):
|
||||
restime.append(deltat*i)
|
||||
cp = np.diag(F,i).max()
|
||||
@@ -189,19 +196,19 @@ def getcp_new(dfgrouped,logarr):
|
||||
restime = np.array(restime)
|
||||
power = np.array(power)
|
||||
|
||||
|
||||
|
||||
#power[0] = power[1]
|
||||
|
||||
|
||||
cpvalues = griddata(restime,power,
|
||||
logarr,method='linear', fill_value=0)
|
||||
|
||||
|
||||
|
||||
|
||||
for cpv in cpvalues:
|
||||
cpvalue.append(cpv)
|
||||
for d in logarr:
|
||||
delta.append(d)
|
||||
|
||||
|
||||
df = pd.DataFrame({
|
||||
'delta':delta,
|
||||
'cpvalue':cpvalue
|
||||
@@ -215,8 +222,8 @@ def getcp_new(dfgrouped,logarr):
|
||||
cpvalue = df['cpvalue']
|
||||
|
||||
return delta,cpvalue,avgpower
|
||||
|
||||
|
||||
|
||||
|
||||
def getcp(dfgrouped,logarr):
|
||||
delta = []
|
||||
cpvalue = []
|
||||
@@ -228,7 +235,7 @@ def getcp(dfgrouped,logarr):
|
||||
ww = group['power'].copy()
|
||||
|
||||
# Remove data where PM is repeating final power value
|
||||
# of an interval during the rest
|
||||
# of an interval during the rest
|
||||
rolling_std = ww.rolling(window=4).std()
|
||||
deltas = tt.diff()
|
||||
|
||||
@@ -240,7 +247,7 @@ def getcp(dfgrouped,logarr):
|
||||
|
||||
tmax = tt.max()
|
||||
|
||||
|
||||
|
||||
if tmax > 500000:
|
||||
newlen = int(tmax/2000.)
|
||||
else:
|
||||
@@ -255,7 +262,7 @@ def getcp(dfgrouped,logarr):
|
||||
tt = pd.Series(newt)
|
||||
ww = pd.Series(ww)
|
||||
|
||||
|
||||
|
||||
try:
|
||||
avgpower[id] = int(ww.mean())
|
||||
except ValueError:
|
||||
@@ -272,7 +279,7 @@ def getcp(dfgrouped,logarr):
|
||||
cpw.append(wmax)
|
||||
|
||||
|
||||
|
||||
|
||||
dt = pd.Series(dt)
|
||||
cpw = pd.Series(cpw)
|
||||
if len(dt)>2:
|
||||
@@ -286,12 +293,12 @@ def getcp(dfgrouped,logarr):
|
||||
for d in logarr:
|
||||
delta.append(d)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
delta = pd.Series(delta,name='Delta')
|
||||
cpvalue = pd.Series(cpvalue,name='CP')
|
||||
|
||||
|
||||
|
||||
cpdf = pd.DataFrame({
|
||||
'delta':delta,
|
||||
'cpvalue':cpvalue
|
||||
@@ -332,4 +339,3 @@ def getmaxwattinterval(tt,ww,i):
|
||||
deltat = 0
|
||||
|
||||
return deltat,wmax
|
||||
|
||||
|
||||
@@ -30,6 +30,7 @@ import datetime
|
||||
import pytz
|
||||
import iso8601
|
||||
|
||||
from json.decoder import JSONDecodeError
|
||||
|
||||
from matplotlib.backends.backend_agg import FigureCanvas
|
||||
#from matplotlib.backends.backend_cairo import FigureCanvasCairo as FigureCanvas
|
||||
@@ -2028,7 +2029,10 @@ def handle_makeplot(f1, f2, t, hrdata, plotnr, imagename,
|
||||
elif (plotnr == 2):
|
||||
fig1 = row.get_metersplot_erg(t,pacerange=oterange,**kwargs)
|
||||
elif (plotnr == 3):
|
||||
t += ' - Heart Rate Distribution'
|
||||
try:
|
||||
t += ' - Heart Rate Distribution'
|
||||
except TypeError:
|
||||
t = 'Heart Rate Distribution'
|
||||
fig1 = row.get_piechart(t,**kwargs)
|
||||
elif (plotnr == 4):
|
||||
if haspower:
|
||||
|
||||
Reference in New Issue
Block a user