Project

General

Profile

Wiki

ADAMONT est une méthode de descente d'échelle et d'ajustement de biais de scénarios climatiques régionaux, tels que ceux du projet EUROCORDEX (voir http://euro-cordex.net/), utilisant une méthode de correction quantile-quantile par rapport à un jeu d'observations ou de réanalyse, par exemple la réanalyse SAFRAN-Nivo, et la prise en compte de types de temps. Elle permet d'obtenir des scénarios débiaisés continus au pas de temps horaire pour les variables de température, humidité, vitesse du vent, rayonnement solaire (direct et diffus) et infrarouge, pluie et neige.

Dans le cadre de l'utilisation de couples de modèles EUROCORDEX (différentes combinaisons de GCMs et RCMs), la période traitée va de 1950 à 2100, avec la prise en compte de différents scénarios futurs de forçage radiatif RCPs (RCP 2.6, 4.5 ou 8.5). Pour le moment, 14 simulations historiques, 4 simulations en RCP 2.6, 14 simulations en RCP 4.5 et 14 simulations en RCP 8.5 peuvent être traitées (voir la liste des simulations traitées à ce jour dans le cadre d'EUROCORDEX/SAFRAN-Nivo dans l'onglet Files).

Accès aux scripts

L'accès aux scripts se fait via un système de gestion de versions GIT. Pour des informations détaillées sur le fonctionnement du système GIT, merci de vous référer à la page créée pour le projet SURFEX : http://www.umr-cnrm.fr/surfex/spip.php?rubrique154 (notamment la rubrique 3) Main principles to use GIT for the SURFEX code).

Pour créer votre propre dépôt GIT, il vous faudra donc:
- envoyer votre clé publique ssh à
- dans le dossier de votre choix, taper : git clone ssh:/data/git/ADAMONT.git

Fonctionnement

La méthode est disponible sous forme de différents scripts shell contenant des routines Fortran, avec un script général de configuration et de lancement de la chaîne de traitement. Le fonctionnement et l'évaluation de la méthode ADAMONT sont décrits dans un article publié dans la revue Geoscientific Model Development : https://www.geosci-model-dev.net/10/4257/2017/

Pré-requis pour une utilisation sur les machines du CNRM

L'ensemble de la chaîne ADAMONT tourne actuellement sur la machine sxmosca du CNRM, et les fichiers d'entrées/sorties sont présents sur le système lustre, sous différents chemins repris dans le fichier de configuration tmp_parametres.sh généré automatiquement au lancement du script de lancement 00_lanc_ADAMONT.sh. Certains fichiers, notamment ceux touchant aux régimes de temps des GCMs utilisés ou d'ERA-Interim, sont considérés comme des pré-requis, et sont disponibles dans le répertoire inputs. Cependant, merci de contacter si vous désirez prendre connaissance des scripts spécifiquement utilisés pour obtenir ces fichiers.
Remarque: Les fichiers de sorties peuvent vite s'avérer volumineux. Il est conseillé de les stocker ailleurs que sur le lustre, par exemple sur hendrix.

Script de lancement

Le script de lancement 00_lanc_ADAMONT.sh permet de 1) configurer le traitement à effectuer (RCM/GCM à utiliser, dates de simulation, scénario RCP, etc.), et 2) lancer les différents scripts ADAMONT. Les champs situés dans le cadre "Choix des parametres utilisateur" doivent être définis par l'utilisateur (commenter/dé-commenter les lignes via le signe #):

  • PROJ : nom du projet régional (pour le moment EUROCORDEX)
  • EXPRF=HISTORICAL (par défaut)
  • EXPID* : scénario à utiliser (HISTORICAL, RCP26, RCP45 ou RCP85 dans le cadre d'EUROCORDEX)
  • RCM* : modèle régional à utiliser (choix parmi 7 modèles à l'heure actuelle)
  • GCM* : modèle global à utiliser (choix parmi 6 modèles)
  • REAN : réanalyse utilisée pour l'ajustement (SAFRAN actuellement)
  • DOM : choix du domaine d'étude (alp ou pyr actuellement)

*Attention, dans le cadre de l'utilisation avec EUROCORDEX, tous les RCMs n'ont pas été forcés par tous les GCMs et pour tous les scénarios. Merci de consulter la liste des simulations EUROCORDEX traitées à ce jour dans le cadre d'ADAMONT dans l'onglet Files.

  • RCM_to_dom : yes ou no. Si yes, active les scripts 01_RCM_to_${REAN}_${DOM}.sh qui préparent les fichiers de voisins des RCMs (par ex: EUROCORDEX) pour chaque point de la réanalyse ${REAN} (ou chaque massif dans le cas de SAFRAN-Nivo). Cette opération ne doit être réalisée que la première fois que la méthode ADAMONT est utilisée sur les domaines (alp, pyr ou autre à définir).
  • extra_netcdf_to_bin : yes ou no. Si yes, active les scripts 02 et 03 qui rapatrient les netcdf concernés et les formatent sous forme binaire (script 02_extra_binaires_RCM.sh ou 02_extra_binaires_RCM_ALADIN_CNRM-CM5.sh), puis extraient les variables concernées sur les domaines (alp, pyr ou autre) et les stockent dans outdir (script 03_extra_RCM.sh et si besoin 03bis_extra_RCM_MOHC_2005_RCPs.sh).
  • extra_REANALYSE : yes ou no. Si yes, active les scripts 04 et 05 qui extraient les champs d'intérêt de la réanalyse (par exemple SAFRAN) à partir des fichiers netcdf de type FORCING, et les agrège à un pas de temps journalier. Cette opération ne doit être réalisée que la première fois que la méthode ADAMONT est utilisée sur un domaine (alp, pyr ou autre à définir).
  • les différents dossiers concernés par le traitement ADAMONT sont ensuite listés:
    rcmdir : dossier où se situent les fichiers netcdf d'origine des sorties de RCMs (EUROCORDEX par exemple)
    workdir : dossier de travail dans lequel on lance la chaîne de traitement ADAMONT
    inputdir : dossier où se situent les fichiers d'entrée (coordonnées et régimes de temps des RCM/GCMs et d'ERA-Interim)
    localdir : dossier où sont créés des fichiers locaux (fichiers des coordonnées et des champs de la réanalyse sur le domaine $DOM, fichiers de voisins, jours analogues)
    outdir : dossier où vont se trouver les données de sortie de la méthode ADAMONT (ainsi que la plupart des fichiers binaires intermédiaires).

Le reste du script ne doit en principe pas être modifié.

Le lancement du script 00_lanc_ADAMONT.sh génère automatiquement la création du fichier de paramètres tmp_parametres.sh, qui comprend toutes les informations nécessaires aux différents scripts ADAMONT (scénario et modèles utilisés, années de simulation, période sur laquelle sont calculés les quantiles, domaine et nombre de points associés, longueur des mois selon le calendrier utilisé, etc.). Il n'est pas nécessaire (et même déconseillé) de modifier le fichier tmp_parametres.sh à la main. Après lancement de 00_lanc_ADAMONT.sh, les différents scripts ADAMONT requis sont lancés automatiquement.

Description de chaque script (après lancement)

  • 01_RCM_to_${REAN}_${DOM}.sh : si activé dans 00_lanc_ADAMONT.sh, prépare les fichiers de voisins des RCMs (EUROCORDEX par exemple) pour chaque point de la réanalyse ${REAN} (SAFRAN-Nivo par exemple, i.e. chaque centre de massif SAFRAN et chaque altitude SAFRAN au sein de ce massif). Les plus proches voisins en x,y sont simplement sélectionnés, et les points de grille des RCMs correspondants sont écrits dans localdir/RCM_to_${REAN}_${DOM}.
  • 02_extra_binaires_RCM.sh : si activé dans 00_lanc_ADAMONT.sh, rapatrie les fichiers netcdf du couple RCM/GCM concerné et les formate pour chaque variable et chaque année sous forme de fichiers binaires temporaires dans le répertoire de travail (workdir). 02_extra_binaires_RCM_ALADIN_CNRM-CM5.sh est lancé dans le cadre de l'utilisation avec EUROCORDEX lorsque le couple demandé est CNRM-ALADIN53/CNRM-CERFACS-CNRM-CM5. En effet, les fichiers netcdf sont présents ailleurs sur le lustre (car il s'agit des modèles développés par le CNRM), et la grille utilisée n'est pas identique à la grille EUROCORDEX. Un travail de "re-gridage" est donc effectué dans ce script à l'aide du fichier de correspondance entre les deux grilles présent sous inputdir/RCM/EUROCORDEX/EUR11.nn. L'extraction en binaire dans ce cas-ci peut durer plusieurs heures, il est donc conseillé de lancer le script de lancement avec nohup.
  • 03_extra_RCM.sh : si activé dans 00_lanc_ADAMONT.sh, utilise les fichiers binaires rapatriés dans le répertoire de travail (étape précédente) et les coordonnées des points de grille ou des massifs de la réanalyse utilisée du domaine considéré (générées précédemment sous localdir/REANALYSE/${REAN}/${DOM}) pour extraire les variables concernées (TN = Tmin, TX = Tmax, VV = vitesse du vent, Q2 = humidité spécifique, PR = précipitations totales, ID = infrarouge descendant, SD = solaire descendant) sur le domaine ${DOM} et les stocker dans _outdir. 03bis_extra_RCM_2005_RCPs.sh n'est activé que lorsque EXPID=HISTORICAL, afin de transférer les fichiers binaires de l'année 2005 dans le répertoire des scénarios RCPs futurs (pour permettre le raccord HISTORICAL/RCP en 2005).
  • 04_extra_REANALYSE_dom.sh : si activé dans 00_lanc_ADAMONT.sh, extraie les champs de la reanalyse $REAN sur le domaine $DOM à partir des fichiers netcdf de type FORCING (pas de temps horaire), et les écrit sous forme de fichiers binaires par variable et par année dans localdir/REANALYSE/$REAN/$DOM.
  • 05_h2j_REANALYSE.sh : si activé dans 00_lanc_ADAMONT.sh, agrège les champs de la réanalyse $REAN présents sous localdir/REANALYSE/$REAN/$DOM au pas de temps journalier. Les précipitations totales sont calculées en sommant les précipitations pluvieuses (RR) et neigeuses (SN). Pour l'humidité et le vent, on prend la dernière heure de chaque jour (pour que ce soit comparable à un champ instantané), pour les précipitations et le rayonnement, on prend la moyenne journalière, et pour la température, on prend le minimum et le maximum journalier.
  • 06_quantiles_REANALYSE.sh : calcule pour chaque variable journalière de la réanalyse (TN, TX, VV, RR, SN, PR, Q2, ID, S1, S2), chaque régime de temps (1, 2, 3, 4) et chaque saison (DJF, MAM, JJA, SON) les 99 centiles et les quantiles 0,5% et 99,5% de la distribution de la réanalyse $REAN. Dans le cas où le GCM MOHC-HadGEM2-ES est utilisé, le script 06bis_quantiles_REANALYSE_25ans.sh est également lancé, pour calculer les quantiles de la réanalyse sur une période de 25 ans correspondant à la période de calcul des quantiles pour les RCMs forcés par ce GCM (les régimes de temps de ce GCM n'étant disponibles qu'à partir de 1981).
  • 07_quantiles_RCM.sh : calcule pour chaque variable (TN, TX, VV, Q2, PR, ID, SD), chaque régime de temps (1, 2, 3, 4) et chaque saison (DJF, MAM, JJA, SON) les 99 centiles et les quantiles 0,5% et 99,5% de la distribution historique du RCM utilisé. La période de calcul des quantiles est définie dans tmp_parametres.sh, et correspond à 1974-2005 pour tous les modèles, sauf ceux forcés par le GCM MOHC-HadGEM2-ES pour lesquels les quantiles s'étendent sur 25 ans de 1981 à 2005.
  • 08_correct_RCM.sh : réalise la correction quantile-quantile pour chaque variable (TN, TX, VV, Q2, PR, ID, SD), chaque régime de temps (1, 2, 3, 4) et chaque saison (DJF, MAM, JJA, SON), et pour le scénario considéré (HISTORICAL, RCP26, RCP45 ou RCP85). Pour le rayonnement solaire, on transforme le total (fourni par le RCM) en direct et diffus par cette correction en faisant coïncider chaque quantile du solaire total du RCM avec le quantile direct ou diffus de la réanalyse. L'hypothèse (fausse pour un jour donné, mais vraie à l'échelle climatologique) est que le direct et le diffus sont liés par une relation fonctionnelle qui ne dépend que de l'heure, de la saison et du régime de temps : on ne tient pas compte des variations de la nébulosité. Pour les RCPs, l'année 2005 est traitée séparément, en utilisant les régimes de temps 2005-2006 repris dans les fichiers .mix sous inputdir/RCM/${PROJ}/Regimes/....
  • 09_analog_RCM.sh : sélectionne pour chaque jour RCM corrigé une journée analogue dans la réanalyse (SAFRAN par exemple), sur le domaine considéré, alp (1979-2013), pyr (1980-2011) ou autre à définir, sur les critères suivants:
    - même mois de l'année
    - même régime de temps
    - précipitations totales moyennes sur l'ensemble des massifs du domaine cohérentes entre le jour RCM et le jour de réanalyse (toutes deux > 1mm/jour ou < 1mm/jour)
    - choix de journées analogues de réanalyse consécutives quand c'est possible (pour préserver la continuité temporelle)
    Ce script génère un fichier binaire de type Jours_Ana_JOUR_${RCM}-${GCM}_${EXPID}_${DOM} dans localdir, contenant les informations des journées de réanalyse analogues à chaque jour du RCM.
  • 10_j2h_RCM.sh : désagrège les sorties du RCM corrigé d'un pas de temps journalier à un pas de temps horaire, à l'aide des séries horaires de la réanalyse (SAFRAN par exemple) de chaque journée analogue définie à l'étape précédente. Selon les variables, différentes méthodes de désagrégation horaires sont appliquées:
    - pour la température, on dispose de Tmin en Tmax journalier du RCM. On réalise alors un compromis entre le fait que le min et le max de la série horaire résultante (RCM corrigé horaire) soient les plus proches possibles de Tmin et Tmax (RCM corrigé journalier), et le fait d'éviter un saut de température trop important entre deux journées consécutives lié à l'utilisation de deux dates analogues non consécutives. La minimisation de l'équation résultant de ce compromis est expliquée dans l'article https://www.geosci-model-dev.net/10/4257/2017/).
    - pour les autres variables, on ne dispose pas de valeurs min et max. On calcule alors a*X(h), où X(h) est la série horaire de la journée de réanalyse analogue, de manière à faire coïncider la valeur du RCM corrigé horaire et de X(h) à la dernière heure de chaque jour (humidité et vent) ou en moyenne journalière (précips, rayonnement).
    Le précipitations horaires sont ensuite réparties entre la phase pluie et la phase neige en fonction de la température horaire (seuil de 1°C), puis leurs cumuls journaliers sont calculés pour pouvoir leur ré-appliquer une dernière correction quantile-quantile (étapes suivantes) afin de garder la cohérence entre la phase des précipitations et la température corrigées.
  • 11_quantiles_RCM_Precips.sh, 12_correct_RCM_Precips.sh et 13_j2h_RCM_Precips.sh : mêmes étapes que précédemment, mais uniquement pour les variables pluie (RR) et neige (SN) prises séparément.
  • 14_back_to_nc.sh : permet de produire des fichiers netcdf au même format que celui de SAFRAN, c'est-à-dire annuels (années nivologiques, commençant le 1er août à 6h) et comprenant toutes les variables au pas de temps horaire nécessaires pour faire tourner un modèle d'impact tel que SURFEX/ISBA-Crocus (http://www.umr-cnrm.fr/spip.php?rubrique73).
  • clear_RCM_files.sh et clean.sh : deux scripts de nettoyage du workdir, à ne lancer qu'après avoir vérifié que l'ensemble des fichiers de sorties a bien été créé.

Usages et valorisation de la méthode