- MahalanobisConsistency : indicateur de consistance des covariances
- OMA : Observation moins Analyse : Y - Xa
- OMB : Observation moins Background : Y - Xb
+ - ForecastCovariance : covariance de l'état prédit courant lors d'itérations
- ForecastState : état prédit courant lors d'itérations
- Residu : dans le cas des algorithmes de vérification
- SampledStateForQuantiles : échantillons d'états pour l'estimation des quantiles
self.StoredVariables["CurrentIterationNumber"] = Persistence.OneIndex(name = "CurrentIterationNumber")
self.StoredVariables["CurrentOptimum"] = Persistence.OneVector(name = "CurrentOptimum")
self.StoredVariables["CurrentState"] = Persistence.OneVector(name = "CurrentState")
+ self.StoredVariables["ForecastCovariance"] = Persistence.OneMatrix(name = "ForecastCovariance")
self.StoredVariables["ForecastState"] = Persistence.OneVector(name = "ForecastState")
self.StoredVariables["GradientOfCostFunctionJ"] = Persistence.OneVector(name = "GradientOfCostFunctionJ")
self.StoredVariables["GradientOfCostFunctionJb"] = Persistence.OneVector(name = "GradientOfCostFunctionJb")
#
return BackgroundEnsemble
+# ==============================================================================
+def EnsembleMean( __Ensemble ):
+ "Renvoie la moyenne empirique d'un ensemble"
+ return numpy.asarray(__Ensemble).mean(axis=1, dtype=mfp).astype('float').reshape((-1,1))
+
# ==============================================================================
def EnsembleOfAnomalies( Ensemble, OptMean = None, Normalisation = 1.):
- "Renvoie les anomalies centrées à partir d'un ensemble TailleEtat*NbMembres"
+ "Renvoie les anomalies centrées à partir d'un ensemble"
if OptMean is None:
- __Em = numpy.asarray(Ensemble).mean(axis=1, dtype=mfp).astype('float').reshape((-1,1))
+ __Em = EnsembleMean( Ensemble )
else:
__Em = numpy.ravel(OptMean).reshape((-1,1))
#
selfA._parameters["StoreInternalVariables"] = True
#
# Opérateurs
- # ----------
H = HO["Direct"].appliedControledFormTo
#
if selfA._parameters["EstimationOf"] == "State":
else:
Cm = None
#
- # Nombre de pas identique au nombre de pas d'observations
- # -------------------------------------------------------
+ # Durée d'observation et tailles
if hasattr(Y,"stepnumber"):
duration = Y.stepnumber()
__p = numpy.cumprod(Y.shape())[-1]
__p = numpy.array(Y).size
#
# Précalcul des inversions de B et R
- # ----------------------------------
if selfA._parameters["StoreInternalVariables"] \
or selfA._toStore("CostFunctionJ") \
or selfA._toStore("CostFunctionJb") \
if VariantM == "KalmanFilterFormula":
RIdemi = R.sqrtmI()
#
- # Initialisation
- # --------------
__n = Xb.size
__m = selfA._parameters["NumberOfMembers"]
if hasattr(B,"asfullmatrix"): Pn = B.asfullmatrix(__n)
selfA._parameters["StoreInternalVariables"] = True
#
# Opérateurs
- # ----------
H = HO["Direct"].appliedControledFormTo
#
if selfA._parameters["EstimationOf"] == "State":
else:
Cm = None
#
- # Nombre de pas identique au nombre de pas d'observations
- # -------------------------------------------------------
+ # Durée d'observation et tailles
if hasattr(Y,"stepnumber"):
duration = Y.stepnumber()
__p = numpy.cumprod(Y.shape())[-1]
__p = numpy.array(Y).size
#
# Précalcul des inversions de B et R
- # ----------------------------------
if selfA._parameters["StoreInternalVariables"] \
or selfA._toStore("CostFunctionJ") \
or selfA._toStore("CostFunctionJb") \
BI = B.getI()
RI = R.getI()
#
- # Initialisation
- # --------------
__n = Xb.size
__m = selfA._parameters["NumberOfMembers"]
if hasattr(B,"asfullmatrix"): Pn = B.asfullmatrix(__n)
selfA._parameters["StoreInternalVariables"] = True
#
# Opérateurs
- # ----------
H = HO["Direct"].appliedControledFormTo
#
if selfA._parameters["EstimationOf"] == "State":
else:
Cm = None
#
- # Nombre de pas identique au nombre de pas d'observations
- # -------------------------------------------------------
+ # Durée d'observation et tailles
if hasattr(Y,"stepnumber"):
duration = Y.stepnumber()
__p = numpy.cumprod(Y.shape())[-1]
__p = numpy.array(Y).size
#
# Précalcul des inversions de B et R
- # ----------------------------------
if selfA._parameters["StoreInternalVariables"] \
or selfA._toStore("CostFunctionJ") \
or selfA._toStore("CostFunctionJb") \
BI = B.getI()
RI = R.getI()
#
- # Initialisation
- # --------------
__n = Xb.size
__m = selfA._parameters["NumberOfMembers"]
if hasattr(B,"asfullmatrix"): Pn = B.asfullmatrix(__n)
"""
#
# Initialisation
- # --------------
Xn = numpy.ravel(Xb).reshape((-1,1))
#
if selfA._parameters["EstimationOf"] == "State":
duration = 2
#
# Multi-pas
- # ---------
for step in range(duration-1):
if hasattr(Y,"store"):
Ynpu = numpy.ravel( Y[step+1] ).reshape((-1,1))