Skip to content

Assimilation

daoum edited this page May 25, 2026 · 4 revisions

6 Assimilation de Données

6.1 Objectif et périmètre

L’assimilation de données vise à améliorer l’état du modèle hydraulique en combinant de manière optimale :

  • les résultats issus du modèle numérique (simulation),
  • les observations terrain disponibles (niveaux d’eau ou débits).

Cette approche permet :

  • de réduire les écarts modèle–mesures,
  • d’ajuster automatiquement certains paramètres du modèle,
  • d’améliorer la cohérence physique et la fiabilité des résultats.

6.2 Principe général – Approche filtre de Kalman

6.2.1 Positionnement méthodologique

Les approches basées sur le filtrage de Kalman intègrent les observations de manière séquentielle dans le temps à l’aide d’une formulation analytique. La méthode d’assimilation de données implémentée dans le plugin s’appuie sur les travaux de Barthélemy, S. (2015) et Habert, J. (2016).

À chaque cycle d’analyse, l’état du modèle est corrigé en fonction :

  • des nouvelles observations disponibles,
  • des incertitudes associées au modèle et aux mesures.

Le filtre de Kalman met à jour la matrice de covariance d’erreur, ce qui permet d’améliorer progressivement la précision de l’estimation.

Deux grandes familles de méthodes existent :

  • une mise à jour algébrique, via un modèle linéaire tangent,
  • une mise à jour stochastique, via un ensemble de simulations (filtre de Kalman d’Ensemble – EnKF).

6.2.2 Spécificité de l’implémentation dans le plugin

Dans la version actuelle du plugin :

  • seule l’étape d’analyse est implémentée,
  • il n’y a pas de rejeu avec phase de prévision,
  • l’assimilation est réalisée sur une seule fenêtre temporelle.

Autrement dit, le filtre de Kalman est utilisé sur un unique cycle d’analyse.

Ce cas particulier est mathématiquement équivalent à une résolution de type BLUE (Best Linear Unbiased Estimator).

Cette formulation garantit :

  • une estimation non biaisée,
  • une variance minimale de l’état analysé,
  • une pondération optimale entre modèle et observations.

6.2.3 Formulation mathématique – BLUE (référence théorique)

La méthode BLUE (Best Linear Unbiased Estimator) repose sur l’existence d’un estimateur linéaire non biaisé minimisant la variance de l’état analysé $x^a$.

Cet estimateur combine :

  • l’ébauche $x^b$ (état a priori du système),
  • les observations $y^o$.

L’expression de l’état analysé est donnée par :

$$ x^a = x^b + B H^T \left(H B H^T + R\right)^{-1} \left(y^o - H x^b\right) $$

Notations

  • $x^b$ : état d’ébauche
  • $x^a$ : état analysé
  • $y^o$ : vecteur des observations
  • $H$ : opérateur d’observation
  • $B$ : matrice de covariance des erreurs de l’ébauche
  • $R$ : matrice de covariance des erreurs d’observation

6.2.4 Spécificité de l’implémentation

L’implémentation de la méthode BLUE inclut une boucle d’optimisation visant à ajuster les matrices de covariance $B$ et $R$ (voir l'article de Desroziers).

Ce mécanisme inclut :

  • la présence d’une variable d’itération (sigma),
  • un ajustement progressif du poids relatif entre modèle et observations.

6.2.5 Paramètres ajustés par assimilation

a) Coefficients de frottement (Strickler)

Les coefficients de Strickler sont ajustés via :

$$ K_s^{\text{analyse}} = K_s^{\text{ébauche}} + \mathrm{coef}_{\text{correcteur}} $$

b) Forçages du modèle

Les forçages sont corrigés via la transformation suivante :

$$ \tilde{loi}(t) = a \cdot loi(t) + b $$

Avec :

  • $a$ : facteur multiplicatif
  • $b$ : décalage vertical

Cette formulation permet de limiter la dimension du problème.

6.2.6 Contraintes sur les paramètres

Des bornes minimales et maximales peuvent être imposées sur :

  • les coefficients de frottement,
  • les forçages du modèle.

Ces contraintes permettent :

  • d’assurer la stabilité numérique,
  • d’éviter des corrections non réalistes.

