science and technology where the effective use of observed but incomplete data
is crucial.
-Some aspects of data assimilation are also known as *state estimation*,
-*parameter estimation*, *inverse problems*, *Bayesian estimation*, *optimal
-interpolation*, *mathematical regularization*, *data smoothing*, etc. These
-terms can be used in bibliographical searches.
-
Some aspects of data assimilation are also known by other names. Without being
exhaustive, we can mention the names of *calibration*, *adjustment*, *state
estimation*, *parameter estimation*, *parameter adjustment*, *inverse problems*
Il faut ensuite le rendre exécutable pour l'exécuter.
-Un exemple une peu plus complet consiste à lancer l'exécution d'un schéma YACS
+Un exemple un peu plus complet consiste à lancer l'exécution d'un schéma YACS
indiqué par l'utilisateur, en ayant préalablement vérifié sa disponibilité. Pour
cela, en remplaçant le texte ``<Répertoire principal d'installation de
SALOME>``, il suffit d'enregistrer le script de commandes Shell suivant::
Le principal complément nécessaire dans un schéma YACS est une étape de
post-processing. L'évaluation du résultat doit être réalisée dans le contexte
physique de simulation utilisé par la procédure d'assimilation de données. Le
-post-processing peut être fournit à travers le mot-clé "*UserPostAnalysis*"
+post-processing peut être fourni à travers le mot-clé "*UserPostAnalysis*"
d'ADAO sous la forme d'un fichier de script ou d'une chaîne de caractères, par
des patrons ("templates"), ou peut être construit comme des noeuds YACS. Ces
deux manières de construire le post-processing peuvent utiliser toutes les
"*Analysis*" est un objet complexe, similaire à une liste de valeurs calculées à
chaque étape du calcul d'assimilation. Pour obtenir et afficher l'évaluation
-optimale de l'état par assimilation de données, dans un script fournit par
+optimale de l'état par assimilation de données, dans un script fourni par
l'intermédiaire du mot-clé "*UserPostAnalysis*", on peut utiliser::
Xa = ADD.get("Analysis")[-1]
d'optimisation, ainsi que de tests ou vérifications. Il permet d'intégrer leur
usage dans une étude Python ou SALOME. Les modules utilisateurs de calcul ou de
simulation doivent fournir une ou plusieurs méthodes d'appel spécifiques afin
-d'être appelable dans le cadre Python ou SALOME. En environnement SALOME, tous
+d'être appelables dans le cadre Python ou SALOME. En environnement SALOME, tous
les modules natifs peuvent être utilisés grâce à l'intégration en Python ou en
YACS.
les applications d'assimilation de données. Elles seront présentées de cette
façon dans la section pour `Approfondir l'estimation d'état par des méthodes
d'optimisation`_, mais elles sont beaucoup plus générales et peuvent être
-utilisés sans les concepts d'assimilation de données.
+utilisées sans les concepts d'assimilation de données.
Deux types principaux d'applications existent en assimilation de données, qui
sont couverts par le même formalisme : l'**identification de paramètres** et la
des erreurs.
Toutes les grandeurs représentant la description de la physique dans un modèle
-sont susceptibles d'être calibrés dans une démarche d'assimilation de données,
+sont susceptibles d'être calibrées dans une démarche d'assimilation de données,
que ce soient des paramètres de modèles, des conditions initiales ou des
conditions aux limites. Leur prise en compte simultanée est largement facilitée
par la démarche d'assimilation de données, permettant de traiter objectivement
lesquels l'utilisation efficace des données observées, mais incomplètes, est
cruciale.
-Certains aspects de l'assimilation des données sont également connus sous le
-nom d'*estimation d'état*, d'*estimation de paramètres*, de *problèmes inverses*,
-d'*estimation bayésienne*, d'*interpolation optimale*, de *régularisation mathématique*,
-de *lissage des données*, etc. Ces termes peuvent être utilisés dans les recherches
-bibliographiques.
-
Certains aspects de l'assimilation de données sont aussi connus sous d'autres
noms. Sans être exhaustif, on peut mentionner les noms de *calage* ou de
*recalage*, de *calibration*, d'*estimation d'état*, d'*estimation de
usage dans les commandes elle-mêmes.
Ensuite, le cas doit être construit par une préparation et un enregistrement
-des données définissant l'étude. L'ordre de ces commande n'a pas d'importance,
-il suffit que les concepts requis par l'algorithme utilisé soient présentes. On
+des données définissant l'étude. L'ordre de ces commandes n'a pas d'importance,
+il suffit que les concepts requis par l'algorithme utilisé soient présents. On
se reportera à :ref:`section_reference` et à ses sous-parties pour avoir le
détail des commandes par algorithme. Ici, on définit successivement
l'algorithme d'assimilation de données ou d'optimisation choisi et ses
est privé au sens courant de programmation ("*private*"). Néanmoins, l'absence
d'un tel signe au début d'un nom ne le désigne pas comme public. De manière
générale, en Python, et contrairement à d'autres langages, on peut accéder aux
-objets ou aux fonction privés. Cela peut parfois être utile, mais un tel usage
+objets ou aux fonctions privés. Cela peut parfois être utile, mais un tel usage
dans vos codes conduira à des plantages sans avertissement lors de futures
versions. Il est donc fortement recommandé de ne pas le faire.
précédent :ref:`section_tutorials_in_python_explicit`.
Dans la pratique, cette démarche par scripts est la manière la plus facile pour
-récupérer des information depuis des calculs en ligne ou préalables, depuis des
+récupérer des informations depuis des calculs en ligne ou préalables, depuis des
fichiers statiques, depuis des bases de données ou des flux informatiques,
chacun pouvant être dans ou hors SALOME. Cela permet aussi de modifier aisément
des données d'entrée, par exemple à des fin de débogage ou pour des traitements
données`_.
Dans la pratique, cette démarche par scripts est la manière la plus facile pour
-récupérer des information depuis des calculs en ligne ou préalables, depuis des
+récupérer des informations depuis des calculs en ligne ou préalables, depuis des
fichiers statiques, depuis des bases de données ou des flux informatiques,
chacun pouvant être dans ou hors SALOME. Cela permet aussi de modifier aisément
des données d'entrée, par exemple à des fin de débogage ou pour des traitements
"*ASSIMILATION_STUDY*", "*OPTIMIZATION_STUDY*" ou "*REDUCTION_STUDY*"). Ce
mot-clé nécessite une définition explicite des valeurs à partir de valeurs par
défaut, ou à partir d'un dictionnaire Python, contenant des paires clé/valeur.
-La liste des paramètres optionnels possibles sont donnés dans la section
+La liste des paramètres optionnels possibles est donnée dans la section
:ref:`section_reference` et ses sous-sections. On recommande d'utiliser la
définition explicite de valeurs à partir de la liste par défaut de paramètres
optionnels, comme ici avec le "*MaximumNumberOfSteps*":
.. centered::
**Ajouter des paramètres pour contrôler l'algorithme et les sorties**
-Le dictionnaire peut être défini, par exemple, dans un fichiers externe de
+Le dictionnaire peut être défini, par exemple, dans un fichier externe de
script Python, en utilisant le nom obligatoire de variable
"*AlgorithmParameters*" pour le dictionnaire. Toutes les clés dans le
dictionnaire sont optionnelles, elles disposent toutes d'une valeur par défaut,
Xt = [1 2 3]
-L'état d'ébauche :math:`\mathbf{x}^b`, qui représentent une connaissance *a
+L'état d'ébauche :math:`\mathbf{x}^b`, qui représente une connaissance *a
priori* de l'état vrai, est construit comme une perturbation aléatoire
gaussienne de 20% de l'état vrai :math:`\mathbf{x}^t` pour chaque composante,
qui est :
être non linéaire. Dans une procédure réelle de recalage ou de problème inverse,
les codes de simulation physique sont intégrés dans l'opérateur d'observation.
On a également besoin de connaître son gradient par rapport à chaque variable
-estimée, ce qui est une information rarement connu avec les codes industriels.
+estimée, ce qui est une information rarement connue avec les codes industriels.
Mais on verra plus tard comment obtenir un gradient approché dans ce cas.
Étant en expériences jumelles, les observations :math:`\mathbf{y}^o` et leur
Pour poursuivre, on a besoin de l'opérateur d'observation :math:`\mathbf{H}`
comme une fonction de l'état. Il est ici défini dans un fichier externe nommé
``"Physical_simulation_functions.py"``, qui doit contenir une fonction appelée
-``"DirectOperator"``. Cette fonction est une une fonction utilisateur,
-représentant de manière programmée l'opérateur :math:`\mathbf{H}`. On suppose
-que cette fonction est donnée par l'utilisateur. Un squelette simple est donné
-ici par facilité :
+``"DirectOperator"``. Cette fonction est une fonction utilisateur, représentant
+de manière programmée l'opérateur :math:`\mathbf{H}`. On suppose que cette
+fonction est donnée par l'utilisateur. Un squelette simple est donné ici par
+facilité :
::
def DirectOperator( XX ):