From 010c28f76fe7a5e18e2832943bcafd73d81e717b Mon Sep 17 00:00:00 2001 From: Jean-Philippe ARGAUD Date: Sat, 16 Jan 2021 18:56:58 +0100 Subject: [PATCH] Improvement of EnKF algorithm --- src/daComposant/daCore/NumericObjects.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/daComposant/daCore/NumericObjects.py b/src/daComposant/daCore/NumericObjects.py index 7103817..1adf514 100644 --- a/src/daComposant/daCore/NumericObjects.py +++ b/src/daComposant/daCore/NumericObjects.py @@ -1233,6 +1233,12 @@ def mlef(selfA, Xb, Y, U, HO, EM, CM, R, B, Q, BnotT=False, _epsilon=1.e-1, _e=1 else: Un = None # + if selfA._parameters["InflationType"] == "MultiplicativeOnBackgroundAnomalies": + Xn = CovarianceInflation( Xn, + selfA._parameters["InflationType"], + selfA._parameters["InflationFactor"], + ) + # if selfA._parameters["EstimationOf"] == "State": # Forecast + Q and observation of forecast EMX = M( [(Xn[:,i], Un) for i in range(__m)], argsAsSerie = True ) for i in range(__m): @@ -1289,6 +1295,12 @@ def mlef(selfA, Xb, Y, U, HO, EM, CM, R, B, Q, BnotT=False, _epsilon=1.e-1, _e=1 # Xn = vx.reshape((__n,-1)) + numpy.sqrt(__m-1) * EaX @ Ta @ Ua # 21: # + if selfA._parameters["InflationType"] == "MultiplicativeOnAnalysisAnomalies": + Xn = CovarianceInflation( Xn, + selfA._parameters["InflationType"], + selfA._parameters["InflationFactor"], + ) + # Xa = Xn.mean(axis=1, dtype=mfp).astype('float') #-------------------------- # -- 2.39.2