6.2.7 Déroulement du calcul

  1. Calcul de l’ébauche $x^b$

  2. Génération de simulations perturbées

    • Les perturbations sont lancées en parallèle.
  3. Construction de la matrice $H$

  4. Application de BLUE

  5. Calcul des corrections

  6. Mise à jour des paramètres

  7. Simulation finale

    Schéma de l’algorithme d’assimilation de données (version simplifiée) :

flowchart TD

%% Styles
classDef input fill:#E3F2FD,stroke:#1E88E5,stroke-width:2px,color:#0D47A1;
classDef model fill:#E8F5E9,stroke:#43A047,stroke-width:2px,color:#1B5E20;
classDef perturb fill:#FFF3E0,stroke:#FB8C00,stroke-width:2px,color:#E65100;
classDef matrix fill:#F3E5F5,stroke:#8E24AA,stroke-width:2px,color:#4A148C;
classDef process fill:#E0F7FA,stroke:#00ACC1,stroke-width:2px,color:#006064;
classDef result fill:#FCE4EC,stroke:#D81B60,stroke-width:2px,color:#880E4F;

%% Entrées
A[Lecture Paramètre Modèle]:::input --> B[Création fichier d’entrée]:::process
C[Lecture Paramètre assimilation + données]:::input --> D[Run Modèle référence]:::model

B --> D
D --> E[Création fichier d’entrée perturbé]:::perturb

%% Modèles perturbés
subgraph Perturbations
    E --> P1[Run Modèle perturbé 1]:::perturb
    E --> P2[Run Modèle perturbé 2]:::perturb
    E --> P3[...]:::perturb
    E --> PN[Run Modèle perturbé N]:::perturb

    P1 --> Z1[Z ou Q perturbé 1]:::perturb
    P2 --> Z2[Z ou Q perturbé 2]:::perturb
    P3 --> Z3[...]:::perturb
    PN --> ZN[Z ou Q perturbé N]:::perturb
end

%% Construction matrice H
Z1 --> H[Création de la matrice H]:::matrix
Z2 --> H
Z3 --> H
ZN --> H

%% Vecteur ébauche et données
D --> XB[Vecteur xb, ébauche]:::matrix
C --> MBR[Matrice B, R + vecteur observation]:::matrix

XB --> BLUE
MBR --> BLUE
H --> BLUE

%% Assimilation
BLUE["Application de BLUE<br/>Best Linear Unbiased Estimator"]:::process --> COEF[Coefficients correcteurs]:::process
COEF --> CORR[Création fichiers corrigés]:::process

%% Analyse finale
CORR --> RUNA[Run Modèle Analyse]:::model
RUNA --> RES[Résultats finaux]:::result
Loading

6.2.8 Références

  • Barthelemy, S. (2015).
    Assimilation de données ensembliste et couplage de modèles hydrauliques 1D-2D pour la prévision des crues en temps réel : application au réseau hydraulique « Adour maritime ».
    Thèse de doctorat, Université de Toulouse.

  • Habert, J. (2016).
    Prévisions des crues en temps réel sur le bassin de la Marne : assimilation in situ pour la correction du modèle hydraulique mono-dimensionnel Mascaret.
    Thèse de doctorat, Institut National Polytechnique de Toulouse (INPT).

  • Desroziers, G., Berre, L., Chapnik, B., & Poli, P. (2005).
    Diagnosis of observation, background and analysis error statistics in observation space. Quarterly Journal of the Royal Meteorological Society, 131, 3385–3396.

6.3 GUI - Création d'un modèle avec l'assimilation de données

Cette section décrit les paramètres disponibles dans l’interface graphique permettant de configurer l’assimilation des données.

6.3.1 Paramétrage des observations (layer outputs)

Il est nécessaire de renseigner les paramètres liés aux observations, qui pourront ensuite être sélectionnés dans le menu d’assimilation. Les observations sont décrites dans le layer outputs. Dans le cadre de l’assimilation des données, des informations supplémentaires doivent être renseignées.

