In [2]:
%load_ext autoreload
%autoreload 2
import nestedSMCmodular as nsmc
import helpfunctions as hlp
from IPython.display import clear_output
import numpy as np
In [ ]:
tStart = 1950
tEnd = 2000
Np = 100
N = 40
M = 20
X = np.zeros((Np,24,44))
logZ = np.zeros(Np)
region = 'sahel'
xC = np.zeros((24,44),dtype=bool)
q = []
for i in range(Np):
q.append(nsmc.nestedSMC(t=tStart,N=N,M=M,xCond=xC))
logZ[i] = q[i].logZ
maxLZ = np.max(logZ)
w = np.exp(logZ-maxLZ)
w /= np.sum(w)
ESS = 1/np.sum(w**2)
ancestors = hlp.resampling(w)
for i in range(Np):
X[i,:,:] = q[ancestors[i]].simulate()
np.savetxt('results/Np'+str(Np)+'_M'+str(N)+'_M'+str(M)+'_t'+str(tStart)+region+'.csv',np.mean(X,axis=0),delimiter=',')
for t in np.arange(1,tEnd-tStart+1):
print 't: ',tStart+t, ' ESS: ', ESS
q = []
for i in range(Np):
q.append(nsmc.nestedSMC(t=t+tStart,N=N,M=M,xCond=X[i,:,:]))
logZ[i] = q[i].logZ
maxLZ = np.max(logZ)
w = np.exp(logZ-maxLZ)
w /= np.sum(w)
ESS = 1/np.sum(w**2)
ancestors = hlp.resampling(w)
for i in range(Np):
X[i,:,:] = q[ancestors[i]].simulate()
np.savetxt('results/Np'+str(Np)+'_M'+str(N)+'_M'+str(M)+'_t'+str(tStart+t)+region+'.csv',np.mean(X,axis=0),delimiter=',')
In [29]:
Np = 1
for i in range(Np):
q.append(nsmc.nestedSMC(t=1968,N=N,M=M))
logZ[i] = q[i].logZ
In [31]:
q[0].X.shape
Out[31]:
In [36]:
imshow(mean(q[0].X,axis=0)>0.6)
colorbar()
Out[36]:
In [14]:
In [ ]:
In [27]:
In [28]:
In [ ]: