Repository navigation
Assimilation
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.
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).
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.
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é
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^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
L’implémentation de la méthode BLUE inclut une boucle d’optimisation visant à ajuster les matrices de covariance
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.
Les coefficients de Strickler sont ajustés via :
Les forçages sont corrigés via la transformation suivante :
Avec :
-
$a$ : facteur multiplicatif -
$b$ : décalage vertical
Cette formulation permet de limiter la dimension du problème.
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.
-
Calcul de l’ébauche
$x^b$ -
Génération de simulations perturbées
- Les perturbations sont lancées en parallèle.
-
Construction de la matrice
$H$ -
Application de BLUE
-
Calcul des corrections
-
Mise à jour des paramètres
-
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
-
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.
Cette section décrit les paramètres disponibles dans l’interface graphique permettant de configurer l’assimilation des données.
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).
-
Le 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.
-
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).
-
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.
-
-
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.
-
Misfit rejection threshold (%) : seuil de rejet des observations.
-
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.
-
Zone 1.2 (numero_branch.numero_zone_frottement)
-
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 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.
-
- 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).
Vérifier la présence d’éventuels avertissements lors de la sélection des zones :
- 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.
- Sélectionner les observations à utiliser pour l’assimilation
-
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.
-
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.
-
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)
-
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
-
Misfit rejection threshold (%) : seuil de rejet des observations.
- 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).
Vérifier la présence d’éventuels avertissements lors de la sélection des lois :
-
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 de la géométrie associée à la loi.
- Zoom automatique sur l’élément sélectionné.
-
-
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.
- Utiliser l’annulation pour revenir aux paramètres précédents si nécessaire.
- Sélectionner les observations à utiliser pour l’assimilation
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". ![]()
Dans le menu "hydrogramme"
, un onglet est ajouté permettant d’afficher les tableaux des coefficients issus de l’assimilation (les coefficients de Strickler et les coefficients des lois).
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 :
- sélectionner le run ;
- sélectionner le run analysé associée ;
- Cela affichera la loi corrigée utilisée pour le calcul de l'analyse.
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.
Enfin, il est possible de consulter les listings des runs ainsi que ceux de l’assimilation via le menu : Run > Reading last .lis File
- 1. Installation de PostgreSQL
- 2. Installation de l'extension spatiale PostGIS
- 3. Création d'une base de donnée
- 4. Installation et paramétrage de QGis
-
3. Gestion des projets (modèles)
- 3.1. Ouverture d'un projet existant
- 3.2. Ouverture d'un modèle contenu dans un projet existant
- 3.3. Créer un nouveau modèle
- 3.4. Travail sur un modèle depuis différents postes
- 3.5. Exporter un modèle
- 3.6. Importer un modèle
- 3.7. Mise à jour la base de données d'un modèle
- 3.8. Reconstruction des tables de la base de donnée
- 3.9. Clonage d'un modèle
-
-
- 4.2.1. Levés topographiques et bathymétriques
- 4.2.2. Création des profils
- 4.2.3. Extraction de la géométrie du MNT sur les profils
- 4.2.4. Construction manuelle des points altimétriques de chaque profil
- 4.2.5. Ponts
- 4.2.6 Interpolation du profil
- 4.2.7 Zones de frottements, planimétrage, maillage
- 4.2.8 Fonctionnalité d'importation du lit mineur/majeur à partir de layer Qgis
-
5. Calculs et exploitation des résultats
- 5.1 Creation des fichiers du modèle
- 5.2 Lancement d'un run
- 5.3 Bouton d'hydrogramme
- 5.4 Bouton 'cross section results'
- 5.5 Bouton 'Basin results'
- 5.6 Bouton graphique de déplacement d'ouvrage mobile
- 5.7 Suppression des résultats d'un run
- 5.8 Calcul des Scores
- 5.9 Exportation des résultats pour les Profils, Outputs,ou Stations
- 5.10 Export CartoZI
- 5.11 "Mass Graphics for Outputs" Menu
- 5.12 Export fichier d'initialisation (.lig)
- 5.13 Affichage des « Listings » (.lis)