Il est notamment nécessaire d’indiquer :

  • Std error Z : écart-type de l’erreur associée aux observations de cote d’eau (Z).

  • Std error Q : écart-type de l’erreur associée aux observations de débit (Q).

  • Min Z accepted : seuil de rejet minimum des observations de cote d’eau (Z).

  • Min Q accepted : seuil de rejet minimum des observations de débit (Q).

  • 6.3.2 Menu d’assimilation

    Le menu d’assimilation

    Menu d’assimilation est divisé en deux parties :
  • Assimilation des coefficients de Strickler (Ks) : permet de corriger les coefficients de frottement du lit mineur et du lit majeur.

  • Assimilation des lois hydrauliques : permet de corriger les forçages du modèle (lois de type limnigraphe ou hydrographe) en ajustant les coefficients des lois.

a) Assimilation des coefficients de Strickler (Ks)

  1. Activer l’assimilation via l’option dédiée.

    • Lorsque l’assimilation est désactivée, aucune correction n’est appliquée aux coefficients de Strickler (Ks).
  2. Sélectionner la variable observée utilisée pour l’assimilation :

    • H : cote d’eau

    • Q : débit

      Ce choix conditionne les observations utilisées pour corriger les coefficients Ks.

  3. Configurer les paramètres globaux d’assimilation :

    • Misfit rejection threshold (%) : seuil de rejet des observations.
      • Les observations dont l’écart au modèle est trop important sont exclues.
      • Permet d’éliminer les données aberrantes avant l’assimilation.
    • Sigma iteration : nombre d’itérations de l’algorithme BLUE.
      • À chaque itération, les matrices de covariance B et R sont mises à jour (voir l'article de Desroziers).
    • Définir les perturbations initiales des coefficients :
      • Perturbation minor bed : perturbation initiale du coefficient Ks du lit mineur.
      • Perturbation major bed : perturbation initiale du coefficient Ks du lit majeur.
  4. Sélectionner les zones de contrôle sur lesquelles l’assimilation sera appliquée.

    • Cocher la zone souhaitée.

      • Une zone correspond à une portion de bief associée à des coefficients de frottement pour le lit mineur et le lit majeur.
      • Le numéro de zone dépend à la fois :
        • du numéro de la branche,
        • du numéro de la zone de frottement.
      • Exemple :
        • Zone 1.2 (numero_branch.numero_zone_frottement)
          désigne la zone de frottement n°2 appliquée à la branche n°1.
    • Recharger la liste si des modifications des coefficients Ks ont été effectuées après l’ouverture de l’interface.

    • Possibilité de sélectionner la zone de contrôle directement sur la carte :

      • Cliquer sur le bouton Select on map, puis cliquer sur la zone souhaitée.

    • Possibilité de vérifier la sélection sur la carte : Affichage cartographique

      • Affichage de la géométrie associée à la zone sélectionnée.
      • Zoom automatique sur l’élément sélectionné.
    • Activer le mode édition pour modifier les paramètres.


⚠️ Attention :

    Vérifier la présence d’éventuels avertissements lors de la sélection des zones :

    • Un symbole d’avertissement indique que les paramètres d’assimilation ne sont pas correctement renseignés.
    • Tant que les coefficients ne sont pas activés et paramétrés, aucune assimilation n’est réalisée (par défaut, les coefficients sont décochés).

  1. Paramétrer les zones de contrôle sélectionnées :
    • Sélectionner les observations à utiliser pour l’assimilation
      (les observations valides sont celles indiquées dans le layer outputs).
    • Pour chaque coefficient de Strickler (lit mineur et lit majeur) :
      • Activer ou désactiver la correction.
      • Définir des valeurs minimales et maximales afin de contraindre le coefficient de frottement dans un domaine physiquement valide.
      • Renseigner l’écart-type de correction afin de contrôler l’amplitude des ajustements.
    • Valider les paramètres pour appliquer l’assimilation.
      • Utiliser l’annulation pour revenir aux paramètres précédents si nécessaire.

b) Assimilation des lois hydrauliques

  1. Activer l’assimilation via l’option dédiée.

    • Lorsque l’assimilation est désactivée, aucune correction n’est appliquée aux lois hydrauliques.
  2. Sélectionner la variable observée utilisée pour l’assimilation :

    • H : cote d’eau
    • Q : débit
      Ce choix conditionne les lois disponibles pour la correction.
  3. Choisir le type de loi hydraulique à corriger :

    • Level : loi de type limnigraphe
    • Flow Rate : loi de type hydrographe
    • Linear Flow Rate : loi de type hydrographe associée à un apport (lateral_inflows)
  4. Configurer les paramètres globaux d’assimilation :

    • Misfit rejection threshold (%) : seuil de rejet des observations.
      • Les observations dont l’écart au modèle est trop important sont exclues.
      • Permet d’éliminer les données aberrantes avant l’assimilation.
    • Sigma iteration : nombre d’itérations de l’algorithme BLUE.
      • À chaque itération, les matrices de covariance B et R sont mises à jour (méthode de Desroziers).
    • Définir les perturbations initiales des coefficients :
      • A : perturbation initiale du coefficient A
      • B : perturbation initiale du coefficient B

