Private
Public Access
1
0
This commit is contained in:
Sander Roosendaal
2020-11-11 08:36:47 +01:00
parent 779b4ed61d
commit abefbbc799
3 changed files with 32 additions and 7 deletions

View File

@@ -398,10 +398,12 @@ def getfastest(df,thevalue,mode='distance'):
dd = pd.Series(dd)
G = pd.concat([pd.Series([0]),dd])
T = pd.concat([pd.Series([0]),dd])
h = np.mgrid[0:len(tt)+1:1,0:len(tt)+1:1]
distances = pd.DataFrame(h[1]-h[0])
ones = 1+np.zeros(len(G))
Ghor = np.outer(ones,G)
Thor = np.outer(ones,T)
Gver = np.outer(G,ones)
Gdif = Ghor-Gver
Gdif = np.tril(Gdif.T).T
@@ -413,27 +415,42 @@ def getfastest(df,thevalue,mode='distance'):
restime = []
distance = []
starttimes = []
endtime = []
for i in np.arange(0,len(tt)+1,1):
restime.append(deltat*i)
cp = np.diag(F,i).max()
loc = np.argmax(np.diag(F,i))
thestarttime = np.diag(Thor,i)[loc]
starttimes.append(thestarttime)
distance.append(cp)
distance[0] = distance[1]
restime = np.array(restime)
distance = np.array(distance)
starttimes = np.array(starttimes)
#for i in range(len(restime)):
# if restime[i]<thevalue*60*1000:
# print(i,restime[i],distance[i],60*1000*thevalue)
d2 = 0
if mode == 'distance':
d2 = griddata(distance,restime,[thevalue],method='linear',rescale=True)
return d2[0]/1000.
duration = griddata(distance,restime,[thevalue],method='linear',rescale=True)
starttime = griddata(distance,starttimes,[thevalue],method='linear',rescale=True)
distance = griddata(distance,distance,[thevalue],method='linear',rescale=True)
endtime = starttime+duration
print(duration,starttime,endtime)
return duration[0]/1000.,starttime[0]/1000.,endtime[0]/1000.
else:
d2 = griddata(restime,distance,[thevalue*60*1000],method='linear',rescale=True)
return d2[0]
distance = griddata(restime,distance,[thevalue*60*1000],method='linear',rescale=True)
starttime = griddata(restime,starttimes,[thevalue*60*1000],method='linear',rescale=True)
duration = griddata(restime,restime,[thevalue*60*1000],method='linear',rescale=True)
endtime = starttime+duration
return distance[0],starttime[0]/1000.,endtime[0]/1000.
return 0