Utiliser un modèle pour simuler un écoulement de surface à partir d'une carte dans le bassin du Niger en Afrique de l'Ouest, et présenter quelques outils d'analyse graphique disponibles avec ce modèle. Les paramètres d'entrée (précipitations et ruissellement) pour la calibration du modèle ont déjà été préparés pour cette région et fournissent des résultats raisonnables.
Cet exercice nécessite l'utilisation d'Arcview Version 2.0 ou supérieure. Les données dont vous avez besoin pour cet exercice ont déjà été rentrées dans les PC que vous allez utiliser. Vous pouvez les trouver dans le répertoire \gisfiles\ex4af\ngflow.
Pour commencer, lancez ArcView et ouvrez le projet appelé ngflow.apr . Ouvrez la vue Niger et vous verrez une carte où les cours d'eau sont représentés par des lignes et les bassins de drainage utilisés dans le modèle par des polygones. Vous devez voir huit thèmes dans la vue Niger. Une brève description de ces thèmes est donnée ci-dessous :
Une simulation basée sur 90 mois de données, de juillet 1983 à décembre 1990, a déjà été réalisée. La première partie de cet exercice va vous montrer comment observer certains des paramètres d'entrée et de sortie de cette simulation. Vous allez ensuite définir (en le découpant) un sous-modèle de dimension inférieure, pour lequel vous allez effectuer une simulation et utiliser une procédure d'optimisation. Vous n'aurez ainsi pas à utiliser la simulation pour le bassin en entier, ce qui prend un certain temps...
Les valeurs du surplus sont les paramètres d'entrée du
modèle de simulation d'écoulement de surface. Le surplus
est l'excès de pluie qui est disponible pour la génération
d'un écoulement. Les valeurs de surplus utilisées ici résultent
du calcul de bilans pour l'eau du sol. Un tableau contenant des séries
de 90 valeurs de surplus en fonction du temps pour chaque sous-bassin sur
la carte est disponible. Pour construire un graphe donnant la variation
en fonction du temps du surplus dans le bassin de drainage de votre choix,
cliquez sur . Dans le premier
menu, tapez 1 pour indiquer que vous souhaitez représenter
une série de données à un endroit de la carte. Cliquez
sur OK puis sur n'importe quel sous-bassin de la carte. Remarque : Les
bassins dans le tiers inférieur de la carte reçoivent beaucoup
plus de pluie que les bassins situés vers le haut de la carte. Si
vous cliquez sur un bassin près du sommet de la carte, vous ne verrez
que peu ou pas de surplus. Dans le menu suivant, sélectionnez
"psurp.dbf" comme tableau à représenter et cliquez
sur OK. Cliquez sur YES pour conserver le graphe puis sur OK pour lui donner
un nom par défaut. On vous demandera si vous voulez ou non représenter
graphiquement des données d'un autre tableau pour le même
emplacement. Cliquez sur NO. Cliquez sur un autre emplacement sur la carte.
Choisissez de nouveau "psurb.dbf" comme tableau pour la construction
graphique. Cliquez sur OK, conservez le graphe (YES), donnez-lui un nom
(OK), et cliquez sur NO lorsqu'on vous demandera si vous voulez représenter
un autre tableau.
Vous pouvez également représenter graphiquement les variations par rapport au temps des débits simulés au "to-node" (point situé à la frontière amont d'un bassin particulier), et au "from-node" (point situé à la frontière aval d'un bassin particulier). La procédure utilisée est essentiellement la même que celle décrite ci-dessus. Des graphes de ce type peuvent être utilisés pour constater que certains des bassins sont "gagnants" (gaining reach) et d'autres "perdants" (losing reach). Voici une procédure que vous pouvez suivre pour observer les débits en amont et en aval de deux bassins de ce type. Une image a été insérée ici pour vous aider à localiser ces deux bassins. Le bassin ayant le "grid-code" 448 est un bassin "gagnant" et celui ayant le "grid-code" 1969 est un bassin "perdant".
Cliquez sur , choisissez l'option
1 , et cliquez sur OK. Cliquez sur le sous-bassin 448. Sélectionnez
"fflow.dbf", et cliquez sur OK. Conservez le graphe en cliquant
sur YES. Cliquez sur OK pour le nom du graphe, puis sur YES pour utiliser
un nouveau tableau de données. Sélectionnez "tflow.dbf"
et cliquez sur OK, puis sur YES et sur OK, et enfin sur NO. Il peut être
utile de modifier la taille des fenêtres des graphiques avec la souris
de façon à observer plus facilement les résultats.
En regardant ces résultats, il apparaît clairement qu'il s'agit
d'un bassin "gagnant" parce que les valeurs en aval (tflow) sont
plus élevées que les valeurs en amont (fflow). Faites attention
lorsque vous observez ces graphiques parce que les échelles des
x sont automatiquement modifiées pour refléter l'intervalle
des valeurs. Sur l'axe des x, "J" représente juillet et
"D" décembre. Recommencez la même procédure
pour observer les graphiques du bassin ayant le "grid-code" 1969
et vous verrez qu'il s'agit d'un bassin "perdant".
Pour présenter les possibilités de simulation et d'optimisation du modèle il est plus facile, pour accélérer les calculs, de définir un sous-modèle à partir du modèle entier. Pour créer un sous-modéle utilisable,
Vous ne pouvez pas voir le point représentant la station de Koulikoro sur cette carte parce qu'il se trouve dans la zone sélectionnée. Dès que vous avez effectué votre sélection, assurez-vous que les thèmes "Mrunoff," "Dams.shp," "Flowchk.shp," "Ngriver.shp," et "Ngbasin.ply" sont toujours les thèmes actifs.
Vous avez probablement envie d'agrandir la vue (View1) contenant le sous-modèle. Elle ressemble à peu près à cela :
Fermez la vue "Niger" dont vous n'aurez plus besoin dans le reste de cet exercice. Pour lancer le modèle de simulation, assurez-vous que la vue contenant votre sous-modèle est active et choisissez l'option SFwModel/SFlowSim dans les menus. Vous aurez alors la possibilité de spécifier certains paramètres de la simulation. Voici une description des paramètres se trouvant dans ce menu :
Ne modifiez pas ces paramètres et cliquez sur OK pour lancer la simulation. Vous verrez les arcs du fleuve être sélectionnés pendant les calculs.
Les étapes de base de l'algorithme consiste à convertir les données de surplus pour chaque bassin en une contribution locale au débit (Pflow). Cette opération s'effectue au moyen d'une fonction réponse. Plusieurs options sont disponibles dans le programme pour calculer la progression de l'écoulement dans le réseau du fleuve. Parmi ces options, il existe une approche par fonction réponse, la méthode de Muskingum Cunge, et une approche en deux étapes. Le modèle en deux étapes de progression de l'écoulement est un cas particulier du modèle de la fonction réponse. C'est le modèle qui est utilisé par défaut lorsqu'une fonction réponse n'est pas disponible ou lorsque la méthode de Muskingum n'est pas efficace sur le plan calculatoire. L'équation de base pour le modèle en deux étapes est donnée ici :
Dans cette équation, Llagi est le "retard" normalisé entre le "from-node" et le "to-node" d'un segment i du fleuve. Llagi est défini par :
Dflow est le détournement d'eau, qui est nul dans ce cas. Li
est la longueur du segment i du fleuve, vi est la vitesse d'écoulement
moyenne dans le segment i (m/s), et t est l'intervalle de temps. Regardons
d'où proviennent les nombres utilisés par le programme pour
effectuer ce calcul. Activez le thème Theme Ngriver.shp et cliquez
sur pour voir les attributs de
Ngriver.shp. Sélectionnez les données ayant le "grid-code"
441. Notez que la "vitesse" est 0.15 m/s, le coefficient de pertes
"LossC" 0.001 (1/km), et la "longueur" 85083 m. Le
coefficient de pertes est 0.001/1000 ou 0.000001 en (1/m). Ces nombres
peuvent être utilisés pour calculer le Llag du segment 441.
L'intervalle de temps pour les calculs est égal au nombre de secondes
dans un mois ou 86400*365/12=2628000. Le LLag est alors 85083/0.15/2628000
= 0.2158. Pour obtenir FFlow(t) et Fflow(t-1), ouvrez le tableau "fflow.dbf"
et observez-le. Déplacez-vous vers la droite jusqu'à ce que
vous trouviez le champ "gc441". Faisons le calcul pour t=90.
Allez jusqu'au bas du tableau "fflow" et regardez la dernière
rangée. Vous devriez voir quelque chose comme :
Remarquez que les valeurs pour Fflow(90)=79.89 m3/s and Fflow(89)=159.19 m3/s. Regardez maintenant "pflow.dbf" pour déterminer la contribution locale au débit pendant le 90ème mois.
Pflow(90)= 5.27 m3/s. Pour estimer Tflow, il faut calculer les pertes. Les pertes dans le segment i sont estimées par Fflow(i,t)*Length(i)*LossC(i) ou 79.89*85083.26*0.000001=6.80. A partir de toutes ces informations, Tflow peut être calculé : Tflow = 159.19*(0.2158)+79.89*(1-0.2158)+5.27-0-6.80 = 95.5 m3/s. Vous pouvez vérifier cette valeur dans le tableau "Tflow.dbf."
La valeur du tableau est 94.03. La différence s'explique principalement par le fait que la précision des nombres dans les tableaux est moins grande que celle des nombres gardés en mémoire par l'ordinateur, et donc que celle des nombres utilisés dans les calculs.
En plus des histogrammes que nous avons observés pour certains
polygones, une autre façon d'observer les résultats est de
tracer un profil longitudinal. Pour faire cela, sélectionnez ,
entrez 0 et cliquez sur OK. Cliquez sur un des arcs principaux dans
le réseau du fleuve et choisissez NO pour mesurer la distance de
cet arc au point de sortie le plus en aval. Le programme identifie le parcours
de l'arc sélectionné à l'arc le plus loin en aval
et trace alors un graphe montrant le débit mensuel moyen dans chaque
bassin. L'histogramme montre deux valeurs pour chaque bassin, la valeur
du débit en aval (from-node) et en amont (to-node). L'axe des x
portent les numéros d'identification des noeuds aval (from-node
ID). Un exemple est fournit ici pour vous aider à interpréter
ce graphique.
Dans la figure, vous pouvez voir deux barres étiquetées 118. La première représente le débit entrant dans le bassin 1, la seconde le débit sortant du bassin 1 ( "to flow"). La troisième barre montre qu'il existe une discontinuité entre le débit sortant du bassin 1 et le débit entrant dans le bassin 2. Cela est dû à la présence d'affluents. Les valeurs des "from-node" et des "to-node" pour les bassins 2 et 3 indiquent que ces deux bassins ont plus de pertes que de contribution.
Quelques outils supplémentaires sont disponibles pour ajouter
des points où mesurer le débit et des points de détournement
d'eau au modèle. Pour faire ceci, cliquez sur le drapeau rouge .
Entrez 1 pour ajouter des points de mesure du débit , cliquez
sur OK, et sélectionnez YES pour effectuer votre choix. Cliquez
sur quelques points dans le réseau du fleuve où vous aimeriez
connaître le débit mensuel moyen. Entrez un numero d'identification
(ID) pour chaque point dans la fenêtre de message. Cliquez sur le
drapeau vert
pour calculer les
valeurs interpolées des débits aux points sélectionnés.
Si l'un de vos points n'est pas assez près de la ligne représentant
un cours d'eau, vous obtiendrez un message d'erreur, mais le programme
d'interpolation fonctionnera pour les autres points de votre sélection
qui sont correctement placés. Si vous éprouvez des difficultés
à sélectionner des points proches des cours d'eau, faites
un zoom sur une zone avant de sélectionner les points de mesure.
Le tableau "Attributes of Flowchk.shp" est activé automatiquement
lorsque l'interpolation des débits est terminée. Dans ce
tableau, les champs "Fflow," "IFlow," et "TFlow"
fournissent le débit mensuel moyen entrant dans le bassin du fleuve
où se trouve le point, le débit mensuel moyen interpolé
au point de mesure, et le débit mensuel moyen sortant de ce bassin.
Le champ "pcntage" est égal à la distance du point
aval ("from node") au point de mesure divisée par la longueur
totale du segment contenu dans le bassin. Si vous ne vous souvenez pas
de la correspondance entre les "ID" des points de mesure et leur
emplacement sur la carte, pour identifier un point, sélectionnez
juste les données qui s'y rapportent dans le tableau et le point
correspondant dans la vue View 1 apparaîtra en jaune.
En utilisant les détournements spécifiés ici, vous
pouvez maintenant lancer un calcul pour observer les effets d'un détournement
d'eau. Pour monter la possibilité offerte d'ajouter un détournement
de débit constant au modèle, cliquez à nouveau sur
et, cette fois-ci, entrez 0
pour ajouter un point de détournement et sélectionnez
YES pour commencer une nouvelle sélection. Entrez un détournement
de 50 m3/s pour un point du bassin ayant pour "grid-code"
441 -- choisissez-le de manière à pouvoir observer la façon
dont les nombres dans le tableau "tflow.dbf" pour gc441 et pour
l'intervalle de temps 90 changent, par rapport à ceux de l'exemple
calculé ci-dessus. Voir figure ci-dessous
Pour voir les effets de ce détournement sur les résultats de la simulation, vous devez relancer le modéle de simulation. Pour effectuer une autre simulation, sélectionnez le menu SFwModel/SFlowSim et choisissez tous les paramètres par défaut. Dès que cette simulation est terminée, vous pouvez regarder les effets du détournement sur les calculs en considérant le tableau "tflow.dbf". Le débit aval ("to flow") pour le mois 90 pour le "grid-code" 441 est maintenant seulement 44.03 m3/s, au lieu de 94.03 m3/s comme précédemment. Une autre façon de constater les effets du détournement est d'observer les profils longitudinaux avant et après avoir ajouter le détournement. Vous ne pourrez pas faire une comparaison directe parce que les graphes sont automatiquement remis à jour lorque les tableaux de référence changent. Voici quelques graphes qui montrent les effets d'un détournement de 50 m3/s sur les profils.
Avant de lancer une optimisation, enlevez tous les points de détournement
que vous avez placés dans le modèle. Pour faire cela, cliquez
sur , entrez 0, cliquez sur OK,
puis sur YES. Ne cliquez sur aucun point dans la vue View1. Un processus
d'optimisation modifiant les paramètres du modèle peut être
lancé pour obtenir des résultats proches des données
observées à la station de Koulikoro. Les paramètres
du modèle qui peuvent être utilisés incluent la fraction
du surplus du bassin allant dans un réservoir souterrain, le temps
de séjour moyen de l'eau dans un réservoir souterrain, la
vitesse de ruissellement, le coefficient de perte pour le ruissellement,
la vitesse d'écoulement du cours d'eau, et le coefficient de perte
du cours d'eau. Dans cet exemple, seule la vitesse d'écoulement
du cours d'eau (V) et le coefficient de perte du cours d'eau (LossC) vont
varier pour satisfaire aux données observées. Le processus
d'optimisation cherche à minimiser la racine carrée de la
moyenne du carrés de l'erreur (root mean squared error (RMSE)) en
faisant varier la vitesse d'écoulement et en faisant tendre la somme
des différences de masse (sum of mass differences (SMD)) vers zéro
en faisant varier le coefficient de perte. Les définitions mathématiques
de ces termes sont :
Pour lancer la procédure d'optimisation, activez les thémes
Ngriver.shp, Ngbasin.ply, et Mrunoff et utilisez
pour sélectionner tous les éléments de ces couvertures.
Cliquez sur
. Choisissez Ngriver.shp
comme thème pour lesquels les résultats doivent être
concordants et cliquez sur OK. Une fenêtre intitulée "Location
of gaging station as a fraction of reach length." va apparaître
et une valeur par défaut de 0.814 est donnée. Cliquez juste
sur OK. La valeur 0.814 définit l'emplacement de la station le long
de la ligne représentant le cours d'eau sur lequel elle se trouve,
la mesure s'effectuant à partir de l'extrémité amont.
Vous verrez apparaître le message "Select a control file or
click cancel to create a new control file." Un "control file"
a été préparé pour vous. Cherchez le fichier
c:\ngflow\ex5af.ctl et cliquez sur OK. La fenêtre suivante vous indique
les paramètres qui sont optimisés en utilisant ce "control
file". Ces paramètres sont la vitesse d'écoulement du
cours d'eau et le coefficient de perte du cours d'eau. Les bornes des paramètres
sont spécifiées dans le "control file" pour cet
essai. Les bornes pour la vitesse sont 0.05 m/s et 0.4 m/s, tandis que
celle du paramètre de pertes sont 0.0001 et 0.0015. Cliquez sur
OK, OK, et OK.
Ce processus prend un certain temps. Vous souhaitez sûrement en profiter pour prendre une PAUSE.
Dès que le processus d'optimisation est achevé, cliquez sur OK et vous verrez apparaître quatre graphiques. Le graphe intitulé "massfit.cht" montre les valeurs simulées ("bestmass") et les valeurs observées ("target") pour 90 mois. Le graphe intitulé "mflowfit.cht" montre la même comparaison des 12 valeurs moyennes mensuelles : les simulées ("mflowfit") en fonction des observées ("target"). La notation au sommet de ces graphiques est un peu confuse mais elle peut être expliquée au moyen de la figure suivante.
Ainsi, pour les résultats de cet essai, le processus de modélisation a trouvé qu'une vitesse de 0.203 m/s et un coefficient de perte de 0.00099 (1/km) donnent le meilleur résultat. Les graphes "optmass.cht" et "optrmse.cht" montrent comment SMD et RMSE varient avec le nombre d'itérations. Les valeurs sur l'axe des x représentent le nombre d'itérations et les valeurs sur l'axe des y sont respectivement les SMD et RMSE pour ces itérations.