コード例 #1
0
Nx = len(x0)
Ny = Nx

day = 0.05 / 6 * 24  # coz dt=0.05 <--> 6h in "model time scale"
t = modelling.Chronology(0.05, dkObs=1, T=200 * day, BurnIn=10 * day)

Dyn = {
    'M': Nx,
    'model': step,
    'linear': dstep_dx,
    'noise': 0,
}

# X0 = modelling.GaussRV(C=0.01,M=Nx) # Decreased from Pajonk's C=1.
X0 = modelling.GaussRV(C=0.01, mu=x0)

jj = np.arange(Nx)
Obs = modelling.partial_Id_Obs(Nx, jj)
Obs['noise'] = 0.1

HMM = modelling.HiddenMarkovModel(Dyn, Obs, t, X0, LP=LPs(jj))

####################
# Suggested tuning
####################
# xps += ExtKF(infl=2)
# xps += EnKF('Sqrt',N=3,infl=1.01)
# xps += PartFilt(reg=1.0, N=100, NER=0.4) # add reg!
# xps += PartFilt(reg=1.0, N=1000, NER=0.1) # add reg!
コード例 #2
0
Nx = len(x0)
Ny = Nx

day = 0.05/6 * 24  # coz dt=0.05 <--> 6h in "model time scale"
t = dpr.Chronology(0.05, dkObs=1, T=200*day, BurnIn=10*day)

Dyn = {
    'M': Nx,
    'model': step,
    'linear': dstep_dx,
    'noise': 0
}

# X0 = dpr.GaussRV(C=0.01,M=Nx) # Decreased from Pajonk's C=1.
X0 = dpr.GaussRV(C=0.01, mu=x0)

jj = np.arange(Nx)
Obs = dpr.partial_Id_Obs(Nx, jj)
Obs['noise'] = 0.1

HMM = dpr.HiddenMarkovModel(Dyn, Obs, t, X0, LP=LPs(jj))

####################
# Suggested tuning
####################
# xps += ExtKF(infl=2)
# xps += EnKF('Sqrt',N=3,infl=1.01)
# xps += PartFilt(reg=1.0, N=100, NER=0.4) # add reg!
# xps += PartFilt(reg=1.0, N=1000, NER=0.1) # add reg!
コード例 #3
0
def LP_setup(jj):
    return LPs(jj, params=dict())
コード例 #4
0
ファイル: sakov2012.py プロジェクト: Rainbow1994/DAPPER
t = dpr.Chronology(0.01, dkObs=25, KObs=1000, Tplot=Tplot, BurnIn=4 * Tplot)

Nx = len(x0)

Dyn = {'M': Nx, 'model': step, 'linear': dstep_dx, 'noise': 0}

X0 = dpr.GaussRV(C=2, mu=x0)

jj = np.arange(Nx)  # obs_inds
Obs = dpr.partial_Id_Obs(Nx, jj)
Obs['noise'] = 2  # dpr.GaussRV(C=CovMat(2*eye(Nx)))

HMM = dpr.HiddenMarkovModel(Dyn, Obs, t, X0)

HMM.liveplotters = LPs(jj)

####################
# Suggested tuning
####################
# from dapper.mods.Lorenz63.sakov2012 import HMM           # rmse.a:
# xps += Climatology()                                     # 7.6
# xps += OptInterp()                                       # 1.25
# xps += Var3D(xB=0.1)                                     # 1.04
# xps += ExtKF(infl=180)                                   # 0.92
# xps += EnKF('Sqrt',   N=3 ,  infl=1.30)                  # 0.80
# xps += EnKF('Sqrt',   N=10,  infl=1.02,rot=True)         # 0.60
# xps += EnKF('PertObs',N=10,  infl=1.04)                  # 0.65
# xps += EnKF('PertObs',N=100, infl=1.01)                  # 0.56
# xps += EnKF_N(        N=3)                               # 0.60
# xps += EnKF_N(        N=10,            rot=True)         # 0.54