From: Jean-Philippe ARGAUD Date: Thu, 9 Sep 2021 04:27:49 +0000 (+0200) Subject: Documentation update (twin experiments) X-Git-Tag: V9_8_0a1~16 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=bbc38c9e534a662da853975a03dcee173c891166;p=modules%2Fadao.git Documentation update (twin experiments) --- diff --git a/doc/en/images/meth_twin_experiments.png b/doc/en/images/meth_twin_experiments.png new file mode 100644 index 0000000..966a004 Binary files /dev/null and b/doc/en/images/meth_twin_experiments.png differ diff --git a/doc/en/methodology.rst b/doc/en/methodology.rst index 090c9d6..8753b47 100644 --- a/doc/en/methodology.rst +++ b/doc/en/methodology.rst @@ -230,3 +230,43 @@ state to represent the physical system. Besides this analysis that has to be done for each Data Assimilation or Optimization study, it can be worth to exploit the optimization results as part of a more complete study of the physical system of interest. + +.. _section_methodology_twin: + +To test a data assimilation chain: the twin experiments +------------------------------------------------------- + +.. index:: single: data assimilation chain +.. index:: single: twin experiments + +When developing an assimilation study, the various steps described above form +what is known as a "data assimilation chain". The testing and analysis of this +chain are critical to assess the confidence in the overall approach of the +study. + +For this purpose, twin experiments are a classical and very useful tool, which +allows to place oneself in a particular environment where simulations and +expected errors can be controlled. Thus, methodological or numerical +difficulties can be separated and identified, then corrected. + +The twin experiment approach can be schematized by the following figure, which +presents the objective and the means of the approach: + + .. _meth_twin_experiments: + .. image:: images/meth_twin_experiments.png + :align: center + :width: 75% + .. centered:: + **The twin experiment approach to test and analyze a data assimilation (DA) chain** + +To simplify, the general approach to using the twin experiments methodology can +be described as follows: + +- we choose in an arbitrary way a state called "true", which must be valid for the simulation ; +- we then elaborate "pseudo-observations" from the simulation of the true state, by sampling the simulation in a similar way to real observations ; +- we eventually incorporate noise, either in the true state, or in the pseudo-observations, or in the computational chain, and this in a coherent way with the hypotheses of elaboration of the chain, to see its effect on a specific part of the chain ; +- we then analyze, according to the noise assumptions applied, the ability of the chain to recover the true state or expected differences. + +Thus, the methodology of twin experiments, applied several times and with +different controlled hypotheses of noise or error, allows to verify step by +step each component of the complete data assimilation chain. diff --git a/doc/en/tui.rst b/doc/en/tui.rst index 5125c9b..d4cd0de 100644 --- a/doc/en/tui.rst +++ b/doc/en/tui.rst @@ -675,7 +675,8 @@ The hypothesis of the user case are the following ones. It is assumed: In order to try in a simple way this example of TUI calculation case, we choose for example the following entries, perfectly arbitrary, by building the -observations by simulation in order to set a twin experiments case:: +observations by simulation in order to set a twin experiments case (for +information, see the approach :ref:`section_methodology_twin`):: # # Artificial building of an example of user data diff --git a/doc/en/tutorials_in_salome.rst b/doc/en/tutorials_in_salome.rst index 2fc9a8a..30fa1d2 100644 --- a/doc/en/tutorials_in_salome.rst +++ b/doc/en/tutorials_in_salome.rst @@ -387,8 +387,9 @@ We continue to operate in a 3-dimensional space, in order to restrict the size of numerical object shown in the scripts, but the problem is not dependent of the dimension. -We choose a twin experiment context, using a known true state -:math:`\mathbf{x}^t` but of arbitrary value: +We choose a twin experiment context (see the approach +:ref:`section_methodology_twin`), using a known true state :math:`\mathbf{x}^t` +but of arbitrary value: :: Xt = [1 2 3] diff --git a/doc/fr/images/meth_twin_experiments.png b/doc/fr/images/meth_twin_experiments.png new file mode 100644 index 0000000..a5afb9a Binary files /dev/null and b/doc/fr/images/meth_twin_experiments.png differ diff --git a/doc/fr/methodology.rst b/doc/fr/methodology.rst index 4df6b12..a38d0a7 100644 --- a/doc/fr/methodology.rst +++ b/doc/fr/methodology.rst @@ -250,3 +250,45 @@ Au-delà de cette analyse qui doit être réalisée pour chaque étude d'Assimil de Données ou d'Optimisation, il est très utile d'exploiter les résultats d'optimisation comme une partie intégrée dans une étude plus complète du système physique d'intérêt. + +.. _section_methodology_twin: + +Pour tester une chaîne d'assimilation de données : les expériences jumelles +--------------------------------------------------------------------------- + +.. index:: single: chaîne d'assimilation de données +.. index:: single: expériences jumelles + +Lors de la mise au point d'une étude d'assimilation, les différentes étapes +décrites ci-dessus forment ce que l'on appelle une "chaîne d'assimilation de +données". Les tests et l'analyse de cette chaîne sont essentiels pour évaluer +la confiance que l'on peut avoir dans la démarche globale de l'étude. + +Pour cela, les expériences jumelles forment un outil classique et très utile, +qui permet de se placer dans un environnement particulier où les simulations et +les erreurs attendues peuvent être contrôlées. Ainsi, les difficultés +méthodologiques ou numériques peuvent être séparées et identifiées, puis +corrigées. + +On peut schématiser l'approche par expériences jumelles par la figure qui suit, +qui présente l'objectif et les moyens de la démarche : + + .. _meth_twin_experiments: + .. image:: images/meth_twin_experiments.png + :align: center + :width: 75% + .. centered:: + **La démarche d'expériences jumelles pour tester et analyser une chaîne d'assimilation de données (AD)** + +Pour simplifier, on peut décrire l'approche générale pour appliquer la +méthodologie d'expériences jumelles de la manière suivante : + +- on choisit de manière arbitraire un état dit "vrai", qui doit être valide pour la simulation ; +- on élabore ensuite des "pseudo-observations" à partir de la simulation de l'état vrai, en échantillonnant la simulation de manière similaire à de vraies observations ; +- on incorpore éventuellement du bruit, soit dans l'état vrai, soit dans les pseudo-observations, soit dans la chaîne de calcul, et cela de manière cohérente avec les hypothèses d'élaboration de la chaîne, pour voir son effet sur une partie spécifique de la chaîne ; +- on analyse ensuite, selon les hypothèses de bruit appliquées, la capacité de la chaîne à retrouver l'état vrai ou des différences attendues. + +Ainsi, la méthodologie d'expériences jumelles, appliquée plusieurs fois et avec +des hypothèses contrôlées de bruit ou d'erreur différentes, permet alors de +vérifier étape par étape chacune des composantes de la chaîne complète +d'assimilation de données. diff --git a/doc/fr/tui.rst b/doc/fr/tui.rst index c74dcaf..6676374 100644 --- a/doc/fr/tui.rst +++ b/doc/fr/tui.rst @@ -701,9 +701,10 @@ Les hypothèses du cas utilisateur sont les suivantes. On suppose : #. que l'utilisateur dispose en Python d'une fonction de simulation physique appelée ``simulation``, préalablement (bien) testée, qui transforme les 3 paramètres en résultats similaires aux observations, #. que l'exploitation indépendante, que l'utilisateur veut faire, est représentée ici par l'affichage simple de l'état initial, de l'état optimal, de la simulation en ce point, des états intermédiaires et du nombre d'itérations d'optimisation. -Pour effectuer de manière simple cet essai de cas de calcul TUI, on se donne par -exemple les entrées suivantes, parfaitement arbitraires, en construisant les -observations par simulation pour se placer dans un cas d'expériences jumelles:: +Pour effectuer de manière simple cet essai de cas de calcul TUI, on se donne +par exemple les entrées suivantes, parfaitement arbitraires, en construisant +les observations par simulation pour se placer dans un cas d'expériences +jumelles (pour mémoire, voir la démarche :ref:`section_methodology_twin`):: # # Construction artificielle d'un exemple de données utilisateur diff --git a/doc/fr/tutorials_in_salome.rst b/doc/fr/tutorials_in_salome.rst index 240f48d..8758d28 100644 --- a/doc/fr/tutorials_in_salome.rst +++ b/doc/fr/tutorials_in_salome.rst @@ -408,7 +408,8 @@ On continue à opérer dans un espace à 3 dimensions, afin de limiter la taille l'objet numérique indiqué dans les scripts, mais le problème ne dépend pas de la dimension. -On choisit un contexte d'expériences jumelles, en utilisant un état vrai +On choisit un contexte d'expériences jumelles (voir la démarche +:ref:`section_methodology_twin`), en utilisant un état vrai :math:`\mathbf{x}^t` connu, mais de valeur arbitraire : ::