Under refactoring…
This documentation is not valid anymore and is being updated
1. Guide de préparation des données CWatM pour la France#
1.1. Installations de la boîte à outils#
Cette boîte à outils permettra de préparer les données requises de manière automatique.
1.1.1. Installer l’environnement Python#
Cette installation est nécessaire à la fois pour pouvoir lancer le modèle CWatM, mais également pour pouvoir exécuter les scripts python de formatage des données cités dans la suite et qui permettent le formatage automatique des données d’entrée du modèle.
Après avoir cloné le dossier Git (voir installation 1]), l’environnement virtuel peut être installé comme suit :
Ouvrir une console Anaconda Prompt (en mode administrateur de préférence)
Rentrer les commandes suivantes
# Si geop4th a été cloné sur un autre disque que le C:, il est d'abord nécessaire de rentrer le nom du disque :
# d: (par exemple)
cd "chemin/vers/dossier/geop4th/install"
conda env create -f environment_cwatm.yml -n cwatenv
1.1.2. Corriger l’environnement Python#
La compatibilité entre les version des différents modules n’est malheureusement pas évidente à gérer.
Afin de bénéficier des versions récentes de numpy, pandas, xarray… tout en maintenant le bon fonctionnement de pysheds, il est nécessaire d’apporter une correction manuelle à ce dernier (dans l’attente qu’elle soit intégrée directement dans pysheds).
Pour cela, il est nécessaire d’ouvrir en mode administrateur les scripts sview.py et sgrid.py de pysheds. Ces 2 scripts se trouvent dans le dossier <Miniconda3 ou Anaconda>\envs\wtrajenv\Lib\site-packages\pysheds\
Tip
Souvent Miniconda est installé dans C:\ProgramData\Miniconda3\
Il est possible de les ouvrir en mode administrateur avec Notepad++ ou bien dans Spyder (après avoir ouvert la console Anaconda Prompt en mode administrateur : clic droit > Exécuter en tant qu’administrateur).
Dans le script sview.py, L332 :
remplacer
nodata=0
parnodata=np.int32(0)
Dans le script sgrid.py L602 :
remplacer
nodata_out = 0
parnodata_out = np.int32(0)
Toujours dans le script sgrid.py L2375 :
remplacer
'nodata' : False
par'nodata' : np.False_
Relancer Spyder
1.2. Choix préliminaires#
1.2.1. Délimiter la zone d’étude#
1.2.1.1. Limites de la zone d’étude#
Pour simplifier les procédures suivantes et pour limiter la consommation inutile d’espace sur disque, il est recommandé de définir au tout début un masque qui englobe, avec une certaine marge, la zone d’étude. Toutes les données formatées seront découpées et stockées selon ce masque.
Tip
il est généralement suffisant de considérer autour de la zone d’étude une marge de 20-25× la résolution
1.2.1.2. Limites du bassin versant#
Pour délimiter une zone d’étude qui permette d’obtenir un bilan du cycle de l’eau qui soit cohérent et bouclé, il est recommandé de choisir sa zone d’étude à partir des délimitations des bassins versants (BV) d’intérêt. En première approximation, il est considéré que les limites du bassin hydrogéologique sont équivalentes à celles du bassin topographique. Ces dernières peuvent être trouvées dans les fichiers shapefile en accès public généralement recensés par les collectivités, ou alors dans les bases de données CARTHAGE ou TOPAGE.
Tip
sur QGIS, il est possible d’extraire plusieurs polygones (plusieurs BV), les fusionner,
et rajouter une zone tampon grâce aux outils de Géotraitement des Vecteurs
Pour faciliter le fonctionnement de CWatM, il est recommandé ensuite de redélimiter les BV et la zone d’étude en utilisant les données d’entrée de CWatM (voir Masque de la zone d’étude).
Tip
sur QGIS, il est possible d’afficher la superficie des polygones d’un shapefile, ici des BV
(dans les informations dérivées
)
1.2.2. Choisir la résolution et le Système de Coordonnées de Référence#
Deux résolutions doivent être définies :
la résolution des processus de surface
la résolution des processus souterrains
Pour une étude sur un territoire de 500 km² nous considérons généralement 1 km² pour la 1re, et 200×200 m² pour la 2de.
Concernant le Système de coordonnées de référence (SCR), il est conseillé d’opter pour celui des données climatiques car ce sont généralement les données les plus lourdes et longues à traiter, et ce sont également l’une des seules à être nativement à une résolution plus large que la résolution du projet. En effet, à la différence des données climatiques, les données disponibles à résolution plus fine que celle du projet devront dans tous les cas être agrégées à une résolution plus grossière, qu’on change leurs SCR ou non.
Note
Le SCR des données MétéoFrance (SIM2, EXPLORE2, …) est epsg:27572
(LambertZone II)
1.3. Données topographiques#
1.3.1. Modèle numérique de terrain#
1.3.1.1. Téléchargement#
Pour obtenir le MNT sur la zone d’étude, il est nécessaire de télécharger les données IGN de la base de donnés « ALTI » sur https://geoservices.ign.fr/bdalti
Tip
disponibles à une résolution de 25 m. Il n’est pas utile dans CWatM de récupérer les données IGN à une résolution de 1 m (« RGE ALTI »)
Ces données sont téléchargeables par département et sont décomposées en
tuiles rectangulaires. Il est d’abord nécessaire d’identifier
les départements touchés par la zone d’étude puis télécharger les
MNT pour ces départements. On peut utiliser la carte
departements-20220101-shp.zip
pour visualiser les départements concernés.
1.3.1.2. Formatage#
Une fois les MNT départementaux téléchargés, il est nécessaire de sélectionner, fusionner et découper les tuiles d’intérêt sur la zone voulue. Avec la boîte à outils, cela peut être fait automatiquement :
Il faut au préalable regrouper tous les fichiers dans un même dossier
Note
il est normal qu’un certain nombre de tuiles soient ignorées/remplacées, du fait des doublons
Exécuter dans Spyder :
pgi.formater(r"<chemin_du_dossier_BD_ALTI>",
'ALTI',
mask = r"<chemin_masque_zone_etude>",
resolution = [200, 1000],
dst_crs = <epsg>, # 27572 par exemple (LambertZone II)
x0 = 0, y0 = 0, # coordonnées d'alignement, au choix
)
Ce script génère :
un MNT fusionné et découpé selon le masque, dans la résolution et le SCR d’origine des données IGN
des MNT reprojetés dans le SCR et les résolutions spécifiées
des cartes de direction d’écoulement (LDD)
des cartes d’écart-type des altitudes (utilisées pour le calcul sous-maille du ruissellement de surface selon la formule d’Arno)
Développement futur
Il est envisagé de rajouter la génération d’une carte représentant les aires des pixels. En effet, pour les systèmes de projection conformes, les aires ne sont pas conservées et peuvent ainsi varier d’un pixel à l’autre. Il est alors nécessaire d’indiquer cette donnée dans les paramètres de CWatM.
À noter que pour des systèmes de projection conformes comme le Lambert 93 (epsg:2154), cet écart est minime (< 1%).
Une fonction existe déjà (geohydroconvert.cell_area()
) mais ne permet pas encore de fournir
l’aire réelle.
Ces fichiers seront générés dans le dossier des fichiers source sous les noms ALTI_CWATM_<…>.tif, LDD_CWATM_<…>.tif et ElevationStD_CWATM_<…>.tif.
Tip
Classiquement, les fichiers de MNT sont à placer dans le dossier landsurfacetopo\ tandis que les fichiers de LDD sont à placer dans le dossier routing\.
Ils correspondent respectivement aux paramètres Elevation
et Ldd
de CWatM.
1.3.2. Masque de la zone d’étude#
Il est nécessaire de fournir à CWatM un masque de la zone d’étude, dans la résolution et le SCR choisis pour le projet.
La fonction geohydroconvert.extract_watershed()
facilite la chose en permettant d’extraire automatiquement les délimitations d’un BV
topographique à partir des coordonnées de son exutoire. Pour cela :
shed = ghc.extract_watershed(
ldd = r"<chemin\vers\le\LDD>",
outlet = (290500, 1840500)
)
ghc.export(shed, r"<chemin\de\sortie")
Tip
Classiquement, ce masque est à placer dans le dossier areamaps\.
Il correspond au paramètre MaskMap
de CWatM.
Tip
Il est conseillé de faire faire concorder la zone d’étude avec les limites d’un ou plusieurs BV, de amnière à se rapprocher d’un modèle au bilan hydrologique bouclé. En effet, une délimitation arbitaire de la zone d’étude impose ensuite de connaître les flux régionaux entrant et sortant.
1.4. Données pour MODFLOW (nappe)#
Dans le dossier 📁 source de CWatM, aller dans le sous-dossier 📁 preprocessing_forModFlow puis ouvrir les fichiers Main_Preprocess_ModFlow.py et settings.ini dans l’IDE.
Dans le fichier settings.ini, indiquer les éléments suivants :
root_folder
: dossier contenant les données d’entrée du modèle CWatM
mask_to_process
: chemin du masque (voir Masque de la zone d’étude)
folder_corr
: nom du dossier qui contiendra le masque corrigé pour MODFLOW (facultatif à modifier)
mask_name
: nom du fichier de masque
initial_dem_tif_path
: chemin du MNT « d’origine » qui servira de base pour générer les données pour MODFLOW (voir Note)
mask_epsg
: SCR du masque si celui-ci est absent (facultatif)
par défaut ce SCR sera également le SCR du modèle CWatM (
cwatm_epsg
)
init_dem_epsg
: SCR du MNT d’origine
par défaut ce SCR sera également le SCR du modèle souterrain MODFLOW (
modflow_epsg
)
res_CWATM
: résolution des données d’entrée du modèle CWatM
res_ModFlow
: résolution du modèle souterrain MODFLOW
res_ModFlow_finer
: résolution plus fine pour permettre de calculer un pourcentage de rivière dans chaque maille MODFLOW à la résolution précédente
il est possible d’indiquer la même résolution que précédemment
Note
Comme MNT d’origine, il est préférable d’indiquer le MNT non reprojeté à l’étape précédente.
Exécuter le script Main_Preprocess_ModFlow.py.
1.5. Données climatiques#
1.5.1. Réanalyse historique SIM2#
1.5.1.1. Téléchargement automatique#
Exécuter :
# Download SIM2 data
dl.sim2(var_list = ['ETP', 'EVAP', 'PRENEI', 'PRELIQ', 'T'],
dst_folder = r"<destination_folder>",
first_year = <year(int)>,
last_year = <year(int)>,
mask = r"<chemin/vers/masque(optionnel)>",
filetype = 'nc',
)
1.5.1.2. Formatage#
Exécuter :
ttbox.formater(data = r'<chemin_dossier_SIM2>',
data_type = 'SIM2',
mask = [r'<chemin_masque_zone_etude_1>',
r'<chemin_masque_zone_etude_2>'],
# dst_crs = <epsg>, resolution = <metres>, resampling = 5,
)
1.5.2. Projections DRIAS#
1.5.2.1. Téléchargement manuel#
Les projections (passées et futures) des données climatiques françaises sont en
accès libre sur le site https://www.drias-climat.fr >
DONNÉES ET PRODUITS
:
Il est d’abord nécessaire de se créer un compte.
Une fois sur l’espace de téléchargement :
aller dans l’onglet
Accès simplifié (domaine complet)
dans le répertoire
📁 EXPLORE2-Climat 2022
sélectionner le jeu de données
📄 Données corrigées EXPLORE2-Climat par ADAMONT
en cliquant sur la 1re ligne, cela sélectionne les données pour les 17 modèles
parmi les
Scénarios
, sélectionner :Hist.
,RCP4.5
,RCP8.5
parmi les
Paramètres
, sélectionner :prtot
,prsn
,tas
etetp Hg
Important
Pour la suite il est requis de regrouper ces téléchargements par modèle :
📁 Model1\
📁 Model2\
…
1.5.2.2. Formatage#
Exécuter :
ttbox.formater(data = r'<chemin_dossier_DRIAS-Climat2022\Modelxxx>',
data_type = 'DRIAS-Climat 2022', # ou 'DRIAS-Eau 2024'
mask = [r'<chemin_masque_zone_etude_1>',
r'<chemin_masque_zone_etude_2>'],
# dst_crs = <epsg>, resolution = <metres>, resampling = 5,
)
Note
les 3 derniers paramètres sont nécessaires seulement si l’on veut reprojeter les données climatiques
Cette étape permet de raccourcir le nom des fichiers NetCDF DRIAS, de les corriger (notamment conversion des unités mm/s → m/j), de les géoréférencer (notamment en les standardisant pour une lecture automatique dans QGIS), de les découper selon les masques renseignés et éventuellement de les reprojeter.
De plus, un fichier sur-compressé est généré (les données DRIAS sont déjà compressées sans pertes avec l’encodage gzip, mais une sur-compression avec pertes (packing float32 bits → int16 bits) est appliquée), de manière à avoir une version très compacte et rapide à charger dans QGIS des données à l’échelle de la France.
Note
Cette étape de formatage peut prendre plus de 1 min 1/2 en moyenne par fichier de données climatiques, donc plusieurs heures pour l’ensemble des projections DRIAS.
1.6. Données de sol#
1.6.1. Notions importantes#
CWatM schématise le sol en le découpant en 3 couches :
une fine couche superficielle de 5 cm
une couche racinaire dans laquelle les plantes puiseront l’eau qu’elles transpirent
une couche profonde dans laquelle la présence de racines est négligée
Pour chacune de ces couches, il est nécessaire de renseigner plusieurs paramètres :
la teneur volumétrique en eau à saturation, ainsi que résiduelle, qui serviront à définir la capacité de stockage du sol [1], c’est-à-dire le volume d’eau pouvant varier dans le sol
la conductivité à saturation (\(K_{sat}\)), le paramètre lié à la pression d’entrée d’air \(\alpha\) et l’indice de répartition des tailles des pores (\(\lambda\)), qui serviront à estimer la courbe de rétention [2], c’est-à-dire la relation qui lie la teneur volumétrique en eau et le potentiel hydrique
NB : il n’y a pas de relation directe entre l’indice de répartition des tailles des pores et la porosité
cette courbe de rétention va permettre ensuite d’estimer :
Les données de ces 3 couches serviront à la modélisation des prairies (et cultures non-irriguées?), rizières et cultures irriguées. Dans un but de simplification, une profondeur de couche racinaire de 25 cm (30 cm moins les 5 premiers cm) est appliquée uniformément au bassin versant. Cette valeur est une profondeur assez généraliste pour décrire la zone où se situent la majorité des racines des plantes de prairies et de cultures.
Il reste néanmoins possible d’augmenter la profondeur de cette couche
pour les rizières et les cultures irriguées grâce aux données
maxRootDepth
. Dans ce cas, les valeurs des paramètres du sol
indiquées pour la couche racinaire initiale seront appliquées à la
couche racinaire approfondie.
Note
Dans le cas des forêts, il est possible de définir une maxRootDepth
ainsi que des paramètres de sol spécifiques aux forêts, de manière à ajuster avec plus de précision la couche racinaire des forêts.
1.7. Données de couvertures des sols#
1.8. Données de prélèvements#
Pour les usages, il est possible d’utiliser les données recensées dans la Banque Nationale des Prélèvements en Eau (BNPE).
# Download BNPE data
dl.bnpe(dst_folder = r"<destination_folder>",
years = [y for y in range(2008, 2023)],
departments = [73, 74],
filetype = ['csv', 'geojson'],
)
# Combine, merge, clip, reproject and rasterize data
pgi.formater(r"<destination_folder>\originaux",
data_type = "BNPE",
mask = [r"path\to\catchment.shp",
r"path\to\others\masks.shp"],
resolution = [200, 1000], x0 = 0, y0 = 0, # for NetCDF conversion
dst_crs = 27572,
)
1.9. Lancer CWatM#
1.9.1. Simuler les limites du BV [obsolète]#
Pour générer automatiquement le masque du BV il est possible d’utiliser CWatM :
ouvrir le fichier current.txt
remplacer le contenu par :
maskmap
lancer run.bat
Le masque ainsi généré se trouvera dans le dossier
1.1.3. Comment exécuter les scripts geop4th#
L’interface d’exécution des scripts python pourra être lancée de la manière suivante :
Dans la console Anaconda Prompt, rentrer la commande :
conda activate cwatenv
afin d’activer l’environnementPuis rentrer la commande :
spyder
, afin de lancer l’interface SpyderImportant
Lors de la 1re ouverture de Spyder il est nécessaire d’ajouter le dossier contenant geop4th dans le PYTHONPATH (logo python jaune et bleu)
Une fois dans Spyder, Les commandes permettant le formatage des données sont listées dans les sections correspondantes ci-dessous, et commencent généralement par
PAGAIE_interface.formater()
.Afin de pouvoir exécuter ces fonctionnalités, il est nécessaire d’importer au préalable les modules requis :
Une fois ces étapes exécutées il est possible de lancer dans Spyder les commandes
formater()
détaillées ci-dessous.