⚠️ Attention :

    Vérifier la présence d’éventuels avertissements lors de la sélection des lois :

    • Un symbole d’avertissement indique que les paramètres d’assimilation ne sont pas correctement renseignés.
    • Tant que les coefficients ne sont pas activés et paramétrés, aucune assimilation n’est réalisée (par défaut, les coefficients sont décochés).

  1. Sélectionner les lois hydrauliques à corriger dans la liste :

    • Cocher les lois souhaitées.

    • Recharger la liste si de nouvelles lois ont été ajoutées après l’ouverture de l’interface.

    • Activer le mode édition pour modifier les paramètres.

    • Possibilité de vérifier la sélection sur la carte : Affichage cartographique

      • Affichage de la géométrie associée à la loi.
      • Zoom automatique sur l’élément sélectionné.
  2. Paramétrer chaque loi hydraulique sélectionnée :

    • Sélectionner les observations à utiliser pour l’assimilation
      (les observations valides sont celles indiquées dans le layer outputs).
    • Définir des valeurs minimales et maximales afin de contraindre la loi dans un domaine physiquement valide.
    • Pour chaque coefficient (A et B) :
      • Activer ou désactiver la correction.
      • Renseigner l’écart-type de correction afin de contrôler l’amplitude des ajustements.
    • Valider les paramètres pour appliquer l’assimilation.
      • Utiliser l’annulation pour revenir aux paramètres précédents si nécessaire.

6.4 Visualisation des Résultats d’assimilation

6.4.1 Résultats enregistrés

Lors d’un run d’assimilation, les éléments suivants sont stockés :

  • les coefficients de Strickler corrigés pour chaque zone de contrôle ;
  • les coefficients des lois de contrôle corrigés pour chaque loi.

Les runs de référence et d’analyse associés à l’assimilation sont également conservés.


Remarque

Lors du lancement d’un calcul, une option permet de conserver ou de supprimer automatiquement les répertoires de calcul des perturbations.
Ces répertoires ne sont toutefois pas enregistrés dans la table des résultats d’assimilation.



💡 Astuce

Vous pouvez comparer le run de référence et le run d’analyse en utilisant la fonctionnalité de "Comparing mod" disponible dans le menu "hydrogramme". Menu hydraoramme


6.4.2 Visualisation des coefficients d’assimilation

Dans le menu "hydrogramme" Menu hydraoramme, un onglet est ajouté permettant d’afficher les tableaux des coefficients issus de l’assimilation (les coefficients de Strickler et les coefficients des lois).

6.4.3 Visualisation des lois imposées et corrigées

Il est possible actuellement de visualiser les conditions et lois imposées dans le modèle en utilisant le menu "hydrogramme", en sélectionnant les extrémités ou les apports.

Un onglet spécifique à été ajouté pour permettre de visualiser les lois corrigées par l’assimilation.
Pour cela, il est nécessaire de :

  1. sélectionner le run ;
  2. sélectionner le run analysé associée ;
  3. Cela affichera la loi corrigée utilisée pour le calcul de l'analyse.

⚠️ Attention

Seuls les coefficients de contrôle sont stockés.
La loi est donc recalculée à partir des coefficients enregistrés et de la loi actuellement définie dans le modèle.


6.4.4 Consultation des listings

Enfin, il est possible de consulter les listings des runs ainsi que ceux de l’assimilation via le menu : Run > Reading last .lis File

English guide

French guide

Appendices

Clone this wiki locally