-.. _section_reference:
-
-================================================================================
-Description de référence des commandes et mots-clés ADAO
-================================================================================
-
-Cette section présente la description de référence des commandes et mots-clés
-ADAO disponibles à travers l'interface graphique (GUI) ou à travers des scripts.
-Chaque commande ou mot-clé à définir par l'interface graphique (GUI) a des
-propriétés particulières. La première propriété est d'être *requise*,
-*optionnelle* ou simplement utile, décrivant un type d'entrée. La seconde
-propriété est d'être une variable "ouverte" avec un type fixé mais avec
-n'importe quelle valeur autorisée par le type, ou une variable "fermée", limitée
-à des valeurs spécifiées. L'éditeur graphique EFICAS disposant de capacités
-intrinsèques de validation, les propriétés des commandes ou mots-clés données à
-l'aide de l'interface graphique sont automatiquement correctes.
-
-Les notations mathématiques utilisées ci-dessous sont expliquées dans la section
-:ref:`section_theory`.
-
-Des exemples sur l'usage de ces commandes sont disponibles dans la section
-:ref:`section_examples` et dans les fichiers d'exemple installés avec le module
-ADAO.
-
-Liste des types d'entrées possibles
------------------------------------
-
-.. index:: single: Dict
-.. index:: single: Function
-.. index:: single: Matrix
-.. index:: single: ScalarSparseMatrix
-.. index:: single: DiagonalSparseMatrix
-.. index:: single: String
-.. index:: single: Script
-.. index:: single: Vector
-
-Chaque variable ADAO présente un pseudo-type qui aide à la remplir et à la
-valider. Les différents pseudo-types sont:
-
-**Dict**
- Cela indique une variable qui doit être remplie avec un dictionnaire Python
- ``{"clé":"valeur"...}``, usuellement donné soit par une chaîne de caractères
- soit par un fichier script.
-
-**Function**
- Cela indique une variable qui doit être donnée comme une fonction Python,
- usuellement donnée soit par une chaîne de caractères soit par un fichier
- script.
-
-**Matrix**
- Cela indique une variable qui doit être donnée comme une matrice,
- usuellement donnée soit par une chaîne de caractères soit par un fichier
- script.
-
-**ScalarSparseMatrix**
- Cela indique une variable qui doit être donnée comme un nombre unique (qui
- sera utilisé pour multiplier une matrice identité), usuellement donné soit
- par une chaîne de caractères soit par un fichier script.
-
-**DiagonalSparseMatrix**
- Cela indique une variable qui doit , (qui sera
- utilisé pour remplacer la diagonale d'une matrice identité), usuellement
- donné soit par une chaîne de caractères soit par un fichier script.
-
-**Script**
- Cela indique un script donné comme un fichier externe. Il peut être désigné
- par un nom de fichier avec chemin complet ou seulement par un nom de fichier
- sans le chemin. Si le fichier est donné uniquement par un nom sans chemin,
- et si un répertoire d'étude est aussi indiqué, le fichier est recherché dans
- le répertoire d'étude donné.
-
-**String**
- Cela indique une chaîne de caractères fournissant une représentation
- littérale d'une matrice, d'un vecteur ou d'une collection de vecteurs, comme
- par exemple "1 2 ; 3 4" ou "[[1,2],[3,4]]" pour une matrice carrée de taille
- 2x2.
-
-**Vector**
- Cela indique une variable qui doit être remplie comme un vecteur,
- usuellement donné soit par une chaîne de caractères soit par un fichier
- script.
-
-**VectorSerie**
- Cela indique une variable qui doit être remplie comme une liste de vecteurs,
- usuellement donnée soit par une chaîne de caractères soit par un fichier
- script.
-
-Lorsqu'une commande ou un mot-clé peut être rempli par un nom de fichier script,
-ce script doit présenter une variable ou une méthode que porte le même nom que
-la variable à remplir. En d'autres mots, lorsque l'on importe le script dans un
-noeud Python de YACS, il doit créer une variable du bon nom dans l'espace de
-nommage courant du noeud.
-
-Description de référence pour les cas de calcul ADAO
-----------------------------------------------------
-
-Liste des commandes et mots-clés pour un cas de calcul ADAO
-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
-.. index:: single: ASSIMILATION_STUDY
-.. index:: single: Algorithm
-.. index:: single: AlgorithmParameters
-.. index:: single: Background
-.. index:: single: BackgroundError
-.. index:: single: ControlInput
-.. index:: single: Debug
-.. index:: single: EvolutionError
-.. index:: single: EvolutionModel
-.. index:: single: InputVariables
-.. index:: single: Observation
-.. index:: single: ObservationError
-.. index:: single: ObservationOperator
-.. index:: single: Observers
-.. index:: single: OutputVariables
-.. index:: single: Study_name
-.. index:: single: Study_repertory
-.. index:: single: UserDataInit
-.. index:: single: UserPostAnalysis
-
-La première série de commandes est liée à la description d'un cas de calcul, qui
-est une procédure d'*Assimilation de Données* ou d'*Optimisation*. Les termes
-sont classés par ordre alphabétique, sauf le premier, qui décrit le choix entre
-le calcul ou la vérification. Les différentes commandes sont les suivantes:
-
-**ASSIMILATION_STUDY**
- *Commande obligatoire*. C'est la commande générale qui décrit le cas
- d'assimilation de données ou d'optimisation. Elle contient hiérarchiquement
- toutes les autres commandes.
-
-**Algorithm**
- *Commande obligatoire*. C'est une chaîne de caractère qui indique l'algorithme
- d'assimilation de données ou d'optimisation choisi. Les choix sont limités
- et disponibles à travers l'interface graphique. Il existe par exemple le
- "3DVAR", le "Blue"... Voir plus loin la liste des algorithmes et des
- paramètres associés dans la sous-section `Commandes optionnelles et requises
- pour les algorithmes de calcul`_.
-
-**AlgorithmParameters**
- *Commande optionnelle*. Elle permet d'ajouter des paramètres optionnels pour
- contrôler l'algorithme d'assimilation de données ou d'optimisation. Sa
- valeur est définie comme un objet de type "*Dict*". Voir plus loin la liste
- des algorithmes et des paramètres associés dans la sous-section `Commandes
- optionnelles et requises pour les algorithmes de calcul`_.
-
-**Background**
- *Commande obligatoire*. Elle définit le vecteur d'ébauche ou
- d'initialisation, noté précédemment :math:`\mathbf{x}^b`. Sa valeur est
- définie comme un objet de type "*Vector*".
-
-**BackgroundError**
- *Commande obligatoire*. Elle définit la matrice de covariance des erreurs
- d'ébauche, notée précédemment :math:`\mathbf{B}`. Sa valeur est définie
- comme un objet de type "*Matrix*", de type "*ScalarSparseMatrix*", ou de
- type "*DiagonalSparseMatrix*".
-
-**ControlInput**
- *Commande optionnelle*. Elle indique le vecteur de contrôle utilisé pour
- forcer le modèle d'évolution à chaque pas, usuellement noté
- :math:`\mathbf{U}`. Sa valeur est définie comme un objet de type "*Vector*"
- ou de type *VectorSerie*. Lorsqu'il n'y a pas de contrôle, sa valeur doit
- être une chaîne vide ''.
-
-**Debug**
- *Commande optionnelle*. Elle définit le niveau de sorties et d'informations
- intermédiaires de débogage. Les choix sont limités entre 0 (pour False) and
- 1 (pour True).
-
-**EvolutionError**
- *Commande optionnelle*. Elle définit la matrice de covariance des erreurs
- d'évolution, usuellement notée :math:`\mathbf{Q}`. Sa valeur est définie
- comme un objet de type "*Matrix*", de type "*ScalarSparseMatrix*", ou de
- type "*DiagonalSparseMatrix*".
-
-**EvolutionModel**
- *Commande optionnelle*. Elle indique l'opérateur d'évolution du modèle,
- usuellement noté :math:`M`, qui décrit un pas élémentaire d'évolution. Sa
- valeur est définie comme un objet de type "*Function*". Différentes formes
- fonctionnelles peuvent être utilisées, comme décrit dans la sous-section
- suivante `Exigences pour les fonctions décrivant un opérateur`_. Si un
- contrôle :math:`U` est inclus dans le modèle d'évolution, l'opérateur doit
- être appliqué à une paire :math:`(X,U)`.
-
-**InputVariables**
- *Commande optionnelle*. Elle permet d'indiquer le nom et la taille des
- variables physiques qui sont rassemblées dans le vecteur d'état. Cette
- information est destinée à être utilisée dans le traitement algorithmique
- interne des données.
-
-**Observation**
- *Commande obligatoire*. Elle définit le vecteur d'observation utilisé en
- assimilation de données ou en optimisation, et noté précédemment
- :math:`\mathbf{y}^o`. Sa valeur est définie comme un objet de type "*Vector*"
- ou de type *VectorSerie*".
-
-**ObservationError**
- *Commande obligatoire*. Elle définit la matrice de covariance des erreurs
- d'ébauche, notée précédemment :math:`\mathbf{R}`. Sa valeur est définie
- comme un objet de type "*Matrix*", de type "*ScalarSparseMatrix*", ou de
- type "*DiagonalSparseMatrix*".
-
-**ObservationOperator**
- *Commande obligatoire*. Elle indique l'opérateur d'observation, notée
- précédemment :math:`H`, qui transforme les paramètres d'entrée
- :math:`\mathbf{x}` en résultats :math:`\mathbf{y}` qui sont à comparer aux
- observations :math:`\mathbf{y}^o`. Sa valeur est définie comme un objet de
- type "*Function*". Différentes formes fonctionnelles peuvent être utilisées,
- comme décrit dans la sous-section suivante `Exigences pour les fonctions
- décrivant un opérateur`_. Si un contrôle :math:`U` est inclus dans le modèle
- d'observation, l'opérateur doit être appliqué à une paire :math:`(X,U)`.
-
-**Observers**
- *Commande optionnelle*. Elle permet de définir des observateurs internes,
- qui sont des fonctions liées à une variable particulière, qui sont exécutées
- chaque fois que cette variable est modifiée. C'est une manière pratique de
- suivre des variables d'intérêt durant le processus d'assimilation de données
- ou d'optimisation, en l'affichant ou en la traçant, etc. Des exemples
- courants (squelettes) sont fournis pour aider l'utilisateur ou pour
- faciliter l'élaboration d'un cas.
-
-**OutputVariables**
- *Commande optionnelle*. Elle permet d'indiquer le nom et la taille des
- variables physiques qui sont rassemblées dans le vecteur d'observation.
- Cette information est destinée à être utilisée dans le traitement
- algorithmique interne des données.
-
-**Study_name**
- *Commande obligatoire*. C'est une chaîne de caractères quelconque pour
- décrire l'étude ADAO par un nom ou une déclaration.
-
-**Study_repertory**
- *Commande optionnelle*. S'il existe, ce répertoire est utilisé comme base
- pour les calculs, et il est utilisé pour trouver les fichiers de script,
- donnés par nom sans répertoire, qui peuvent être utilisés pour définir
- certaines variables.
-
-**UserDataInit**
- *Commande optionnelle*. Elle permet d'initialiser certains paramètres ou
- certaines données automatiquement avant le traitement de données d'entrée
- pour l'assimilation de données ou l'optimisation. Pour cela, elle indique un
- nom de fichier de script à exécuter avant d'entrer dans l'initialisation des
- variables choisies.
-
-**UserPostAnalysis**
- *Commande optionnelle*. Elle permet de traiter des paramètres ou des
- résultats après le déroulement de l'algorithme d'assimilation de données ou
- d'optimisation. Sa valeur est définie comme un fichier script ou une chaîne
- de caractères, permettant de produire directement du code de post-processing
- dans un cas ADAO. Des exemples courants (squelettes) sont fournis pour aider
- l'utilisateur ou pour faciliter l'élaboration d'un cas.
-
-Commandes optionnelles et requises pour les algorithmes de calcul
-+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
-.. index:: single: 3DVAR
-.. index:: single: Blue
-.. index:: single: ExtendedBlue
-.. index:: single: EnsembleBlue
-.. index:: single: KalmanFilter
-.. index:: single: ExtendedKalmanFilter
-.. index:: single: UnscentedKalmanFilter
-.. index:: single: LinearLeastSquares
-.. index:: single: NonLinearLeastSquares
-.. index:: single: ParticleSwarmOptimization
-.. index:: single: QuantileRegression
-
-.. index:: single: AlgorithmParameters
-.. index:: single: Bounds
-.. index:: single: CostDecrementTolerance
-.. index:: single: GradientNormTolerance
-.. index:: single: GroupRecallRate
-.. index:: single: MaximumNumberOfSteps
-.. index:: single: Minimizer
-.. index:: single: NumberOfInsects
-.. index:: single: ProjectedGradientTolerance
-.. index:: single: QualityCriterion
-.. index:: single: Quantile
-.. index:: single: SetSeed
-.. index:: single: StoreInternalVariables
-.. index:: single: StoreSupplementaryCalculations
-.. index:: single: SwarmVelocity
-
-Chaque algorithme peut être contrôlé en utilisant des options génériques ou
-particulières, données à travers la commande optionnelle "*AlgorithmParameters*"
-dans un fichier script ou une chaîne de caractères, à la manière de l'exemple
-qui suit dans un fichier::
-
- AlgorithmParameters = {
- "Minimizer" : "LBFGSB",
- "MaximumNumberOfSteps" : 25,
- "StoreSupplementaryCalculations" : ["APosterioriCovariance","OMA"],
- }
-
-Pour donner les valeurs de la commande "*AlgorithmParameters*" par une chaîne de
-caractères, on doit utiliser des guillemets simples pour fournir une définition
-standard de dictionnaire, comme par exemple::
-
- '{"Minimizer":"LBFGSB","MaximumNumberOfSteps":25}'
-
-Cette section décrit les options disponibles algorithme par algorithme. De plus,
-pour chaque algorithme, les commandes/mots-clés obligatoires sont indiqués. Si
-une option est spécifiée par l'utilisateur pour un algorithme qui ne la supporte
-pas, cette option est simplement laissée inutilisée et ne bloque pas le
-traitement. La signification des acronymes ou des noms particuliers peut être
-trouvée dans l':ref:`genindex` ou dans le :ref:`section_glossary`.
-
-**"Blue"**
-
- *Commandes obligatoires*
- *"Background", "BackgroundError",
- "Observation", "ObservationError",
- "ObservationOperator"*
-
- StoreInternalVariables
- Cette clé booléenne permet de stocker les variables internes par défaut,
- principalement l'état courant lors d'un processus itératif. Attention, cela
- peut être un choix numériquement coûteux dans certains cas de calculs. La
- valeur par défaut est "False".
-
- StoreSupplementaryCalculations
- Cette liste indique les noms des variables supplémentaires qui peuvent être
- disponibles à la fin de l'algorithme. Cela implique potentiellement des
- calculs 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", "OMA", "OMB",
- "Innovation", "SigmaBck2", "SigmaObs2", "MahalanobisConsistency"].
-
-**"ExtendedBlue"**
-
- *Commandes obligatoires*
- *"Background", "BackgroundError",
- "Observation", "ObservationError",
- "ObservationOperator"*
-
- StoreInternalVariables
- Cette clé booléenne permet de stocker les variables internes par défaut,
- principalement l'état courant lors d'un processus itératif. Attention, cela
- peut être un choix numériquement coûteux dans certains cas de calculs. La
- valeur par défaut est "False".
-
- StoreSupplementaryCalculations
- Cette liste indique les noms des variables supplémentaires qui peuvent être
- disponibles à la fin de l'algorithme. Cela implique potentiellement des
- calculs 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", "OMA", "OMB",
- "Innovation", "SigmaBck2", "SigmaObs2", "MahalanobisConsistency"].
-
-**"LinearLeastSquares"**
-
- *Commandes obligatoires*
- *"Observation", "ObservationError",
- "ObservationOperator"*
-
- StoreInternalVariables
- Cette clé booléenne permet de stocker les variables internes par défaut,
- principalement l'état courant lors d'un processus itératif. Attention, cela
- peut être un choix numériquement coûteux dans certains cas de calculs. La
- valeur par défaut est "False".
-
- StoreSupplementaryCalculations
- Cette liste indique les noms des variables supplémentaires qui peuvent être
- disponibles à la fin de l'algorithme. Cela implique potentiellement des
- calculs 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 : ["OMA"].
-
-**"3DVAR"**
-
- *Commandes obligatoires*
- *"Background", "BackgroundError",
- "Observation", "ObservationError",
- "ObservationOperator"*
-
- Minimizer
- Cette clé permet de changer le minimiseur pour l'optimiseur. Le choix par
- défaut est "LBFGSB", et les choix possibles sont "LBFGSB" (minimisation non
- linéaire sous contraintes, voir [Byrd95]_, [Morales11]_ et [Zhu97]_), "TNC"
- (minimisation non linéaire sous contraintes), "CG" (minimisation non
- linéaire sans contraintes), "BFGS" (minimisation non linéaire sans
- contraintes), "NCG" (minimisation de type gradient conjugué de Newton). On
- conseille de conserver la valeur par défaut.
-
- Bounds
- Cette clé permet de définir des bornes supérieure et inférieure pour
- chaque variable d'état optimisée. Les bornes peuvent être données par une
- liste de liste de paires de bornes inférieure/supérieure pour chaque
- variable, avec une valeur ``None`` chaque fois qu'il n'y a pas de borne. Les
- bornes peuvent toujours être spécifiées, mais seuls les optimiseurs sous
- contraintes les prennent en compte.
-
- MaximumNumberOfSteps
- Cette clé indique le nombre maximum d'itérations possibles en optimisation
- itérative. Le défaut est 15000, qui est très similaire à une absence de
- limite sur les itérations. Il est ainsi recommandé d'adapter ce paramètre
- aux besoins pour des problèmes réels. Pour certains optimiseurs, le nombre
- de pas effectif d'arrêt peut être légèrement différent de la limite à cause
- d'exigences de contrôle interne de l'algorithme.
-
- CostDecrementTolerance
- Cette clé indique une valeur limite, conduisant à arrêter le processus
- itératif d'optimisation lorsque la fonction coût décroît moins que cette
- tolérance au dernier pas. Le défaut est de 1.e-7, et il est recommandé
- de l'adapter aux besoins pour des problèmes réels.
-
- ProjectedGradientTolerance
- Cette clé indique une valeur limite, conduisant à arrêter le processus
- itératif d'optimisation lorsque toutes les composantes du gradient projeté
- sont en-dessous de cette limite. C'est utilisé uniquement par les
- optimiseurs sous contraintes. Le défaut est -1, qui désigne le défaut
- interne de chaque optimiseur (usuellement 1.e-5), et il n'est pas recommandé
- de le changer.
-
- GradientNormTolerance
- Cette clé indique une valeur limite, conduisant à arrêter le processus
- itératif d'optimisation lorsque la norme du gradient est en dessous de cette
- limite. C'est utilisé uniquement par les optimiseurs sans contraintes. Le
- défaut est 1.e-5 et il n'est pas recommandé de le changer.
-
- StoreInternalVariables
- Cette clé booléenne permet de stocker les variables internes par défaut,
- principalement l'état courant lors d'un processus itératif. Attention, cela
- peut être un choix numériquement coûteux dans certains cas de calculs. La
- valeur par défaut est "False".
-
- StoreSupplementaryCalculations
- Cette liste indique les noms des variables supplémentaires qui peuvent être
- disponibles à la fin de l'algorithme. Cela implique potentiellement des
- calculs 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", "OMA", "OMB",
- "Innovation", "SigmaObs2", "MahalanobisConsistency"].
-
-**"NonLinearLeastSquares"**
-
- *Commandes obligatoires*
- *"Background",
- "Observation", "ObservationError",
- "ObservationOperator"*
-
- Minimizer
- Cette clé permet de changer le minimiseur pour l'optimiseur. Le choix par
- défaut est "LBFGSB", et les choix possibles sont "LBFGSB" (minimisation non
- linéaire sous contraintes, voir [Byrd95]_, [Morales11]_ et [Zhu97]_), "TNC"
- (minimisation non linéaire sous contraintes), "CG" (minimisation non
- linéaire sans contraintes), "BFGS" (minimisation non linéaire sans
- contraintes), "NCG" (minimisation de type gradient conjugué de Newton). On
- conseille de conserver la valeur par défaut.
-
- Bounds
- Cette clé permet de définir des bornes supérieure et inférieure pour
- chaque variable d'état optimisée. Les bornes peuvent être données par une
- liste de liste de paires de bornes inférieure/supérieure pour chaque
- variable, avec une valeur ``None`` chaque fois qu'il n'y a pas de borne. Les
- bornes peuvent toujours être spécifiées, mais seuls les optimiseurs sous
- contraintes les prennent en compte.
-
- MaximumNumberOfSteps
- Cette clé indique le nombre maximum d'itérations possibles en optimisation
- itérative. Le défaut est 15000, qui est très similaire à une absence de
- limite sur les itérations. Il est ainsi recommandé d'adapter ce paramètre
- aux besoins pour des problèmes réels. Pour certains optimiseurs, le nombre
- de pas effectif d'arrêt peut être légèrement différent de la limite à cause
- d'exigences de contrôle interne de l'algorithme.
-
- CostDecrementTolerance
- Cette clé indique une valeur limite, conduisant à arrêter le processus
- itératif d'optimisation lorsque la fonction coût décroît moins que cette
- tolérance au dernier pas. Le défaut est de 1.e-7, et il est recommandé
- de l'adapter aux besoins pour des problèmes réels.
-
- ProjectedGradientTolerance
- Cette clé indique une valeur limite, conduisant à arrêter le processus
- itératif d'optimisation lorsque toutes les composantes du gradient projeté
- sont en-dessous de cette limite. C'est utilisé uniquement par les
- optimiseurs sous contraintes. Le défaut est -1, qui désigne le défaut
- interne de chaque optimiseur (usuellement 1.e-5), et il n'est pas recommandé
- de le changer.
-
- GradientNormTolerance
- Cette clé indique une valeur limite, conduisant à arrêter le processus
- itératif d'optimisation lorsque la norme du gradient est en dessous de cette
- limite. C'est utilisé uniquement par les optimiseurs sans contraintes. Le
- défaut est 1.e-5 et il n'est pas recommandé de le changer.
-
- StoreInternalVariables
- Cette clé booléenne permet de stocker les variables internes par défaut,
- principalement l'état courant lors d'un processus itératif. Attention, cela
- peut être un choix numériquement coûteux dans certains cas de calculs. La
- valeur par défaut est "False".
-
- StoreSupplementaryCalculations
- Cette liste indique les noms des variables supplémentaires qui peuvent être
- disponibles à la fin de l'algorithme. Cela implique potentiellement des
- calculs 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", "OMA", "OMB",
- "Innovation", "SigmaObs2", "MahalanobisConsistency"].
-
-**"EnsembleBlue"**
-
- *Commandes obligatoires*
- *"Background", "BackgroundError",
- "Observation", "ObservationError",
- "ObservationOperator"*
-
- SetSeed
- Cette clé permet de donner un nombre entier pour fixer la graine du
- générateur aléatoire utilisé pour générer l'ensemble. Un valeur pratique est
- par exemple 1000. Par défaut, la graine est laissée non initialisée, et elle
- utilise ainsi l'initialisation de l'ordinateur.
-
-**"KalmanFilter"**
-
- *Commandes obligatoires*
- *"Background", "BackgroundError",
- "Observation", "ObservationError",
- "ObservationOperator"*
-
- EstimationOf
- Cette clé permet de choisir le type d'estimation à réaliser. Cela peut être
- soit une estimation de l'état, avec la valeur "State", ou une estimation de
- paramètres, avec la valeur "Parameters". Le choix par défaut est "State".
-
- StoreInternalVariables
- Cette clé booléenne permet de stocker les variables internes par défaut,
- principalement l'état courant lors d'un processus itératif. Attention, cela
- peut être un choix numériquement coûteux dans certains cas de calculs. La
- valeur par défaut est "False".
-
- StoreSupplementaryCalculations
- Cette liste indique les noms des variables supplémentaires qui peuvent être
- disponibles à la fin de l'algorithme. Cela implique potentiellement des
- calculs 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", "Innovation"].
-
-**"ExtendedKalmanFilter"**
-
- *Commandes obligatoires*
- *"Background", "BackgroundError",
- "Observation", "ObservationError",
- "ObservationOperator"*
-
- Bounds
- Cette clé permet de définir des bornes supérieure et inférieure pour chaque
- variable d'état optimisée. Les bornes peuvent être données par une liste de
- liste de paires de bornes inférieure/supérieure pour chaque variable, avec
- une valeur extrême chaque fois qu'il n'y a pas de borne. Les bornes peuvent
- toujours être spécifiées, mais seuls les optimiseurs sous contraintes les
- prennent en compte.
-
- ConstrainedBy
- Cette clé permet de définir la méthode pour prendre en compte les bornes. Les
- méthodes possibles sont dans la liste suivante : ["EstimateProjection"].
-
- EstimationOf
- Cette clé permet de choisir le type d'estimation à réaliser. Cela peut être
- soit une estimation de l'état, avec la valeur "State", ou une estimation de
- paramètres, avec la valeur "Parameters". Le choix par défaut est "State".
-
- StoreInternalVariables
- Cette clé booléenne permet de stocker les variables internes par défaut,
- principalement l'état courant lors d'un processus itératif. Attention, cela
- peut être un choix numériquement coûteux dans certains cas de calculs. La
- valeur par défaut est "False".
-
- StoreSupplementaryCalculations
- Cette liste indique les noms des variables supplémentaires qui peuvent être
- disponibles à la fin de l'algorithme. Cela implique potentiellement des
- calculs 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", "Innovation"].
-
-**"UnscentedKalmanFilter"**
-
- *Commandes obligatoires*
- *"Background", "BackgroundError",
- "Observation", "ObservationError",
- "ObservationOperator"*
-
- Bounds
- Cette clé permet de définir des bornes supérieure et inférieure pour chaque
- variable d'état optimisée. Les bornes peuvent être données par une liste de
- liste de paires de bornes inférieure/supérieure pour chaque variable, avec
- une valeur extrême chaque fois qu'il n'y a pas de borne. Les bornes peuvent
- toujours être spécifiées, mais seuls les optimiseurs sous contraintes les
- prennent en compte.
-
- ConstrainedBy
- Cette clé permet de définir la méthode pour prendre en compte les bornes. Les
- méthodes possibles sont dans la liste suivante : ["EstimateProjection"].
-
- EstimationOf
- Cette clé permet de choisir le type d'estimation à réaliser. Cela peut être
- soit une estimation de l'état, avec la valeur "State", ou une estimation de
- paramètres, avec la valeur "Parameters". Le choix par défaut est "State".
-
- Alpha, Beta, Kappa, Reconditioner
- Ces clés sont des paramètres de mise à l'échelle interne. "Alpha" requiert
- une valeur comprise entre 1.e-4 et 1. "Beta" a une valeur optimale de 2 pour
- une distribution *a priori* gaussienne. "Kappa" requiert une valeur entière,
- dont la bonne valeur par défaut est obtenue en la mettant à 0.
- "Reconditioner" requiert une valeur comprise entre 1.e-3 et 10, son défaut
- étant 1.
-
- StoreInternalVariables
- Cette clé booléenne permet de stocker les variables internes par défaut,
- principalement l'état courant lors d'un processus itératif. Attention, cela
- peut être un choix numériquement coûteux dans certains cas de calculs. La
- valeur par défaut est "False".
-
- StoreSupplementaryCalculations
- Cette liste indique les noms des variables supplémentaires qui peuvent être
- disponibles à la fin de l'algorithme. Cela implique potentiellement des
- calculs 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", "Innovation"].
-
-**"ParticleSwarmOptimization"**
-
- *Commandes obligatoires*
- *"Background", "BackgroundError",
- "Observation", "ObservationError",
- "ObservationOperator"*
-
- MaximumNumberOfSteps
- Cette clé indique le nombre maximum d'itérations possibles en optimisation
- itérative. Le défaut est 50, qui est une limite arbitraire. Il est ainsi
- recommandé d'adapter ce paramètre aux besoins pour des problèmes réels.
-
- NumberOfInsects
- Cette clé indique le nombre d'insectes ou de particules dans l'essaim. La
- valeur par défaut est 100, qui est une valeur par défaut usuelle pour cet
- algorithme.
-
- SwarmVelocity
- Cette clé indique la part de la vitesse d'insecte qui est imposée par
- l'essaim. C'est une valeur réelle positive. Le défaut est de 1.