-#-*-coding:iso-8859-1-*-
+# -*- coding: utf-8 -*-
#
# Copyright (C) 2008-2017 EDF R&D
#
name = "StoreInternalVariables",
default = False,
typecast = bool,
- message = "Stockage des variables internes ou intermédiaires du calcul",
+ message = "Stockage des variables internes ou intermédiaires du calcul",
)
self.defineRequiredParameter(
name = "StoreSupplementaryCalculations",
default = [],
typecast = tuple,
- message = "Liste de calculs supplémentaires à stocker et/ou effectuer",
+ message = "Liste de calculs supplémentaires à stocker et/ou effectuer",
listval = ["APosterioriCorrelations", "APosterioriCovariance", "APosterioriStandardDeviations", "APosterioriVariances", "BMA", "OMA", "OMB", "CurrentState", "CostFunctionJ", "CostFunctionJb", "CostFunctionJo", "Innovation", "SigmaBck2", "SigmaObs2", "MahalanobisConsistency", "SimulationQuantiles", "SimulatedObservationAtBackground", "SimulatedObservationAtCurrentState", "SimulatedObservationAtOptimum"]
)
self.defineRequiredParameter(
self.defineRequiredParameter(
name = "SetSeed",
typecast = numpy.random.seed,
- message = "Graine fixée pour le générateur aléatoire",
+ message = "Graine fixée pour le générateur aléatoire",
)
self.defineRequiredParameter(
name = "NumberOfSamplesForQuantiles",
default = 100,
typecast = int,
- message = "Nombre d'échantillons simulés pour le calcul des quantiles",
+ message = "Nombre d'échantillons simulés pour le calcul des quantiles",
minval = 1,
)
self.defineRequiredParameter(
Ha = Ha.reshape(Xb.size,Y.size) # ADAO & check shape
H = HO["Direct"].appliedTo
#
- # Utilisation éventuelle d'un vecteur H(Xb) précalculé
+ # Utilisation éventuelle d'un vecteur H(Xb) précalculé
# ----------------------------------------------------
- if HO["AppliedToX"] is not None and "HXb" in HO["AppliedToX"]:
- HXb = H( Xb, HO["AppliedToX"]["HXb"])
+ if HO["AppliedInX"] is not None and "HXb" in HO["AppliedInX"]:
+ HXb = H( Xb, HO["AppliedInX"]["HXb"])
else:
HXb = H( Xb )
HXb = numpy.asmatrix(numpy.ravel( HXb )).T
#
- # Précalcul des inversions de B et R
+ # Précalcul des inversions de B et R
# ----------------------------------
BI = B.getI()
RI = R.getI()
Xa = Xb + _u
self.StoredVariables["Analysis"].store( Xa.A1 )
#
- # Calcul de la fonction coût
+ # Calcul de la fonction coût
# --------------------------
if self._parameters["StoreInternalVariables"] or \
"CostFunctionJ" in self._parameters["StoreSupplementaryCalculations"] or \
raise ValueError("The %s a posteriori covariance matrix A is not symmetric positive-definite. Please check your a priori covariances and your observation operator."%(self._name,))
self.StoredVariables["APosterioriCovariance"].store( A )
#
- # Calculs et/ou stockages supplémentaires
+ # Calculs et/ou stockages supplémentaires
# ---------------------------------------
if self._parameters["StoreInternalVariables"] or "CurrentState" in self._parameters["StoreSupplementaryCalculations"]:
self.StoredVariables["CurrentState"].store( numpy.ravel(Xa) )
if "MahalanobisConsistency" in self._parameters["StoreSupplementaryCalculations"]:
self.StoredVariables["MahalanobisConsistency"].store( float( 2.*J/d.size ) )
if "SimulationQuantiles" in self._parameters["StoreSupplementaryCalculations"]:
- Qtls = map(float, self._parameters["Quantiles"])
nech = self._parameters["NumberOfSamplesForQuantiles"]
HtM = HO["Tangent"].asMatrix(ValueForMethodForm = Xa)
HtM = HtM.reshape(Y.size,Xa.size) # ADAO & check shape
YfQ = numpy.hstack((YfQ,Yr))
YfQ.sort(axis=-1)
YQ = None
- for quantile in Qtls:
- if not (0. <= quantile <= 1.): continue
- indice = int(nech * quantile - 1./nech)
+ for quantile in self._parameters["Quantiles"]:
+ if not (0. <= float(quantile) <= 1.): continue
+ indice = int(nech * float(quantile) - 1./nech)
if YQ is None: YQ = YfQ[:,indice]
else: YQ = numpy.hstack((YQ,YfQ[:,indice]))
self.StoredVariables["SimulationQuantiles"].store( YQ )