DifferentialIncrement = SIMP(statut="o", typ = "R", val_min=0, val_max=1, defaut=0.01, fr="Incrément de la perturbation dX pour calculer la dérivée, construite en multipliant X par l'incrément en évitant les valeurs nulles", ang="Increment of dX perturbation to calculate the derivative, build multiplying X by the increment avoiding null values"),
CenteredFiniteDifference = SIMP(statut="o", typ = "I", into=(0, 1), defaut=0, fr="Formulation centrée (1) ou décentrée (0) pour la méthode des différences finies", ang="Centered (1) or uncentered (0) formulation for the finite differences method"),
EnableMultiProcessing = SIMP(statut="f", typ = "I", into=(0, 1), defaut=0, fr="Calculs élémentaires effectués en séquentiel (0) ou en parallèle (1) dans la méthode des différences finies", ang="Elementary calculations done sequentially (0) or in parallel (1) in the finite differences method"),
+ NumberOfProcesses = SIMP(statut="f", typ = "I", val_min=0, defaut=0, fr="Nombre de processus parallèles, 0 pour un contrôle automatique", ang="Number of parallel processes, 0 for automatic control"),
),
SCRIPTWITHSWITCH_DATA = BLOC ( condition = " FROM in ( 'ScriptWithSwitch', ) ",
SCRIPTWITHSWITCH_FILE = SIMP(statut = "o", typ = "FichierNoAbs", validators=(OnlyStr()), fr="En attente d'un nom de fichier script, avec ou sans le chemin complet pour le trouver, contenant un switch pour les calculs direct, tangent et adjoint", ang="Waiting for a script file name, with or without the full path to find it, containing a switch for direct, tangent and adjoint computations"),
.. image:: images/ADAO_logo.png
:align: center
- :width: 20%
+ :alt: ADAO logo
The ADAO module provides **data assimilation and optimization** features in
SALOME context. It is based on usage of other SALOME modules, namely YACS and
:ref:`section_using`, and the fourth part gives examples on ADAO usage as
:ref:`section_examples`. Users interested in quick use of the module can stop
before reading the rest, but a valuable use of the module requires to read and
-come back regularly to the third and seventh parts. The fifth and sixth parts
-indicate :ref:`section_advanced`, with obtaining additional information or the
-use of non-GUI execution scripting, and a :ref:`section_tui` of the module. The
-seventh part gives a detailed :ref:`section_reference`, with three main
-sub-parts following. And, to respect the module requirements, be sure to read
-the part :ref:`section_license`.
+come back regularly to the third and seventh parts. The fifth part indicate
+:ref:`section_advanced`, with obtaining additional information or the use of
+non-GUI execution scripting. The next part gives a detailed
+:ref:`section_reference`, with four main sub-parts following, the last one
+giving a :ref:`section_tui` of the module. And, to respect the module
+requirements, be sure to read the part :ref:`section_license`.
In all this documentation, we use standard notations of linear algebra, data
assimilation (as described in [Ide97]_) and optimization. In particular, vectors
using
examples
advanced
- tui
reference
+ tui
license
glossary
bibliography
available at the end of the algorithm. It involves potentially costly
calculations or memory consumptions. The default is a void list, none of
these variables being calculated and stored by default. The possible names
- are in the following list: ["APosterioriCovariance", "BMA", "CostFunctionJ",
- "CurrentState", "OMA", "OMB", "Innovation", "SigmaObs2",
- "MahalanobisConsistency", "SimulatedObservationAtBackground",
- "SimulatedObservationAtCurrentState", "SimulatedObservationAtOptimum",
- "SimulationQuantiles"].
+ are in the following list: ["APosterioriCorrelations",
+ "APosterioriCovariance", "APosterioriStandardDeviations",
+ "APosterioriVariances", "BMA", "CostFunctionJ", "CurrentState", "OMA",
+ "OMB", "Innovation", "SigmaObs2", "MahalanobisConsistency",
+ "SimulatedObservationAtBackground", "SimulatedObservationAtCurrentState",
+ "SimulatedObservationAtOptimum", "SimulationQuantiles"].
Example : ``{"StoreSupplementaryCalculations":["BMA","Innovation"]}``
The conditional outputs of the algorithm are the following:
+ APosterioriCorrelations
+ *List of matrices*. Each element is an *a posteriori* error correlation
+ matrix of the optimal state.
+
+ Example : ``C = ADD.get("APosterioriCorrelations")[-1]``
+
APosterioriCovariance
*List of matrices*. Each element is an *a posteriori* error covariance
matrix :math:`\mathbf{A}*` of the optimal state.
Example : ``A = ADD.get("APosterioriCovariance")[-1]``
+ APosterioriStandardDeviations
+ *List of matrices*. Each element is an *a posteriori* error standard
+ deviation matrix of the optimal state.
+
+ Example : ``E = ADD.get("APosterioriStandardDeviations")[-1]``
+
+ APosterioriVariances
+ *List of matrices*. Each element is an *a posteriori* error variance matrix
+ of the optimal state.
+
+ Example : ``V = ADD.get("APosterioriVariances")[-1]``
+
BMA
*List of vectors*. Each element is a vector of difference between the
background and the optimal state.
available at the end of the algorithm. It involves potentially costly
calculations or memory consumptions. The default is a void list, none of
these variables being calculated and stored by default. The possible names
- are in the following list: ["APosterioriCovariance", "BMA", "CostFunctionJ",
- "OMA", "OMB", "Innovation", "SigmaBck2", "SigmaObs2",
- "MahalanobisConsistency", "SimulatedObservationAtBackground",
- "SimulatedObservationAtOptimum", "SimulationQuantiles"].
+ are in the following list: ["APosterioriCorrelations",
+ "APosterioriCovariance", "APosterioriStandardDeviations",
+ "APosterioriVariances", "BMA", "CostFunctionJ", "OMA", "OMB", "Innovation",
+ "SigmaBck2", "SigmaObs2", "MahalanobisConsistency",
+ "SimulatedObservationAtBackground", "SimulatedObservationAtOptimum",
+ "SimulationQuantiles"].
Example : ``{"StoreSupplementaryCalculations":["BMA","Innovation"]}``
The conditional outputs of the algorithm are the following:
+ APosterioriCorrelations
+ *List of matrices*. Each element is an *a posteriori* error correlation
+ matrix of the optimal state.
+
+ Example : ``C = ADD.get("APosterioriCorrelations")[-1]``
+
APosterioriCovariance
*List of matrices*. Each element is an *a posteriori* error covariance
matrix :math:`\mathbf{A}*` of the optimal state.
Example : ``A = ADD.get("APosterioriCovariance")[-1]``
+ APosterioriStandardDeviations
+ *List of matrices*. Each element is an *a posteriori* error standard
+ deviation matrix of the optimal state.
+
+ Example : ``E = ADD.get("APosterioriStandardDeviations")[-1]``
+
+ APosterioriVariances
+ *List of matrices*. Each element is an *a posteriori* error variance matrix
+ of the optimal state.
+
+ Example : ``V = ADD.get("APosterioriVariances")[-1]``
+
BMA
*List of vectors*. Each element is a vector of difference between the
background and the optimal state.
available at the end of the algorithm. It involves potentially costly
calculations or memory consumptions. The default is a void list, none of
these variables being calculated and stored by default. The possible names
- are in the following list: ["APosterioriCovariance", "BMA",
- "CostFunctionJ", "OMA", "OMB", "Innovation", "SigmaBck2", "SigmaObs2",
- "MahalanobisConsistency", "SimulatedObservationAtBackground",
- "SimulatedObservationAtOptimum", "SimulationQuantiles"].
+ are in the following list: ["APosterioriCorrelations",
+ "APosterioriCovariance", "APosterioriStandardDeviations",
+ "APosterioriVariances", "BMA", "CostFunctionJ", "OMA", "OMB", "Innovation",
+ "SigmaBck2", "SigmaObs2", "MahalanobisConsistency",
+ "SimulatedObservationAtBackground", "SimulatedObservationAtOptimum",
+ "SimulationQuantiles"].
Example : ``{"StoreSupplementaryCalculations":["BMA","Innovation"]}``
The conditional outputs of the algorithm are the following:
+ APosterioriCorrelations
+ *List of matrices*. Each element is an *a posteriori* error correlation
+ matrix of the optimal state.
+
+ Example : ``C = ADD.get("APosterioriCorrelations")[-1]``
+
APosterioriCovariance
*List of matrices*. Each element is an *a posteriori* error covariance
matrix :math:`\mathbf{A}*` of the optimal state.
Example : ``A = ADD.get("APosterioriCovariance")[-1]``
+ APosterioriStandardDeviations
+ *List of matrices*. Each element is an *a posteriori* error standard
+ deviation matrix of the optimal state.
+
+ Example : ``E = ADD.get("APosterioriStandardDeviations")[-1]``
+
+ APosterioriVariances
+ *List of matrices*. Each element is an *a posteriori* error variance matrix
+ of the optimal state.
+
+ Example : ``V = ADD.get("APosterioriVariances")[-1]``
+
BMA
*List of vectors*. Each element is a vector of difference between the
background and the optimal state.
available at the end of the algorithm. It involves potentially costly
calculations or memory consumptions. The default is a void list, none of
these variables being calculated and stored by default. The possible names
- are in the following list: ["APosterioriCovariance", "BMA", "CostFunctionJ",
- "CurrentState", "Innovation"].
+ are in the following list: ["APosterioriCorrelations",
+ "APosterioriCovariance", "APosterioriStandardDeviations",
+ "APosterioriVariances", "BMA", "CostFunctionJ", "CurrentState",
+ "Innovation"].
Example : ``{"StoreSupplementaryCalculations":["BMA","Innovation"]}``
The conditional outputs of the algorithm are the following:
+ APosterioriCorrelations
+ *List of matrices*. Each element is an *a posteriori* error correlation
+ matrix of the optimal state.
+
+ Example : ``C = ADD.get("APosterioriCorrelations")[-1]``
+
APosterioriCovariance
*List of matrices*. Each element is an *a posteriori* error covariance
matrix :math:`\mathbf{A}*` of the optimal state.
Example : ``A = ADD.get("APosterioriCovariance")[-1]``
+ APosterioriStandardDeviations
+ *List of matrices*. Each element is an *a posteriori* error standard
+ deviation matrix of the optimal state.
+
+ Example : ``E = ADD.get("APosterioriStandardDeviations")[-1]``
+
+ APosterioriVariances
+ *List of matrices*. Each element is an *a posteriori* error variance matrix
+ of the optimal state.
+
+ Example : ``V = ADD.get("APosterioriVariances")[-1]``
+
BMA
*List of vectors*. Each element is a vector of difference between the
background and the optimal state.
available at the end of the algorithm. It involves potentially costly
calculations or memory consumptions. The default is a void list, none of
these variables being calculated and stored by default. The possible names
- are in the following list: ["APosterioriCovariance", "BMA", "CostFunctionJ",
- "CurrentState", "Innovation"].
+ are in the following list: ["APosterioriCorrelations",
+ "APosterioriCovariance", "APosterioriStandardDeviations",
+ "APosterioriVariances", "BMA", "CostFunctionJ", "CurrentState",
+ "Innovation"].
Example : ``{"StoreSupplementaryCalculations":["BMA","Innovation"]}``
The conditional outputs of the algorithm are the following:
+ APosterioriCorrelations
+ *List of matrices*. Each element is an *a posteriori* error correlation
+ matrix of the optimal state.
+
+ Example : ``C = ADD.get("APosterioriCorrelations")[-1]``
+
APosterioriCovariance
*List of matrices*. Each element is an *a posteriori* error covariance
matrix :math:`\mathbf{A}*` of the optimal state.
Example : ``A = ADD.get("APosterioriCovariance")[-1]``
+ APosterioriStandardDeviations
+ *List of matrices*. Each element is an *a posteriori* error standard
+ deviation matrix of the optimal state.
+
+ Example : ``E = ADD.get("APosterioriStandardDeviations")[-1]``
+
+ APosterioriVariances
+ *List of matrices*. Each element is an *a posteriori* error variance matrix
+ of the optimal state.
+
+ Example : ``V = ADD.get("APosterioriVariances")[-1]``
+
BMA
*List of vectors*. Each element is a vector of difference between the
background and the optimal state.
available at the end of the algorithm. It involves potentially costly
calculations or memory consumptions. The default is a void list, none of
these variables being calculated and stored by default. The possible names
- are in the following list: ["APosterioriCovariance", "BMA",
- "CostFunctionJ", "CurrentState", "OMA", "OMB", "Innovation", "SigmaObs2",
- "MahalanobisConsistency", "SimulatedObservationAtCurrentState",
+ are in the following list: ["BMA", "CostFunctionJ", "CurrentState", "OMA",
+ "OMB", "Innovation", "SimulatedObservationAtCurrentState",
"SimulatedObservationAtOptimum"].
Example : ``{"StoreSupplementaryCalculations":["BMA","Innovation"]}``
available at the end of the algorithm. It involves potentially costly
calculations or memory consumptions. The default is a void list, none of
these variables being calculated and stored by default. The possible names
- are in the following list: ["APosterioriCovariance", "BMA", "CostFunctionJ",
- "CurrentState", "Innovation"].
+ are in the following list: ["APosterioriCorrelations",
+ "APosterioriCovariance", "APosterioriStandardDeviations",
+ "APosterioriVariances", "BMA", "CostFunctionJ", "CurrentState",
+ "Innovation"].
Example : ``{"StoreSupplementaryCalculations":["BMA","Innovation"]}``
The conditional outputs of the algorithm are the following:
+ APosterioriCorrelations
+ *List of matrices*. Each element is an *a posteriori* error correlation
+ matrix of the optimal state.
+
+ Example : ``C = ADD.get("APosterioriCorrelations")[-1]``
+
APosterioriCovariance
*List of matrices*. Each element is an *a posteriori* error covariance
matrix :math:`\mathbf{A}*` of the optimal state.
Example : ``A = ADD.get("APosterioriCovariance")[-1]``
+ APosterioriStandardDeviations
+ *List of matrices*. Each element is an *a posteriori* error standard
+ deviation matrix of the optimal state.
+
+ Example : ``E = ADD.get("APosterioriStandardDeviations")[-1]``
+
+ APosterioriVariances
+ *List of matrices*. Each element is an *a posteriori* error variance matrix
+ of the optimal state.
+
+ Example : ``V = ADD.get("APosterioriVariances")[-1]``
+
BMA
*List of vectors*. Each element is a vector of difference between the
background and the optimal state.
.. image:: images/ADAO_logo.png
:align: center
- :width: 20%
+ :alt: Logo ADAO
Le module ADAO fournit des fonctionnalités d'**assimilation de données et
d'optimisation** dans un contexte SALOME. Il est basé sur l'utilisation d'autres
:ref:`section_examples`. Les utilisateurs intéressés par un accès rapide au
module peuvent s'arrêter avant la lecture de la suite, mais un usage utile du
module nécessite de lire et de revenir régulièrement aux troisième et septième
-parties. Les cinquième et la sixième parties indiquent les
-:ref:`section_advanced`, avec l'obtention de renseignements supplémentaires ou
-l'usage par scripts d'exécution sans interface utilisateur graphique (GUI), et
-une :ref:`section_tui` du module. La septième partie détaille la
-:ref:`section_reference`, avec trois sous-parties principales qui suivent.
-Enfin, pour respecter les exigences de licence du module, n'oubliez pas de lire
-la partie :ref:`section_license`.
+parties. La cinquième partie indique les :ref:`section_advanced`, avec
+l'obtention de renseignements supplémentaires ou l'usage par scripts d'exécution
+sans interface utilisateur graphique (GUI). La partie suivante détaille la
+:ref:`section_reference`, avec quatre sous-parties principales qui suivent, la
+dernière sous-partie décrivant une :ref:`section_tui` du module. Enfin, pour
+respecter les exigences de licence du module, n'oubliez pas de lire la partie
+:ref:`section_license`.
Dans cette documentation, on utilise les notations standards de l'algèbre
linéaire, de l'assimilation de données (comme décrit dans [Ide97]_) et de
using
examples
advanced
- tui
reference
+ tui
license
glossary
bibliography
disponibles à la fin de l'algorithme. Cela implique potentiellement des
calculs ou du stockage coûteux. La valeur par défaut est une liste vide,
aucune de ces variables n'étant calculée et stockée par défaut. Les noms
- possibles sont dans la liste suivante : ["APosterioriCovariance", "BMA",
- "CostFunctionJ", "CurrentState", "OMA", "OMB", "Innovation", "SigmaObs2",
- "MahalanobisConsistency", "SimulatedObservationAtBackground",
- "SimulatedObservationAtCurrentState", "SimulatedObservationAtOptimum",
- "SimulationQuantiles"].
+ possibles sont dans la liste suivante : ["APosterioriCorrelations",
+ "APosterioriCovariance", "APosterioriStandardDeviations",
+ "APosterioriVariances", "BMA", "CostFunctionJ", "CurrentState", "OMA",
+ "OMB", "Innovation", "SigmaObs2", "MahalanobisConsistency",
+ "SimulatedObservationAtBackground", "SimulatedObservationAtCurrentState",
+ "SimulatedObservationAtOptimum", "SimulationQuantiles"].
Exemple : ``{"StoreSupplementaryCalculations":["BMA","Innovation"]}``
Les sorties conditionnelles de l'algorithme sont les suivantes:
+ APosterioriCorrelations
+ *Liste de matrices*. Chaque élément est une matrice de corrélation des
+ erreurs *a posteriori* de l'état optimal.
+
+ Exemple : ``C = ADD.get("APosterioriCorrelations")[-1]``
+
APosterioriCovariance
*Liste de matrices*. Chaque élément est une matrice :math:`\mathbf{A}*` de
covariances des erreurs *a posteriori* de l'état optimal.
Exemple : ``A = ADD.get("APosterioriCovariance")[-1]``
+ APosterioriStandardDeviations
+ *Liste de matrices*. Chaque élément est une matrice d'écart-types des
+ erreurs *a posteriori* de l'état optimal.
+
+ Exemple : ``E = ADD.get("APosterioriStandardDeviations")[-1]``
+
+ APosterioriVariances
+ *Liste de matrices*. Chaque élément est une matrice de variances des erreurs
+ *a posteriori* de l'état optimal.
+
+ Exemple : ``V = ADD.get("APosterioriVariances")[-1]``
+
BMA
*Liste de vecteurs*. Chaque élément est un vecteur d'écart entre
l'ébauche et l'état optimal.
disponibles à la fin de l'algorithme. Cela implique potentiellement des
calculs ou du stockage coûteux. La valeur par défaut est une liste vide,
aucune de ces variables n'étant calculée et stockée par défaut. Les noms
- possibles sont dans la liste suivante : ["APosterioriCovariance", "BMA",
- "CostFunctionJ", "OMA", "OMB", "Innovation", "SigmaBck2", "SigmaObs2",
- "MahalanobisConsistency", "SimulatedObservationAtBackground",
- "SimulatedObservationAtOptimum", "SimulationQuantiles"].
+ possibles sont dans la liste suivante : ["APosterioriCorrelations",
+ "APosterioriCovariance", "APosterioriStandardDeviations",
+ "APosterioriVariances", "BMA", "CostFunctionJ", "OMA", "OMB", "Innovation",
+ "SigmaBck2", "SigmaObs2", "MahalanobisConsistency",
+ "SimulatedObservationAtBackground", "SimulatedObservationAtOptimum",
+ "SimulationQuantiles"].
Exemple : ``{"StoreSupplementaryCalculations":["BMA","Innovation"]}``
Les sorties conditionnelles de l'algorithme sont les suivantes:
+ APosterioriCorrelations
+ *Liste de matrices*. Chaque élément est une matrice de corrélation des
+ erreurs *a posteriori* de l'état optimal.
+
+ Exemple : ``C = ADD.get("APosterioriCorrelations")[-1]``
+
APosterioriCovariance
*Liste de matrices*. Chaque élément est une matrice :math:`\mathbf{A}*` de
covariances des erreurs *a posteriori* de l'état optimal.
Exemple : ``A = ADD.get("APosterioriCovariance")[-1]``
+ APosterioriStandardDeviations
+ *Liste de matrices*. Chaque élément est une matrice d'écart-types des
+ erreurs *a posteriori* de l'état optimal.
+
+ Exemple : ``E = ADD.get("APosterioriStandardDeviations")[-1]``
+
+ APosterioriVariances
+ *Liste de matrices*. Chaque élément est une matrice de variances des erreurs
+ *a posteriori* de l'état optimal.
+
+ Exemple : ``V = ADD.get("APosterioriVariances")[-1]``
+
BMA
*Liste de vecteurs*. Chaque élément est un vecteur d'écart entre
l'ébauche et l'état optimal.
disponibles à la fin de l'algorithme. Cela implique potentiellement des
calculs ou du stockage coûteux. La valeur par défaut est une liste vide,
aucune de ces variables n'étant calculée et stockée par défaut. Les noms
- possibles sont dans la liste suivante : ["APosterioriCovariance", "BMA",
- "CostFunctionJ", "OMA", "OMB", "Innovation", "SigmaBck2", "SigmaObs2",
- "MahalanobisConsistency", "SimulatedObservationAtBackground",
- "SimulatedObservationAtOptimum", "SimulationQuantiles"].
+ possibles sont dans la liste suivante : ["APosterioriCorrelations",
+ "APosterioriCovariance", "APosterioriStandardDeviations",
+ "APosterioriVariances", "BMA", "CostFunctionJ", "OMA", "OMB", "Innovation",
+ "SigmaBck2", "SigmaObs2", "MahalanobisConsistency",
+ "SimulatedObservationAtBackground", "SimulatedObservationAtOptimum",
+ "SimulationQuantiles"].
Exemple : ``{"StoreSupplementaryCalculations":["BMA","Innovation"]}``
Les sorties conditionnelles de l'algorithme sont les suivantes:
+ APosterioriCorrelations
+ *Liste de matrices*. Chaque élément est une matrice de corrélation des
+ erreurs *a posteriori* de l'état optimal.
+
+ Exemple : ``C = ADD.get("APosterioriCorrelations")[-1]``
+
APosterioriCovariance
*Liste de matrices*. Chaque élément est une matrice :math:`\mathbf{A}*` de
covariances des erreurs *a posteriori* de l'état optimal.
Exemple : ``A = ADD.get("APosterioriCovariance")[-1]``
+ APosterioriStandardDeviations
+ *Liste de matrices*. Chaque élément est une matrice d'écart-types des
+ erreurs *a posteriori* de l'état optimal.
+
+ Exemple : ``E = ADD.get("APosterioriStandardDeviations")[-1]``
+
+ APosterioriVariances
+ *Liste de matrices*. Chaque élément est une matrice de variances des erreurs
+ *a posteriori* de l'état optimal.
+
+ Exemple : ``V = ADD.get("APosterioriVariances")[-1]``
+
BMA
*Liste de vecteurs*. Chaque élément est un vecteur d'écart entre
l'ébauche et l'état optimal.
disponibles à la fin de l'algorithme. Cela implique potentiellement des
calculs ou du stockage coûteux. La valeur par défaut est une liste vide,
aucune de ces variables n'étant calculée et stockée par défaut. Les noms
- possibles sont dans la liste suivante : ["APosterioriCovariance", "BMA",
- "CostFunctionJ", "CurrentState", "Innovation"].
+ possibles sont dans la liste suivante : ["APosterioriCorrelations",
+ "APosterioriCovariance", "APosterioriStandardDeviations",
+ "APosterioriVariances", "BMA", "CostFunctionJ", "CurrentState",
+ "Innovation"].
Exemple : ``{"StoreSupplementaryCalculations":["BMA","Innovation"]}``
Les sorties conditionnelles de l'algorithme sont les suivantes:
+ APosterioriCorrelations
+ *Liste de matrices*. Chaque élément est une matrice de corrélation des
+ erreurs *a posteriori* de l'état optimal.
+
+ Exemple : ``C = ADD.get("APosterioriCorrelations")[-1]``
+
APosterioriCovariance
*Liste de matrices*. Chaque élément est une matrice :math:`\mathbf{A}*` de
covariances des erreurs *a posteriori* de l'état optimal.
Exemple : ``A = ADD.get("APosterioriCovariance")[-1]``
+ APosterioriStandardDeviations
+ *Liste de matrices*. Chaque élément est une matrice d'écart-types des
+ erreurs *a posteriori* de l'état optimal.
+
+ Exemple : ``E = ADD.get("APosterioriStandardDeviations")[-1]``
+
+ APosterioriVariances
+ *Liste de matrices*. Chaque élément est une matrice de variances des erreurs
+ *a posteriori* de l'état optimal.
+
+ Exemple : ``V = ADD.get("APosterioriVariances")[-1]``
+
BMA
*Liste de vecteurs*. Chaque élément est un vecteur d'écart entre
l'ébauche et l'état optimal.
disponibles à la fin de l'algorithme. Cela implique potentiellement des
calculs ou du stockage coûteux. La valeur par défaut est une liste vide,
aucune de ces variables n'étant calculée et stockée par défaut. Les noms
- possibles sont dans la liste suivante : ["APosterioriCovariance", "BMA",
- "CostFunctionJ", "CurrentState", "Innovation"].
+ possibles sont dans la liste suivante : ["APosterioriCorrelations",
+ "APosterioriCovariance", "APosterioriStandardDeviations",
+ "APosterioriVariances", "BMA", "CostFunctionJ", "CurrentState",
+ "Innovation"].
Exemple : ``{"StoreSupplementaryCalculations":["BMA","Innovation"]}``
Les sorties conditionnelles de l'algorithme sont les suivantes:
+ APosterioriCorrelations
+ *Liste de matrices*. Chaque élément est une matrice de corrélation des
+ erreurs *a posteriori* de l'état optimal.
+
+ Exemple : ``C = ADD.get("APosterioriCorrelations")[-1]``
+
APosterioriCovariance
*Liste de matrices*. Chaque élément est une matrice :math:`\mathbf{A}*` de
covariances des erreurs *a posteriori* de l'état optimal.
Exemple : ``A = ADD.get("APosterioriCovariance")[-1]``
+ APosterioriStandardDeviations
+ *Liste de matrices*. Chaque élément est une matrice d'écart-types des
+ erreurs *a posteriori* de l'état optimal.
+
+ Exemple : ``E = ADD.get("APosterioriStandardDeviations")[-1]``
+
+ APosterioriVariances
+ *Liste de matrices*. Chaque élément est une matrice de variances des erreurs
+ *a posteriori* de l'état optimal.
+
+ Exemple : ``V = ADD.get("APosterioriVariances")[-1]``
+
BMA
*Liste de vecteurs*. Chaque élément est un vecteur d'écart entre
l'ébauche et l'état optimal.
disponibles à la fin de l'algorithme. Cela implique potentiellement des
calculs ou du stockage coûteux. La valeur par défaut est une liste vide,
aucune de ces variables n'étant calculée et stockée par défaut. Les noms
- possibles sont dans la liste suivante : ["APosterioriCovariance", "BMA",
- "CostFunctionJ", "CurrentState", "OMA", "OMB", "Innovation", "SigmaObs2",
- "MahalanobisConsistency", "SimulatedObservationAtCurrentState",
- "SimulatedObservationAtOptimum"].
+ possibles sont dans la liste suivante : ["BMA", "CostFunctionJ",
+ "CurrentState", "OMA", "OMB", "Innovation",
+ "SimulatedObservationAtCurrentState", "SimulatedObservationAtOptimum"].
Exemple : ``{"StoreSupplementaryCalculations":["BMA","Innovation"]}``
disponibles à la fin de l'algorithme. Cela implique potentiellement des
calculs ou du stockage coûteux. La valeur par défaut est une liste vide,
aucune de ces variables n'étant calculée et stockée par défaut. Les noms
- possibles sont dans la liste suivante : ["APosterioriCovariance", "BMA",
- "CostFunctionJ", "CurrentState", "Innovation"].
+ possibles sont dans la liste suivante : ["APosterioriCorrelations",
+ "APosterioriCovariance", "APosterioriStandardDeviations",
+ "APosterioriVariances", "BMA", "CostFunctionJ", "CurrentState",
+ "Innovation"].
Exemple : ``{"StoreSupplementaryCalculations":["BMA","Innovation"]}``
Les sorties conditionnelles de l'algorithme sont les suivantes:
+ APosterioriCorrelations
+ *Liste de matrices*. Chaque élément est une matrice de corrélation des
+ erreurs *a posteriori* de l'état optimal.
+
+ Exemple : ``C = ADD.get("APosterioriCorrelations")[-1]``
+
APosterioriCovariance
*Liste de matrices*. Chaque élément est une matrice :math:`\mathbf{A}*` de
covariances des erreurs *a posteriori* de l'état optimal.
Exemple : ``A = ADD.get("APosterioriCovariance")[-1]``
+ APosterioriStandardDeviations
+ *Liste de matrices*. Chaque élément est une matrice d'écart-types des
+ erreurs *a posteriori* de l'état optimal.
+
+ Exemple : ``E = ADD.get("APosterioriStandardDeviations")[-1]``
+
+ APosterioriVariances
+ *Liste de matrices*. Chaque élément est une matrice de variances des erreurs
+ *a posteriori* de l'état optimal.
+
+ Exemple : ``V = ADD.get("APosterioriVariances")[-1]``
+
BMA
*Liste de vecteurs*. Chaque élément est un vecteur d'écart entre
l'ébauche et l'état optimal.
default = [],
typecast = tuple,
message = "Liste de calculs supplémentaires à stocker et/ou effectuer",
- listval = ["APosterioriCovariance", "BMA", "OMA", "OMB", "CurrentState", "CostFunctionJ", "Innovation", "SigmaObs2", "MahalanobisConsistency", "SimulationQuantiles", "SimulatedObservationAtBackground", "SimulatedObservationAtCurrentState", "SimulatedObservationAtOptimum"]
+ listval = ["APosterioriCorrelations", "APosterioriCovariance", "APosterioriStandardDeviations", "APosterioriVariances", "BMA", "OMA", "OMB", "CurrentState", "CostFunctionJ", "Innovation", "SigmaObs2", "MahalanobisConsistency", "SimulationQuantiles", "SimulatedObservationAtBackground", "SimulatedObservationAtCurrentState", "SimulatedObservationAtOptimum"]
)
self.defineRequiredParameter(
name = "Quantiles",
default = [],
typecast = tuple,
message = "Liste de calculs supplémentaires à stocker et/ou effectuer",
- listval = ["APosterioriCovariance", "BMA", "OMA", "OMB", "CostFunctionJ", "Innovation", "SigmaBck2", "SigmaObs2", "MahalanobisConsistency", "SimulationQuantiles", "SimulatedObservationAtBackground", "SimulatedObservationAtOptimum"]
+ listval = ["APosterioriCorrelations", "APosterioriCovariance", "APosterioriStandardDeviations", "APosterioriVariances", "BMA", "OMA", "OMB", "CostFunctionJ", "Innovation", "SigmaBck2", "SigmaObs2", "MahalanobisConsistency", "SimulationQuantiles", "SimulatedObservationAtBackground", "SimulatedObservationAtOptimum"]
)
self.defineRequiredParameter(
name = "Quantiles",
default = [],
typecast = tuple,
message = "Liste de calculs supplémentaires à stocker et/ou effectuer",
- listval = ["APosterioriCovariance", "BMA", "OMA", "OMB", "CostFunctionJ", "Innovation", "SigmaBck2", "SigmaObs2", "MahalanobisConsistency", "SimulationQuantiles", "SimulatedObservationAtBackground", "SimulatedObservationAtOptimum"]
+ listval = ["APosterioriCorrelations", "APosterioriCovariance", "APosterioriStandardDeviations", "APosterioriVariances", "BMA", "OMA", "OMB", "CostFunctionJ", "Innovation", "SigmaBck2", "SigmaObs2", "MahalanobisConsistency", "SimulationQuantiles", "SimulatedObservationAtBackground", "SimulatedObservationAtOptimum"]
)
self.defineRequiredParameter(
name = "Quantiles",
default = [],
typecast = tuple,
message = "Liste de calculs supplémentaires à stocker et/ou effectuer",
- listval = ["APosterioriCovariance", "BMA", "CurrentState", "CostFunctionJ", "Innovation"]
+ listval = ["APosterioriCorrelations", "APosterioriCovariance", "APosterioriStandardDeviations", "APosterioriVariances", "BMA", "CurrentState", "CostFunctionJ", "Innovation"]
)
self.defineRequiredParameter( # Pas de type
name = "Bounds",
default = [],
typecast = tuple,
message = "Liste de calculs supplémentaires à stocker et/ou effectuer",
- listval = ["APosterioriCovariance", "BMA", "CurrentState", "CostFunctionJ", "Innovation"]
+ listval = ["APosterioriCorrelations", "APosterioriCovariance", "APosterioriStandardDeviations", "APosterioriVariances", "BMA", "CurrentState", "CostFunctionJ", "Innovation"]
)
def run(self, Xb=None, Y=None, U=None, HO=None, EM=None, CM=None, R=None, B=None, Q=None, Parameters=None):
self.StoredVariables["CostFunctionJ" ].store( 3. )
#
self.StoredVariables["APosterioriCovariance"].store( numpy.diag(__Xa) )
+ self.StoredVariables["APosterioriVariances"].store( __Xa )
+ self.StoredVariables["APosterioriStandardDeviations"].store( __Xa )
+ self.StoredVariables["APosterioriCorrelations"].store( numpy.diag(__Xa) )
self.StoredVariables["BMA"].store( __Xb - __Xa )
self.StoredVariables["OMA"].store( __YY )
self.StoredVariables["OMB"].store( __YY )
if len(dim) != 3:
raise ValueError("For dimension %i, the variable definition \"%s\" is incorrect, it should be [min,max,step]."%(i,dim))
else:
- coordinatesList.append(numpy.linspace(*dim))
+ coordinatesList.append(numpy.linspace(dim[0],dim[1],1+int(float(dim[1])-float(dim[0])/float(dim[2]))))
sampleList = itertools.product(*coordinatesList)
elif len(self._parameters["SampleAsIndependantRandomVariables"]) > 0:
coordinatesList = []
default = [],
typecast = tuple,
message = "Liste de calculs supplémentaires à stocker et/ou effectuer",
- listval = ["APosterioriCovariance", "BMA", "CurrentState", "CostFunctionJ", "Innovation"]
+ listval = ["APosterioriCorrelations", "APosterioriCovariance", "APosterioriStandardDeviations", "APosterioriVariances", "BMA", "CurrentState", "CostFunctionJ", "Innovation"]
)
self.defineRequiredParameter( # Pas de type
name = "Bounds",
- OMB : Observation moins Background : Y - Xb
- AMB : Analysis moins Background : Xa - Xb
- APosterioriCovariance : matrice A
+ - APosterioriVariances : variances de la matrice A
+ - APosterioriStandardDeviations : écart-types de la matrice A
+ - APosterioriCorrelations : correlations de la matrice A
On peut rajouter des variables à stocker dans l'initialisation de
l'algorithme élémentaire qui va hériter de cette classe
"""
self.StoredVariables["OMB"] = Persistence.OneVector(name = "OMB")
self.StoredVariables["BMA"] = Persistence.OneVector(name = "BMA")
self.StoredVariables["APosterioriCovariance"] = Persistence.OneMatrix(name = "APosterioriCovariance")
+ self.StoredVariables["APosterioriVariances"] = Persistence.OneVector(name = "APosterioriVariances")
+ self.StoredVariables["APosterioriStandardDeviations"] = Persistence.OneVector(name = "APosterioriStandardDeviations")
+ self.StoredVariables["APosterioriCorrelations"] = Persistence.OneMatrix(name = "APosterioriCorrelations")
self.StoredVariables["SimulationQuantiles"] = Persistence.OneMatrix(name = "SimulationQuantiles")
def _pre_run(self):
return 0
def _post_run(self,_oH=None):
+ if self._parameters.has_key("StoreSupplementaryCalculations") and \
+ "APosterioriCovariance" in self._parameters["StoreSupplementaryCalculations"]:
+ for _A in self.StoredVariables["APosterioriCovariance"]:
+ if "APosterioriVariances" in self._parameters["StoreSupplementaryCalculations"]:
+ self.StoredVariables["APosterioriVariances"].store( numpy.diag(_A) )
+ if "APosterioriStandardDeviations" in self._parameters["StoreSupplementaryCalculations"]:
+ self.StoredVariables["APosterioriStandardDeviations"].store( numpy.sqrt(numpy.diag(_A)) )
+ if "APosterioriCorrelations" in self._parameters["StoreSupplementaryCalculations"]:
+ _EI = numpy.diag(1./numpy.sqrt(numpy.diag(_A)))
+ _C = numpy.dot(_EI, numpy.dot(_A, _EI))
+ self.StoredVariables["APosterioriCorrelations"].store( _C )
if _oH is not None:
logging.debug("%s Nombre d'évaluation(s) de l'opérateur d'observation direct/tangent/adjoint.: %i/%i/%i"%(self._name, _oH["Direct"].nbcalls(0),_oH["Tangent"].nbcalls(0),_oH["Adjoint"].nbcalls(0)))
logging.debug("%s Nombre d'appels au cache d'opérateur d'observation direct/tangent/adjoint..: %i/%i/%i"%(self._name, _oH["Direct"].nbcalls(3),_oH["Tangent"].nbcalls(3),_oH["Adjoint"].nbcalls(3)))
else:
self.__mpEnabled = False
self.__mpWorkers = mpWorkers
+ if self.__mpWorkers is not None and self.__mpWorkers < 1:
+ self.__mpWorkers = None
logging.debug("FDA Calculs en multiprocessing : %s (nombre de processus : %s)"%(self.__mpEnabled,self.__mpWorkers))
#
if self.__mpEnabled:
self.text_da += data_name + "_ScriptWithOneFunction['CenteredFiniteDifference'] = " + str(self.dictMCVal[search_type + "SCRIPTWITHONEFUNCTION_DATA__CenteredFiniteDifference"]) + "\n"
if search_type + "SCRIPTWITHONEFUNCTION_DATA__EnableMultiProcessing" in self.dictMCVal.keys():
self.text_da += data_name + "_ScriptWithOneFunction['EnableMultiProcessing'] = " + str(self.dictMCVal[search_type + "SCRIPTWITHONEFUNCTION_DATA__EnableMultiProcessing"]) + "\n"
+ if search_type + "SCRIPTWITHONEFUNCTION_DATA__NumberOfProcesses" in self.dictMCVal.keys():
+ self.text_da += data_name + "_ScriptWithOneFunction['NumberOfProcesses'] = " + str(self.dictMCVal[search_type + "SCRIPTWITHONEFUNCTION_DATA__NumberOfProcesses"]) + "\n"
self.text_da += data_name + "_config = {}\n"
self.text_da += data_name + "_config['Type'] = 'Function'\n"
self.text_da += data_name + "_config['From'] = 'ScriptWithOneFunction'\n"
except Exception as e:
if type(e) == type(SyntaxError()): msg = "at %s: %s"%(e.offset, e.text)
else: msg = ""
- raise ValueError("during analyse, the following error occurs:\n\n%s %s\n\nSee also the potential messages, which can show the origin of the above error, in the YACS GUI or in the launching terminal."%(str(e),msg))
+ raise ValueError("during execution, the following error occurs:\n\n%s %s\n\nSee also the potential messages, which can show the origin of the above error, in the YACS GUI or in the launching terminal."%(str(e),msg))
# Assimilation Study is finished
self.pool.destroyAll()
"GradientOfCostFunctionJo",
"SigmaObs2",
"SigmaBck2",
+ "APosterioriCorrelations",
"APosterioriCovariance",
+ "APosterioriStandardDeviations",
+ "APosterioriVariances",
]
node_script += """ centeredDF = %s,\n"""%str(ScriptWithOneFunction['CenteredFiniteDifference'])
if 'EnableMultiProcessing' in ScriptWithOneFunction.keys():
node_script += """ mpEnabled = %s,\n"""%str(ScriptWithOneFunction['EnableMultiProcessing'])
+ if 'NumberOfProcesses' in ScriptWithOneFunction.keys():
+ node_script += """ mpWorkers = %s,\n"""%str(ScriptWithOneFunction['NumberOfProcesses'])
node_script += """ )\n"""
node_script += """#\n"""
node_script += """__data = []\n"""
node_script += """ centeredDF = %s,\n"""%str(ScriptWithOneFunction['CenteredFiniteDifference'])
if 'EnableMultiProcessing' in ScriptWithOneFunction.keys():
node_script += """ mpEnabled = %s,\n"""%str(ScriptWithOneFunction['EnableMultiProcessing'])
+ if 'NumberOfProcesses' in ScriptWithOneFunction.keys():
+ node_script += """ mpWorkers = %s,\n"""%str(ScriptWithOneFunction['NumberOfProcesses'])
node_script += """ )\n"""
node_script += """#\n"""
node_script += """__data = []\n"""