Documentation utilisateur d’AtmoSwing¶
Les méthodes d’analogues (MAs) sont des méthodes statistiques de prévision météorologique, qui utilisent des prédicteurs à l’échelle synoptique pour rechercher dans le passé des jours similaires à un jour cible afin de déduire le prédictant d’intérêt, tel que les précipitations journalières. Elles peuvent s’appuyer sur les résultats des modèles de prévision numérique du temps (PNT) dans le contexte des prévisions opérationnelles ou sur les résultats des modèles climatiques dans le contexte des études d’impact du changement climatique. Les MAs requièrent une faible capacité de calcul et ont démontré un potentiel d’application utile dans plusieurs contextes.
AtmoSwing est un logiciel libre écrit en C++ qui met en œuvre les MAs de manière flexible permettant une gestion dynamique de différentes variantes. Il comprend quatre modules : le Forecaster pour les prévisions opérationnelles, le Viewer pour afficher les résultats, le Downscaler pour les études climatiques et l’Optimizer pour établir la relation statistique entre les prédictants et les prédicteurs.
Le Forecaster gère en interne toutes les opérations nécessaires, tels que le téléchargement (si possible) et la lecture des sorties des modèles PNT, ainsi que l’interpolation des grilles. Aucun script externe ou conversion de fichier n’est nécessaire. Le calcul d’une prévision nécessite peu de resources informatiques et peut même être exécuté sur un Raspberry Pi. Il fournit des résultats utiles, comme le montrent plusieurs années de prévision opérationnelle des précipitations dans les Alpes suisses.
Le Viewer affiche les prévisions dans un environnement SIG interactif avec plusieurs niveaux de synthèse et de détail. Il offre un aperçu rapide des situations critiques potentielles dans les jours à venir, ainsi que la possibilité pour l’utilisateur de se plonger dans les détails de la distribution des prédicteurs et des critères prévus.
Le Downscaler permet d’utiliser les MAs dans un contexte climatique, soit pour la reconstruction du climat, soit pour des études d’impact du changement climatique. Lorsqu’ils sont utilisés pour des études sur le climat futur, il est nécessaire de prêter une attention particulière aux prédicteurs sélectionnés afin qu’ils contiennent le signal du changement climatique.
L’Optimizer met en œuvre différentes techniques d’optimisation, telles qu’une approche séquentielle semi-automatique, des simulations de Monte Carlo et une technique d’optimisation globale utilisant des algorithmes génétiques. L’établissement d’une relation statistique entre les prédicteurs et les prédictants est un calcul intensif car il nécessite de nombreuses évaluations sur plusieurs décennies. À cette fin, le code a été fortement optimisé, est parallélisé (utilisation de plusieurs threads) et s’adapte bien aux grappes de serveurs (clusters) CPU ou GPU. Cette procédure n’est nécessaire que pour établir la relation statistique, qui peut ensuite être utilisée pour la prévision ou la descente d’échelle (downscaling) à un faible coût de calcul.
Article de référence : Horton, P.: AtmoSwing: Analog Technique Model for Statistical Weather forecastING and downscalING (v2.1.0), Geosci. Model Dev., 12, 2915-2940, https://doi.org/10.5194/gmd-12-2915-2019, 2019.
Démarrer¶
Cette section contient la documentation sur la mise en route d’AtmoSwing. Ce document peut également être téléchargé au format pdf ou epub en utilisant le menu en bas à gauche.
Cette section est divisée en plusieurs rubriques :
Installation¶
Les exécutables peuvent être téléchargés sur la page AtmoSwing release. Deux versions sont disponibles :
La version ordinateur de bureau (desktop) : contient les quatre outils avec une interface utilisateur graphique (GUI). Cette version est adaptée aux PC de bureau.
La version serveur (server) : contient le Forecaster, le Downscaler, et l’Optimizer sans GUI. Le Viewer n’est pas inclus. Cette version est adaptée à une utilisation sur des serveurs via une interface de ligne de commande.
Windows¶
Le fichier .msi est un programme d’installation Windows, et le fichier .zip contient l’exécutable sans programme d’installation.
Linux¶
AtmoSwing doit être compilé sous Linux. Des instructions sont fournies sur le wiki d’AtmoSwing.
Quelques méthodes des analogues¶
Différentes variantes de la méthode des analogues sont présentées ici. Ces méthodes ont des degrés de complexité variables et comprennent un ou plusieurs niveaux d’analogie avec des variables de différentes natures. Le contenu suivant provient de Horton and Brönnimann [4].
La première méthode développée avec les reanalyses NCEP/NCAR 1 par Bontron [1] est basée sur l’analogie de la circulation synoptique sur la hauteur du géopotentiel à deux niveaux de pression (Z1000 à +12 h et Z500 à +24 h) et est ici nommée 2Z.
La méthode 2Z comprend les étapes suivantes : tout d’abord, pour tenir compte des effets saisonniers, des dates candidates sont extraites de la période d’archive dans les quatre mois centrés autour de la date cible, pour chaque année de l’archive (PC : présélection sur une base calendaire dans le tableau ci-dessous). Ensuite, l’analogie de la circulation atmosphérique d’une date cible avec chaque jour de l’ensemble de présélection (excluant +-30 jours autour de la date cible et une éventuelle période de validation) est évaluée en calculant le critère S1 [2, 8], qui est une comparaison de gradients, sur une fenêtre spatiale définie (le domaine sur lequel les prédicteurs sont comparés). Le critère S1 est calculé pour chaque niveau, puis moyenné.
où \(\Delta \hat{z}_{i}\) est la différence de hauteur géopotentielle entre la i-ième paire de points adjacents de données maillées décrivant la situation cible, et \(\Delta z_{i}\) est la différence de hauteur géopotentielle observée correspondante pour la situation candidate. Plus les valeurs S1 sont petites, plus les champs de pression sont similaires.
Les N1 dates, où N1 est un paramètre à calibrer, avec les valeurs S1 les plus faibles, sont considérées comme analogues à la date cible. Ensuite, les valeurs de précipitations quotidiennes observées pour les N1 dates sélectionnées fournissent la distribution conditionnelle empirique, considérée comme la prédiction probabiliste pour la date cible.
Une autre méthode s’appuyant uniquement sur la circulation atmosphérique est basée sur la hauteur géopotentielle sur quatre combinaisons de niveaux de pression et de fenêtres temporelles (4Z, tableau ci-dessous) à des niveaux qui ont été automatiquement sélectionnés par des algorithmes génétiques pour le bassin versant du Rhône supérieur en Suisse [6]. La méthode 4Z s’est avérée plus performante que la méthode 2Z en exploitant davantage d’informations provenant de la hauteur géopotentielle et en tirant parti de degrés de liberté supplémentaires, tels que différentes fenêtres spatiales entre les niveaux de pression et l’introduction d’une pondération entre eux. Cependant, la méthode 4Z présentée ici est une simplification des résultats de Horton et al. [6], et seule la sélection des niveaux de pression optimaux et des fenêtres temporelles est présentée (Z1000 à +06 h et +30 h, Z700 à +24 h, et Z500 à +12 h).
Les autres méthodes considérées ci-après ajoutent un deuxième ou plusieurs niveaux d’analogie après l’analogie de la circulation atmosphérique, de manière progressive.
La méthode suivante ajoute un deuxième niveau d’analogie avec les variables d’humidité (méthode 2Z-2MI, tableau ci-dessous), en utilisant un indice d’humidité (MI), qui est le produit de l’eau précipitable totale (TPW) et de l’humidité relative à 850 hPa (RH850) [1]. Lors de l’ajout d’un deuxième niveau d’analogie, les dates N2 sont sous-échantillonnées à partir des analogues N1 de la circulation atmosphérique, afin d’obtenir un plus petit nombre de situations analogiques. Lorsque ce deuxième niveau d’analogie est ajouté, un plus grand nombre d’analogues N1 est conservé au premier niveau.
De manière similaire à la méthode 4Z, la méthode 4Z-2MI est une simplification des méthodes optimisées par algorithmes génétiques de Horton et al. [6]. Elle consiste en un premier niveau d’analogie sur la hauteur du géopotentiel à quatre niveaux de pression (Z1000 à +30 h, Z850 à +12 h, Z700 à +24 h et Z400 à +12 h), différents de 4Z, suivi de l’indice d’humidité (MI) à deux niveaux de pression (MI700 à +24 h et MI600 à +12 h).
Pour contraindre l’effet saisonnier, Ben Daoud et al. [9] a remplacé la présélection calendaire (+- 60 jours autour de la date cible) par une présélection basée sur la similarité des températures de l’air (T925 à +36 h et T600 à +12 h, au point de grille le plus proche). Cela permet une sélection plus dynamique de situations similaires en termes de masses d’air, car le signal saisonnier est également présent dans les données de température. Le mélange indésirable de situations printanières et automnales est discuté dans Caillouet et al. [3]. Le nombre de dates présélectionnées (N0) est équivalent au nombre de jours sélectionnés avec l’approche calendaire et dépend donc de la taille des archives. Dans cette méthode, nommée PT-2Z-4MI, l’analogie de la circulation atmosphérique est la même que dans la méthode 2Z, mais l’analogie de l’humidité est différente (MI925 et MI700 à +12 h et +24 h).
Par la suite, Ben Daoud et al. [9] a introduit un niveau supplémentaire d’analogie entre la circulation et l’analogie de l’humidité (PT-2Z-4W-4MI, tableau ci-dessous), basé sur la vitesse verticale à 850 hPa (W850). Cette MA, appelée « SANDHY » pour Stepwise Analogue Downscaling method for Hydrology [3, 9], a été principalement développée pour des bassins de grande taille et relativement plats en France (Saône, Seine). Elle a également été appliquée à l’ensemble du territoire français par Radanovics et al. [7] avec ERA-40 et par Caillouet et al. [3] avec 20CR-V2b.
Méthode |
P0 |
L1 |
L2 |
L3 |
---|---|---|---|---|
2Z |
PC |
Z1000@12h
Z500@24h
|
||
4Z |
PC |
Z1000@06h
Z1000@30h
Z700@24h
Z500@12h
|
||
2Z-2MI |
PC |
Z1000@12h
Z500@24h
|
MI850@12+24h |
|
4Z-2MI |
PC |
Z1000@30h
Z850@12h
Z700@24h
Z400@12h
|
MI700@24h
MI600@12h
|
|
PT-2Z-4MI |
T925@36h
T600@12h
|
Z1000@12h
Z500@24h
|
MI925@12+24h
MI700@12+24h
|
|
PT-2Z-4W-4MI |
T925@36h
T600@12h
|
Z1000@12h
Z500@24h
|
W850@06-24h
MI700@12+24h
|
MI925@12+24h |
Utilisation d’AtmoSwing¶
AtmoSwing peut être utilisé à différentes fins :
en prévision opérationnelle (le Forecaster),
pour réduire l’échelle des données climatiques (le Downscaler),
pour identifier les prédicteurs d’un certain prédictant (l’Optimizer).
Pour toute utilisation d’AtmoSwing, des données doivent être préparées et la (les) méthode(s) doit (doivent) être étalonnée(s). Les étapes suivantes sont généralement nécessaires :
Obtenir un jeu de données pour l’archive du prédicteur. Il s’agit souvent d’un jeu de réanalyses. L’impact du choix du jeu de données est discuté dans Horton and Brönnimann [4].
Obtenir un jeu de données pour la situation cible (sorties NWP pour les prévisions opérationnelles ou sorties GCM/RCM pour la descente d’échelle).
Calibrer/optimiser la méthode à l’aide de l’Optimizer.
Les jeux de données, les variables prédictives, le nombre de niveaux d’analogie, les fenêtres spatiales et la plupart des autres paramètres utilisés pour la méthode des analogues sont définis dans les fichiers de paramètres <parameters-file>.
Fichier de paramètres¶
Les fichiers de paramètres sont des éléments essentiels d’AtmoSwing car ils définissent la structure de la méthode des analogues à utiliser. C’est là que l’on définit les jeux de données, les variables prédictives, le nombre de niveaux d’analogie, les fenêtres spatiales, etc. Certains éléments varient entre le Forecaster, l’Optimizer, et le Downscaler, et donc le module cible doit être spécifié dans la balise racine (ex : <atmoswing version="1.0" target="optimizer">
).
La structure de base commune est illustrée ci-dessous pour la méthode 2Z-2MI (premier niveau d’analogie sur la hauteur géopotentielle et deuxième sur l’indice d’humidité) et expliquée plus loin.
<?xml version="1.0" encoding="UTF-8"?>
<atmoswing version="1.0" target="optimizer">
<description>
<method_id>2Z-2MI</method_id>
<method_id_display>Classic humidity</method_id_display>
<specific_tag>CH</specific_tag>
<specific_tag_display>all stations</specific_tag_display>
<description>Classic analogy on the atmospheric circulation and the moisture</description>
</description>
<time_properties>
<archive_period>
<start>01.01.1981</start>
<end>31.12.2010</end>
</archive_period>
<time_step>24</time_step>
<time_array_target>
<time_array>simple</time_array>
</time_array_target>
<time_array_analogs>
<time_array>days_interval</time_array>
<interval_days>60</interval_days>
<exclude_days>30</exclude_days>
</time_array_analogs>
</time_properties>
<analog_dates>
<analogs_number>75</analogs_number>
<predictor>
<preload>1</preload>
<dataset_id>ECMWF_ERA_interim</dataset_id>
<data_id>press/hgt</data_id>
<level>1000</level>
<time>12</time>
<spatial_window>
<x_min>-2.25</x_min>
<x_points_nb>22</x_points_nb>
<x_step>0.75</x_step>
<y_min>40.5</y_min>
<y_points_nb>11</y_points_nb>
<y_step>0.75</y_step>
</spatial_window>
<criteria>S1</criteria>
<weight>0.5</weight>
</predictor>
<predictor>
<preload>1</preload>
<dataset_id>ECMWF_ERA_interim</dataset_id>
<data_id>press/hgt</data_id>
<level>500</level>
<time>24</time>
<spatial_window>
<x_min>-2.25</x_min>
<x_points_nb>22</x_points_nb>
<x_step>0.75</x_step>
<y_min>40.5</y_min>
<y_points_nb>11</y_points_nb>
<y_step>0.75</y_step>
</spatial_window>
<criteria>S1</criteria>
<weight>0.5</weight>
</predictor>
</analog_dates>
<analog_dates>
<analogs_number>25</analogs_number>
<predictor>
<preload>1</preload>
<preprocessing>
<preprocessing_method>HumidityIndex</preprocessing_method>
<preprocessing_data>
<dataset_id>ECMWF_ERA_interim</dataset_id>
<data_id>press/rh</data_id>
<level>850</level>
<time>12</time>
</preprocessing_data>
<preprocessing_data>
<dataset_id>ECMWF_ERA_interim</dataset_id>
<data_id>surf/tcw</data_id>
<level>0</level>
<time>12</time>
</preprocessing_data>
</preprocessing>
<spatial_window>
<x_min>6</x_min>
<x_points_nb>1</x_points_nb>
<x_step>0.75</x_step>
<y_min>45.75</y_min>
<y_points_nb>1</y_points_nb>
<y_step>0.75</y_step>
</spatial_window>
<criteria>RMSE</criteria>
<weight>0.5</weight>
</predictor>
<predictor>
<preload>1</preload>
<preprocessing>
<preprocessing_method>HumidityIndex</preprocessing_method>
<preprocessing_data>
<dataset_id>ECMWF_ERA_interim</dataset_id>
<data_id>press/rh</data_id>
<level>850</level>
<time>24</time>
</preprocessing_data>
<preprocessing_data>
<dataset_id>ECMWF_ERA_interim</dataset_id>
<data_id>surf/tcw</data_id>
<level>0</level>
<time>24</time>
</preprocessing_data>
</preprocessing>
<spatial_window>
<x_min>6</x_min>
<x_points_nb>1</x_points_nb>
<x_step>0.75</x_step>
<y_min>45.75</y_min>
<y_points_nb>1</y_points_nb>
<y_step>0.75</y_step>
</spatial_window>
<criteria>RMSE</criteria>
<weight>0.5</weight>
</predictor>
</analog_dates>
<analog_values>
<predictand>
<station_id>1,2,3,4,5</station_id>
</predictand>
</analog_values>
</atmoswing>
Contenu “description”¶
Le contenu de <description>
est principalement pertinent pour le Forecaster, où les résultats sont agrégés par méthodes pour différentes régions.
<method_id>
: Un identifiant donné à la méthode (ex : 2Z)<method_id_display>
: Le nom de la méthode (ex : Classic circulation)<specific_tag>
: Une étiquette permettant d’identifier les paramètres spécifiques. Il s’agit généralement du nom de la région pour laquelle la méthode a été calibrée.<specific_tag_display>
: Un texte plus descriptif pour le<specific_tag>
fourni ci-dessus.<description>
: Une description supplémentaire possible.
Exemple :
<description>
<method_id>2Z-2MI</method_id>
<method_id_display>Classic humidity</method_id_display>
<specific_tag>CH</specific_tag>
<specific_tag_display>all stations</specific_tag_display>
<description>Classic analogy on the atmospheric circulation and the moisture</description>
</description>
Contenu “time_properties”¶
Le contenu de <time_properties>
définit la période de l’archivage et d’autres propriétés temporelles.
Élément “archive_period”¶
Le contenu de <archive_period>
définit la période de l’archive pour laquelle les situations analogues seront extraites. Deux options sont possibles :
En fournissant les dates exactes :
<start>
: Début de la période de l’archive (ex : 01.01.1981)<end>
: Fin de la période de l’archive (ex : 31.12.2010)
Il est également possible de ne fournir que les années :
<start_year>
: Début de la période de l’archive (ex : 1962)<end_year>
: Fin de la période de l’archive (ex : 2008)
Élément “time_step”¶
Le <time_step>
est le pas de temps en heures du prédictant (ex : 24), et donc de la méthode.
Élément « time_array_target »¶
Le contenu de <time_array_target>
définit les propriétés temporelles de la cible.
<time_array>
: Type de sélection temporelle.
Le type peut être l’un des suivants :
simple
: sélection temporelle complète standardDJF
: Hiver (déc.-fév.)MAM
: Printemps (mars-mai)JJA
: Été (juin-août)SON
: Automne (sept-nov)predictand_thresholds
: Sélection des jours sur la base d’un seuil du prédictant (ex : jours avec plus de x mm de précipitations)Month_to_Month
: Sélection flexible d’une période d’un mois à l’autre (ex : April_to_July, January_to_September, September_to_March)
Dans le cas d’une sélection basée sur un seuil du prédictant (predictand_thresholds
), les éléments suivants doivent être spécifiés :
<predictand_serie_name>
: sélection des données brutes (data_raw
) ou normalisées (data_normalized
)<predictand_min_threshold>
: Valeur minimale du seuil<predictand_max_threshold>
: Valeur maximale du seuil
Élément “time_array_analogs”¶
Le contenu de <time_array_analogs>
définit les propriétés temporelles de la sélection des analogues. Il est généralement défini comme un intervalle de +-60 jours autour de la date cible (quatre mois centrés autour de la date cible). En calibration, 30 jours autour de la date cible sont exclus pour la même année que la date cible.
<time_array>
: Type de sélection temporelle.<interval_days>
: Nombre de jours à sélectionner autour de la date cible pour chaque année lors de l’utilisation dedays_interval
. Habituellement : 60<exclude_days>
: Nombre de jours à exclure autour de la date cible pour la même année (pour la phase de calibration). Il doit être fourni quel que soit le type de sélection temporelle. En général : 30
Le type peut être l’un des suivants :
days_interval
: la sélection standard de +-x jours autour de la date cible.simple
: sélection temporelle complèteDJF
: Hiver (déc.-fév.)MAM
: Printemps (mars-mai)JJA
: Été (juin-août)SON
: Automne (sept-nov)Month_to_Month
: Sélection flexible d’une période d’un mois à l’autre (ex : April_to_July, January_to_September, September_to_March)
Cependant, lorsque l’on sélectionne une saison ou une période spécifique pour le type de selection temporelle des analogues, la même option doit être sélectionnée pour l’élément “time_array_target”.
Exemple :
<time_properties>
<archive_period>
<start>01.01.1981</start>
<end>31.12.2010</end>
</archive_period>
<time_step>24</time_step>
<time_array_target>
<time_array>simple</time_array>
</time_array_target>
<time_array_analogs>
<time_array>days_interval</time_array>
<interval_days>60</interval_days>
<exclude_days>30</exclude_days>
</time_array_analogs>
</time_properties>
Autre exemple d’utilisation d’une période spécifique :
<time_array_target>
<time_array>April_to_September</time_array>
</time_array_target>
<time_array_analogs>
<time_array>April_to_September</time_array>
<exclude_days>30</exclude_days>
</time_array_analogs>
Contenu “analog_dates”¶
Le contenu de <analog_dates>
définit l’analogie pour un niveau d’analogie donné. Plusieurs niveaux d’analogie peuvent être définis successivement en ajoutant des blocs <analog_dates>
lles uns après les autres. Chaque nouveau niveau (bloc) sera alors sous-échantillonné à partir du niveau précédent.
<analog_dates>
...
</analog_dates>
<analog_dates>
...
</analog_dates>
Élément “analogs_number”¶
La balise <analogs_number>
définit le nombre d’analogues à sélectionner pour le niveau d’analogie donné.
Élément “predictor”¶
L’élément <predictor>
fournit des informations sur le prédicteur, la fenêtre spatiale et les critères à utiliser. Plusieurs prédicteurs peuvent être utilisés ensemble dans un niveau d’analogie et sont spécifiés en ajoutant des blocs <predictor>
les uns après les autres.
Exemple :
<predictor>
<preload>1</preload>
<dataset_id>ECMWF_ERA_interim</dataset_id>
<data_id>press/hgt</data_id>
<level>1000</level>
<time>12</time>
<spatial_window>
<x_min>-2.25</x_min>
<x_points_nb>22</x_points_nb>
<x_step>0.75</x_step>
<y_min>40.5</y_min>
<y_points_nb>11</y_points_nb>
<y_step>0.75</y_step>
</spatial_window>
<criteria>S1</criteria>
<weight>0.5</weight>
</predictor>
<predictor>
<preload>1</preload>
<dataset_id>ECMWF_ERA_interim</dataset_id>
<data_id>press/hgt</data_id>
<level>500</level>
<time>24</time>
<spatial_window>
<x_min>-2.25</x_min>
<x_points_nb>22</x_points_nb>
<x_step>0.75</x_step>
<y_min>40.5</y_min>
<y_points_nb>11</y_points_nb>
<y_step>0.75</y_step>
</spatial_window>
<criteria>S1</criteria>
<weight>0.5</weight>
</predictor>
L’élément <predictor>
doit définir :
<preload>
: Définit si les données doivent être chargées en mémoire ou non (0/1 ; optionnel)<dataset_id>
: Définit le jeu de données à utiliser (voir la liste des réanalyses)<data_id>
: Définit la variable à utiliser (voir la liste des variables)<level>
: Sélection du niveau du prédicteur (ex : 500 pour 500 hPa ou 0 pour la surface)<time>
: Sélection de l’instant du prédicteur (ex : 12 pour 12h UTC)<members>
: Nombre de membres à sélectionner (facultatif ; uniquement pour les ensembles de données)<criteria>
: Critères à utiliser (ex : S1 ; voir la liste des critères)<weight>
: Poids à donner au prédicteur lors le la moyenne des différentes valeurs de critères des différents prédicteurs d’un niveau d’analogie (ex : 0.6). Facultatif : s’il n’est pas fourni, le même poids est donné à tous les prédicteurs.<spatial_window>
: La fenêtre spatiale sur laquelle la variable prédictive est comparée au moyen du critère. La fenêtre est définie par ses coordonnées X (<x_min>
) et Y (<y_min>
) minimales, le nombre de points dans la direction des valeurs plus élevées (<x_points_nb>
et<y_points_nb>
) et la résolution souhaitée (<x_step>
et<y_step>
).
Lors de l’utilisation d’un prédicteur élaboré, les données doivent passer par une routine de prétraitement. Dans ce cas, la structure est un peu différente et peut ressembler à ceci (plusieurs prédicteurs peuvent également être définis les uns après les autres) :
<predictor>
<preload>1</preload>
<preprocessing>
<preprocessing_method>HumidityIndex</preprocessing_method>
<preprocessing_data>
<dataset_id>ECMWF_ERA_interim</dataset_id>
<data_id>press/rh</data_id>
<level>850</level>
<time>24</time>
</preprocessing_data>
<preprocessing_data>
<dataset_id>ECMWF_ERA_interim</dataset_id>
<data_id>surf/tcw</data_id>
<level>0</level>
<time>24</time>
</preprocessing_data>
</preprocessing>
<spatial_window>
<x_min>6</x_min>
<x_points_nb>1</x_points_nb>
<x_step>0.75</x_step>
<y_min>45.75</y_min>
<y_points_nb>1</y_points_nb>
<y_step>0.75</y_step>
</spatial_window>
<criteria>RMSE</criteria>
<weight>0.5</weight>
</predictor>
Dans ce cas, il y a un nouveau bloc <preprocessing>
contenant :
<preprocessing_method>
: La méthode de preprocessing à utiliser.<preprocessing_data>
: Les données prédicteurs à prétraiter définies par<dataset_id>
,<data_id>
,<level>
, et<time>
.Les autres paramètres
<spatial_window>
,<criteria>
et<weight>
sont communs aux prédicteurs prétraités.
Contenu “analog_values”¶
Élément “predictand”¶
Spécification de la série temporelle du prédictant cible :
<station_id>
: ID de la station/région ou liste d’ID de stations/régions (séparées par des virgules)
Exemple :
<analog_values>
<predictand>
<station_id>1,2,3,4,5</station_id>
</predictand>
</analog_values>
Données¶
Cette section décrit les données nécessaires à AtmoSwing. Elle est divisée en plusieurs rubriques :
La base de données des prédictants¶
Les données relatives aux prédictants (par exemple, les précipitations) doivent être préparées pour être utilisées dans AtmoSwing. Un outil fourni avec AtmoSwing permet de générer la « base de données ». La génération de la base de données consiste à extraire les données des fichiers texte et à les combiner dans un fichier NetCDF.
L’interface de génération de la base de données des précipitations est accessible par le menu « Tools / Build predictand DB » à partir de n’importe quel module d’AtmoSwing.

La première étape consiste à choisir le type de base de données à générer. Les options sont les suivantes :
- Paramètre du prédictant :
Précipitations
Température
Foudre
Other (Autre)
- Agrégation spatiale :
Station
Groupment (Groupement)
Catchment (Bassin versant)
Région
Le fichier résultant contiendra les données brutes du prédictant, mais peut également contenir des données transformées en fonction de la variable du prédictant (voir la section Données transformées).
Ensuite, il faut fournir quelques chemins d’accès :
Le catalogue des prédictants : un catalogue (fichier xml) est nécessaire pour fournir des métadonnées sur les différentes séries temporelles.
Le répertoire des données du prédictant : le répertoire contenant les fichiers originaux du prédictant.
Le répertoire de description des modèles de fichiers : le répertoire contenant les fichiers définissant la structure des fichiers contenant les series temporelles.
Le répertoire de destination : où le fichier résultant sera enregistré.
Après exécution, un fichier NetCDF contenant toutes les données nécessaires au logiciel est créé dans le répertoire choisi. Ce fichier comprend les propriétés des stations/régions et les séries temporelles.
Données transformées¶
Outre les données brutes du prédictant, le fichier NetCDF résultant peut également contenir des données transformées. Les options disponibles dépendent de la variable du prédictant. Il est important de noter que ces données normalisées seront utilisées pour l’étalonnage de la méthode, mais que les données brutes sont utilisées dans le Forecaster et le Downscaler.
Précipitations¶
Lors du traitement des données, des ajustements de Gumbel sont automatiquement effectués pour calculer les valeurs de précipitations correspondant aux différentes périodes de retour. Les transformations possibles sont alors :
Normalisation de la quantité de précipitations par une valeur correspondant à une période de retour choisie (souvent 10 ans)
Une transformation par la racine carrée des quantités de précipitations normalisées (voir Bontron [1])
Foudre¶
Les données relatives aux éclairs peuvent être transformées en utilisant : log10( N + 1 )
Catalogue des prédictants¶
Le catalogue du prédictant fournit des métadonnées sur les séries temporelles du prédictant. Il n’est nécessaire que pour créer la base de données du prédictant et n’est pas utilisé par la suite. Il se compose d’un fichier xml tel que :
<?xml version="1.0" encoding="UTF-8" ?>
<atmoswing version="1.0">
<dataset>
<id>MeteoSwiss-Switzerland</id>
<name>MeteoSwiss daily rainfall measurements for Switzerland</name>
<description>Daily precipitation measurements for Switzerland</description>
<parameter>Precipitation</parameter>
<unit>mm</unit>
<temporal_resolution>Daily</temporal_resolution>
<spatial_aggregation>Station</spatial_aggregation>
<time_zone>0</time_zone>
<start note="first value of all stations">01/01/1864</start>
<end note="last value of all stations">31/12/2015</end>
<first_time_step>0</first_time_step>
<nan>-</nan>
<coordinate_system>EPSG:21781</coordinate_system>
<stations>
<station>
<id>1</id>
<name>Aarberg</name>
<official_id>ABE</official_id>
<x_coordinate>588051</x_coordinate>
<y_coordinate>209518</y_coordinate>
<height>493</height>
<file_name>ABE_rre150d0_data.txt</file_name>
<file_pattern>MeteoSwiss_IDAweb_bulletin</file_pattern>
<start>01/01/1900</start>
<end>31/12/2015</end>
</station>
<station>
<id>2</id>
<name>L’Abergement</name>
<official_id>ABG</official_id>
<x_coordinate>527540</x_coordinate>
<y_coordinate>178770</y_coordinate>
<height>645</height>
<file_name>ABG_rre150d0_data.txt</file_name>
<file_pattern>MeteoSwiss_IDAweb_bulletin</file_pattern>
<start>01/01/1961</start>
<end>31/12/2015</end>
</station>
...
<station>
<id>301</id>
<name>Zweisimmen</name>
<official_id>ZWE</official_id>
<x_coordinate>595870</x_coordinate>
<y_coordinate>155480</y_coordinate>
<height>1015</height>
<file_name>ZWE_rre150d0_data.txt</file_name>
<file_pattern>MeteoSwiss_IDAweb_bulletin</file_pattern>
<start>01/01/1901</start>
<end>31/12/2015</end>
</station>
</stations>
</dataset>
</atmoswing>
Le jeu de données est décrit par les données suivantes :
<id>
: nom donné au jeu de données (court)<name>
: le nom complet du jeu de données<description>
: description supplémentaire (facultative)<parameter>
: le paramètre mesuré (voir ci-dessus ; ex : Precipitation)<unit>
: l’unité de mesure (ex : mm)<temporal_resolution>
: la résolution temporelle (voir ci-dessus ; ex : Daily)<spatial_aggregation>
: l’agrégation spatiale (voir ci-dessus ; ex : Station)<time_zone>
: fuseau horaire de la mesure (ex : 0 pour UTC)<start>
: premier pas de temps de toutes les stations JJ/MM/AAAA (ex : 01/01/1864)<end>
: dernier pas de temps de toutes les stations JJ/MM/AAAA (ex : 31/12/2015)<first_time_step>
: premier pas de temps (ex : 0)<nan>
: représentation des valeurs de nan<coordinate_system>
: le code EPSG du système de coordonnées (ex : EPSG:21781)
Ensuite, chaque série temporelle (appelée ici « station », même si elle ne représente pas une station) doit être détaillée sous une étiquette <station>
dans la liste <stations>
. Pour chaque station, les informations suivantes peuvent/doivent être fournies :
<id>
: un identifiant unique (entier) pour identifier la station dans AtmoSwing (numéro unique pour le catalogue considéré)<name>
: le nom de la station<official_id>
: un éventuel identifiant officiel (facultatif)<x_coordinate>
: la coordonnée X (dans le système de coordonnées défini pour le jeu de données)<y_coordinate>
: la coordonnée Y (dans le système de coordonnées défini pour le jeu de données)<height>
: la hauteur de la station (facultatif)<file_name>
: le nom du fichier contenant les données originales<file_pattern>
: le modèle décrivant la structure du fichier de données<start>
: début de la série temporelle JJ/MM/AAAA<end>
: fin de la série temporelle JJ/MM/AAAA
Structure du fichier des prédictants¶
Il a été choisi de ne pas forcer les utilisateurs à transformer leurs données dans un format spécifique, mais de les laisser décrire la structure des fichiers. Cela doit être fait en utilisant des fichiers décrivant la structure de la série temporelle originale. Le fichier de structure définit comment lire les fichiers de données et est décrit dans des fichiers texte. Une restriction est toutefois imposée : un fichier de données ne doit contenir qu’une seule série temporelle (une seule station), ou les fichiers de structure doivent être définis pour lire une colonne spécifique.
Les fichiers peuvent être structurés (<structure_type>
) selon deux types courants :
Délimité par des tabulations (
tabsdelimited
)Avec une largeur constante (
constantwidth
)
Une option (<parsetime>
) permet de lire les entrées de date et d’heure ou de les ignorer. La lecture de ces informations permet de vérifier automatiquement la cohérence des dates entre ce que le logiciel pense lire et ce qu’il lit réellement. Il est donc recommandé d’activer cette option (<parse_time>1</parse_time>
).
Plusieurs fichiers sont installés avec AtmoSwing et peuvent être trouvés dans le répertoire “data/file_patterns”, ou en ligne dans le dépôt.
Exemple de type “délimité par des tabulations”¶
Ce type définit directement des fichiers structurés, éventuellement avec des entrées de date (année, mois, jour) et des données séparées par des tabulations (voir l’exemple ci-dessous). Les fichiers contiennent exactement deux lignes d’en-tête :
Timeseries processed by XY for the YZ project.
average from station(s) : 8080 8010
1961 1 1 6.6
1961 1 2 2.6
1961 1 3 21.5
1961 1 4 4.5
1961 1 5 0.0
1961 1 6 5.8
1961 1 7 0.0
1961 1 8 3.4
1961 1 9 0.0
1961 1 10 1.5
La structure décrivant ces fichiers de données est la suivante :
<?xml version="1.0" encoding="UTF-8" ?>
<atmoswing version="1.0">
<pattern id="Basic_daily" name="Basic daily file structure with tabs">
<structure_type>tabs_delimited</structure_type>
<header_lines>2</header_lines>
<parse_time>1</parse_time>
<time>
<year column="1"/>
<month column="2"/>
<day column="3"/>
</time>
<data>
<value column="4"/>
</data>
</pattern>
</atmoswing>
Exemple de type “largeur constante”¶
Les fichiers du prédictant sont ici structurés par des colonnes de largeur constante.
...
...
stn time rre150d0
ABG 19610101 4.3
ABG 19610102 10.2
ABG 19610103 14.1
ABG 19610104 2.4
ABG 19610105 2.6
ABG 19610106 3.7
ABG 19610107 0.0
ABG 19610108 6.5
ABG 19610109 0.0
ABG 19610110 10.7
La structure décrivant ces fichiers de données est la suivante :
<?xml version="1.0" encoding="UTF-8" ?>
<atmoswing version="1.0">
<pattern id="MeteoSwiss_IDAweb_bulletin" name="MeteoSwiss data pattern from IDAweb">
<structure_type>constant_width</structure_type>
<header_lines>3</header_lines>
<parse_time>1</parse_time>
<time>
<year char_start="8" char_end="11"/>
<month char_start="12" char_end="13"/>
<day char_start="14" char_end="15"/>
</time>
<data>
<value char_start="25" char_end="30"/>
</data>
</pattern>
</atmoswing>
Réanalyses¶
Une description des différentes réanalyses et l’évaluation de l’impact de la sélection des jeux de données sont présentées dans Horton and Brönnimann [4]. AtmoSwing peut lire les réanalyses suivantes (avec l’identifiant correspondant à utiliser) :
- NCEP/NCAR Reanalysis 1:
NCEP_R1
Utiliser les noms de fichiers originaux (fichiers annuels)
- NCEP/NCAR Reanalysis 1:
- NCEP/DOE Reanalysis 1:
NCEP_R2
Utiliser les noms de fichiers originaux (fichiers annuels)
- NCEP/DOE Reanalysis 1:
- NCEP CFSR , fichiers Grib originaux :
NCEP_CFSR
Utilisation des noms de fichiers et les structures de répertoires d’origine
- NCEP CFSR , fichiers Grib originaux :
- NCEP CFSR subset du NCAR/UCAR sous la forme de fichiers NetCDF :
NCEP_CFSR_subset
Utiliser les noms de fichiers originaux (fichiers annuels)
- NCEP CFSR subset du NCAR/UCAR sous la forme de fichiers NetCDF :
- ECMWF ERA5 :
ECMWF_ERA5
Utilisation du nom de la variable originale dans le nom du fichier (ex : z pour le géopotentiel)
Peut être structuré comme un fichier unique (ex : z.nc)
Peut être structuré comme des fichiers annuels (ex : z.1998.nc)
Peut être structuré différemment, mais doivent être isolés dans un répertoire.
- ECMWF ERA5 :
- ECMWF ERA-interim :
ECMWF_ERA_interim
Utilisation du nom de la variable originale dans le nom du fichier (ex : z pour le géopotentiel)
Peut être structuré comme un fichier unique (ex : z.nc)
Peut être structuré comme des fichiers annuels (ex : z.1998.nc)
Peut être structuré différemment, mais doivent être isolés dans un répertoire.
- ECMWF ERA-interim :
- ECMWF ERA 20th Century :
ECMWF_ERA_20C
Il doit y avoir 1 fichier par variable avec le nom de la variable originale dans le nom du fichier (ex : z.nc)
- ECMWF ERA 20th Century :
- ECMWF Coupled ERA 20th Century :
ECMWF_CERA_20C
Il doit s’agir de fichiers annuels avec le nom de la variable originale dans le nom du fichier (ex : z.1998.nc)
- ECMWF Coupled ERA 20th Century :
- NASA MERRA-2 (Modern-Era Retrospective analysis for Research and Applications, Version 2) :
NASA_MERRA_2
Utilisation des noms de fichiers et les structures de répertoires d’origine
- NASA MERRA-2 (Modern-Era Retrospective analysis for Research and Applications, Version 2) :
- NASA MERRA-2 subset du MDISC :
NASA_MERRA_2_subset
Utiliser les noms de fichiers originaux
- NASA MERRA-2 subset du MDISC :
- JMA Japanese 55-year Reanalysis subset du NCAR/UCAR :
JMA_JRA_55_subset
Utiliser les noms de fichiers originaux
- JMA Japanese 55-year Reanalysis subset du NCAR/UCAR :
- JMA Japanese 55-year Reanalysis Conventional subset du NCAR/UCAR :
JMA_JRA_55C_subset
Utiliser les noms de fichiers originaux
- JMA Japanese 55-year Reanalysis Conventional subset du NCAR/UCAR :
- NOAA Twentieth Century Reanalysis v2c:
NOAA_20CR_v2c
Utiliser les noms de fichiers originaux (fichiers annuels – ex : z.1956.nc)
- NOAA Twentieth Century Reanalysis v2c:
- NOAA Twentieth Century Reanalysis v2c ensemble :
NOAA_20CR_v2c_ens
Utiliser les noms de fichiers originaux (fichiers annuels – ex : z500_1956.nc)
- NOAA Twentieth Century Reanalysis v2c ensemble :
- NOAA Optimum Interpolation Sea Surface Temperature, version 2:
NOAA_OISST_v2
Utiliser les noms de fichiers originaux (fichiers uniques – ex : sst_1deg.nc)
- NOAA Optimum Interpolation Sea Surface Temperature, version 2:
- Un jeu de données NetCDF générique :
Generic[__]
Utilisation du nom de la variable originale dans le nom du fichier (ex : z pour le géopotentiel)
Peut être structuré comme un fichier unique (ex : z.nc)
Peut être structuré comme des fichiers annuels (ex : z.1998.nc)
Peut être structuré différemment, mais doivent être isolés dans un répertoire.
- Un jeu de données NetCDF générique :
Jeu de données générique¶
En plus des multiples réanalyses prises en charge, AtmoSwing permet d’utiliser un jeu de données générique sous forme de fichiers NetCDF. Le jeu de données peut être nommé comme suit :
Generic
: nom simple à utiliser principalement lorsque le jeu de données générique provient d’une source unique.Generic[__]
: le nom peut également être composé du termeGeneric
et de tout autre suffixe. Il permet de spécifier la source du jeu de données (par exempleGeneric_ERA5
ouGeneric_CFSR
). Ceci est principalement utile pour le Viewer afin de différencier les jeux de données qui ont été utilisés.
Les fichiers peuvent être organisés comme suit (AtmoSwing recherchera les correspondances possibles) :
Un seul fichier avec le nom de la variable prédictive souhaitée (ex : rh.nc)
Fichiers annuels avec l’année dans le nom du fichier
Tous les fichiers d’un répertoire. Les fichiers doivent être nommés afin d’être triés chronologiquement.
Structure du fichier¶
Le fichier doit avoir quatre dimensions :
lat : latitude
lon : longitude
level : doit être défini même s’il n’y a pas de niveau (fixé à 0 dans ce cas)
time : doit être défini en tant que Modified Julian Date (
days since 1858-11-17 00:00:00.0 +0:00
)
Le jeu de données générique est différent des autres jeux de données car il n’y a pas de variables prédéfinies. Le nom donné à la variable (dans le fichier NetCDF) doit également être utilisé dans le fichier de paramètres xml.
Générer des jeux de données génériques¶
Le dépôt de AtmoSwing Python toolbox contient des scripts pour convertir certaines réanalyses au format générique (par exemple scripts/createGenericFromERAI.py).
Il faut préciser :
dir_origin
: le répertoire contenant les fichiers originauxdir_target
: le répertoire dans lequel les fichiers résultants doivent être sauvegardésfiles_list
: une liste des fichiers à transformer contenant les entrées suivantes : 1) le sous-répertoire contenant les fichiers originaux (par exemplepressure
ousurface_analysis
), 2) le nom de la variable dans les fichiers originaux, 3) le nom à donner à la variable dans le fichier résultant.
Il peut être nécessaire de modifier les scripts pour les adapter à d’autres formats ou structures d’entrée.
Données spécifiques au Forecaster¶
AtmoSwing Forecaster peut lire les sorties de modèles numériques suivantes (avec l’ID correspondant à utiliser) :
Prévisions NWS GFS (téléchargées automatiquement depuis NOMADS) :
NWS_GFS
Prévisions NWS GFS, mais sans téléchargement :
NWS_GFS_Local
Prévisions IFS du CEPMMT (pas de téléchargement automatique) :
ECMWF_IFS
Prévisions ARPEGE de Météo-France (pas de téléchargement automatique) :
MF_ARPEGE
Indiquer le domaine à télécharger¶
Avertissement
Lorsque GFS est utilisé, les prédicteurs sont téléchargés par défaut pour le domaine européen : longitude de -32° à 42° et latitude de 20° à 72°. Le domaine peut être modifié dans le fichier AtmoSwingForecaster.ini.
Le domaine et les niveaux par défaut à télécharger sont spécifiés dans les URL d’AtmoSwingForecaster.ini (dans votre répertoire de profil ; typiquement C:\Users\<username>\AppData\Roaming\AtmoSwing pour Windows ou .AtmoSwing pour Linux/OSX). Le domaine est ajusté en changeant les valeurs de leftlon=-32&rightlon=42&toplat=72&bottomlat=20
, et les niveaux avec lev_XXX_mb=on
.
[PredictorsUrl]
[PredictorsUrl/GFS]
hgt=https://nomads.ncep.noaa.gov/cgi-bin/filter_gfs_0p50.pl?file=gfs.t[CURRENTDATE-hh]z.pgrb2full.0p50.f[LEADTIME-hhh]&lev_300_mb=on&lev_400_mb=on&lev_500_mb=on&lev_600_mb=on&lev_700_mb=on&lev_850_mb=on&lev_925_mb=on&lev_1000_mb=on&var_HGT=on&subregion=&leftlon=-32&rightlon=42&toplat=72&bottomlat=20&dir=%2Fgfs.[CURRENTDATE-YYYYMMDD]/[CURRENTDATE-hh]
temp=https://nomads.ncep.noaa.gov/cgi-bin/filter_gfs_0p50.pl?file=gfs.t[CURRENTDATE-hh]z.pgrb2full.0p50.f[LEADTIME-hhh]&lev_300_mb=on&lev_400_mb=on&lev_500_mb=on&lev_600_mb=on&lev_700_mb=on&lev_850_mb=on&lev_925_mb=on&lev_1000_mb=on&var_TMP=on&subregion=&leftlon=-32&rightlon=42&toplat=72&bottomlat=20&dir=%2Fgfs.[CURRENTDATE-YYYYMMDD]/[CURRENTDATE-hh]
vvel=https://nomads.ncep.noaa.gov/cgi-bin/filter_gfs_0p50.pl?file=gfs.t[CURRENTDATE-hh]z.pgrb2full.0p50.f[LEADTIME-hhh]&lev_300_mb=on&lev_400_mb=on&lev_500_mb=on&lev_600_mb=on&lev_700_mb=on&lev_850_mb=on&lev_925_mb=on&lev_1000_mb=on&var_VVEL=on&subregion=&leftlon=-32&rightlon=42&toplat=72&bottomlat=20&dir=%2Fgfs.[CURRENTDATE-YYYYMMDD]/[CURRENTDATE-hh]
rh=https://nomads.ncep.noaa.gov/cgi-bin/filter_gfs_0p50.pl?file=gfs.t[CURRENTDATE-hh]z.pgrb2full.0p50.f[LEADTIME-hhh]&lev_300_mb=on&lev_400_mb=on&lev_500_mb=on&lev_600_mb=on&lev_700_mb=on&lev_850_mb=on&lev_925_mb=on&lev_1000_mb=on&var_RH=on&subregion=&leftlon=-32&rightlon=42&toplat=72&bottomlat=20&dir=%2Fgfs.[CURRENTDATE-YYYYMMDD]/[CURRENTDATE-hh]
uwnd=https://nomads.ncep.noaa.gov/cgi-bin/filter_gfs_0p50.pl?file=gfs.t[CURRENTDATE-hh]z.pgrb2full.0p50.f[LEADTIME-hhh]&lev_300_mb=on&lev_400_mb=on&lev_500_mb=on&lev_600_mb=on&lev_700_mb=on&lev_850_mb=on&lev_925_mb=on&lev_1000_mb=on&var_UGRD=on&subregion=&leftlon=-32&rightlon=42&toplat=72&bottomlat=20&dir=%2Fgfs.[CURRENTDATE-YYYYMMDD]/[CURRENTDATE-hh]
vwnd=https://nomads.ncep.noaa.gov/cgi-bin/filter_gfs_0p50.pl?file=gfs.t[CURRENTDATE-hh]z.pgrb2full.0p50.f[LEADTIME-hhh]&lev_300_mb=on&lev_400_mb=on&lev_500_mb=on&lev_600_mb=on&lev_700_mb=on&lev_850_mb=on&lev_925_mb=on&lev_1000_mb=on&var_VGRD=on&subregion=&leftlon=-32&rightlon=42&toplat=72&bottomlat=20&dir=%2Fgfs.[CURRENTDATE-YYYYMMDD]/[CURRENTDATE-hh]
pwat=https://nomads.ncep.noaa.gov/cgi-bin/filter_gfs_0p50.pl?file=gfs.t[CURRENTDATE-hh]z.pgrb2full.0p50.f[LEADTIME-hhh]&lev_entire_atmosphere_%5C%28considered_as_a_single_layer%5C%29=on&var_PWAT=on&subregion=&leftlon=-32&rightlon=42&toplat=72&bottomlat=20&dir=%2Fgfs.[CURRENTDATE-YYYYMMDD]/[CURRENTDATE-hh]
Données spécifiques au Downscaler¶
AtmoSwing Downscaler peut lire les données climatiques suivantes en plus des jeux de données réanalysées (avec l’ID correspondant à utiliser) :
CMIP5 (Coupled Model Intercomparison Project Phase 5) :
CMIP5
CORDEX (Coordinated Regional Climate Downscaling Experiment) :
CORDEX
Variables prédicteurs¶
Les différents jeux de données existants ne nomment pas les variables météorologiques de la même manière. AtmoSwing peut interagir avec de nombreux jeux de données et contient une definition de plusieurs de leurs variables. Ces jeux de données fournissent souvent des produits différents, par exemple pour différents types de niveaux (isobarique, isentropique, surface, etc.). Comme certaines variables peuvent être définies pour différents niveaux (par exemple, la température), il peut être nécessaire de spécifier le produit/niveau. Ainsi, la sélection d’une variable dans le fichier de paramètres peut être définie comme level/variable
, par exemple pressure/z
pour le géopotentiel sur les niveaux de pression, ou isentropic/t
pour la température sur les niveaux isentropiques. Comme différents types de niveaux et de variables sont présents pour différents jeux de données, ils peuvent être nommés différemment dans AtmoSwing. Par exemple, pressure/z
, pl/h
et isobaric/hgt
sont identiques. Le nom du niveau (ou du produit) doit être identique au nom du sous-dossier correspondant. Par exemple, une personne utilisant NCEP/NCAR Reanalysis 1 et ayant un sous-dossier “pressure” devrait utiliser pressure/z
pour la hauteur géopotentielle.
Les sections suivantes définissent en premier lieu les différents niveaux, puis certaines variables communes à la plupart des jeux de données et, enfin, dressent la liste des variables disponibles pour les différents jeux de données.
Différencier les sous-ensembles/niveaux¶
Le niveau peut généralement être défini à l’aide de différents termes. Les termes proposés sont interchangeables.
Niveau de pression :
pressure_level
pressure_levels
pressure
press
isobaric
pl
pgbh
pgbhnl
pgb
Niveau isentropique :
isentropic_level
isentropic
potential_temperature
pt
ipvh
ipv
Surface :
surface
surf
ground
sfc
sf
Flux :
surface_fluxes
fluxes
flux
flxf06
flx
Colonne :
total_column
column
tc
entire_atmosphere
ea
Vorticité potentielle :
potential_vorticity
pv
pv_surface
epv
Variables communes¶
Certaines variables sont définies avec des noms différents (alias) dans les ensembles de données :
Géopotentiel :
z
h
zg
Lors du chargement des données géopotentielles, AtmoSwing les convertit automatiquement en hauteur géopotentielle.
Hauteur géopotentielle :
z
h
zg
hgt
Température de l’air :
t
temp
tmp
ta
air
Humidité relative :
rh
rhum
hur
r
Humidité spécifique :
sh
shum
hus
q
qv
Vitesse verticale :
w
vvel
wap
omega
Eau précipitable :
pwat
p_wat
pr_wtr
prwtr
Eau totale de la colonne :
tcw
Vapeur d’eau totale de la colonne :
tcwv
Pression :
pressure
press
pres
Pression au niveau de la mer :
slp
mslp
psl
prmsl
msl
Composante U du vent :
u
ua
ugrd
u_grd
uwnd
Composante V du vent :
v
va
vgrd
v_grd
vwnd
PV :
pv
pvort
epv
Précipitations totales :
tp
prectot
Variables provenant de jeux de données¶
Les variables suivantes sont définies dans AtmoSwing pour les différentes réanalyses. Lorsqu’aucun identifiant de données n’est fourni, on peut utiliser l’une des variantes définies ci-dessus.
NCEP/NCAR Reanalysis 1¶
Pour les niveaux de pression :
Température de l’air
Hauteur géopotentielle
Humidité relative
Humidité spécifique
Vitesse verticale
Composante U du vent
Composante V du vent
Pour la surface :
Température de l’air
Indice d’élévation de la surface (
lftx
)Meilleur indice de soulèvement (4 couches) (
lftx4
)Vitesse verticale
Température potentielle (
pottmp
)Eau précipitable
Pression
Humidité relative
Pression au niveau de la mer
Composante U du vent
Composante V du vent
Pour les flux de surface :
Température de l’air 2m
Taux d’évaporation potentiel (
pevpr
)Humidité spécifique à 2m (
shum
)Humidité du sol (0-10cm) (
soilw0-10
)Humidité du sol (10-200cm) (
soilw10-200
)Température de surface (
sktmp
)Température de la couche 0-10cm (
tmp0-10
)Température de la couche 10-200cm (
tmp10-200
)Température à 300 cm (
tmp300
)Composante U du vent à 10 m
Composante V du vent à 10 m
Équivalent en eau de la neige (
weasd
)Température maximale à 2m (
tmax2m
)Température minimale à 2m (
tmin2m
)Flux net d’ondes longues du forçage des nuages (
cfnlf
)Flux solaire net de forçage des nuages (
cfnsf
)Taux de précipitations convectives (
cprat
)Flux d’ondes longues descendantes par ciel clair (
csdlf
)Flux solaire descendant par ciel clair (
csdsf
)Flux solaire ascendant à la surface par ciel clair (
csusf
)Flux de rayonnement descendant de grande longueur d’onde (
dlwrf
)Flux de rayonnement solaire descendant (
dswrf
)Flux de chaleur du sol (
gflux
)Flux net de chaleur latente (
lhtfl
)Flux solaire descendant du faisceau proche IR (
nbdsf
)Flux solaire descendant diffus dans le proche IR (
nddsf
)Rayonnement net de grande longueur d’onde (
nlwrs
)Rayonnement net d’ondes courtes (
nswrs
)Taux de précipitations
Flux net de chaleur sensible (
shtfl
)Flux de quantité de mouvement (zonal) (
uflx
)Contrainte d’onde de gravité zonale (
ugwd
)Flux ascendant de rayonnement de grande longueur d’onde (
ulwrf
)Flux de rayonnement solaire ascendant (
uswrf
)Flux solaire descendant du faisceau visible (vbdsf)
Flux solaire visible diffus descendant (vddsf)
Flux de Momentum, composante v (
vflx
)Contrainte d’onde de gravité méridienne (
vgwd
)
NCEP/DOE Reanalysis 2¶
Pour les niveaux de pression :
Température de l’air
Hauteur géopotentielle
Humidité relative
Vitesse verticale
Composante U du vent
Composante V du vent
Pour la surface :
Eau précipitable
Pression
Pression au niveau de la mer
Pour les flux de surface :
Température de l’air 2m
Humidité spécifique à 2m (
shum
)Température maximale à 2m (
tmax2m
)Température minimale à 2m (
tmin2m
)Température de surface (
sktmp
)Humidité du sol (0-10cm) (
soilw0-10
)Humidité du sol (10-200cm) (
soilw10-200
)Température de la couche 0-10cm (
tmp0-10
)Température de la couche 10-200cm (
tmp10-200
)Composante U du vent à 10 m
Composante V du vent à 10 m
Équivalent en eau de la neige (
weasd
)Taux de précipitations convectives (
cprat
)Flux de rayonnement descendant de grande longueur d’onde (
dlwrf
)Flux de rayonnement solaire descendant (
dswrf
)Flux de chaleur du sol (
gflux
)Flux net de chaleur latente (
lhtfl
)Taux d’évaporation potentiel (
pevpr
)Taux de précipitations
Flux net de chaleur sensible (
shtfl
)Couverture nuageuse totale (
tcdc
)Flux de quantité de mouvement (zonal) (
uflx
)Contrainte d’onde de gravité zonale (
ugwd
)Flux ascendant de rayonnement de grande longueur d’onde (
ulwrf
)Flux de rayonnement solaire ascendant (
uswrf
)Flux de Momentum (méridional) (
vflx
)Contrainte d’onde de gravité méridienne (
vgwd
)
NCEP CFSR¶
Pour les niveaux de pression (pgbh
) :
Hauteur géopotentielle
Eau précipitable
Pression au niveau moyen de la mer
Humidité relative
Température
NCEP CFSR subset¶
Pour les niveaux de pression :
Hauteur géopotentielle
Anomalie de hauteur géopotentielle (
gpa
)Humidité relative
Humidité spécifique
Température
Vitesse verticale
Vent d’est
Vent du nord
Potentiel de vitesse horizontale de l’atmosphère (
vpot
)Hauteur géopotentielle à 5 ondes (
5wavh
)Anomalie de hauteur géopotentielle à 5 ondes (
5wava
)Vorticité absolue de l’atmosphère (
absv
)Taux de mélange de l’eau dans les nuages (
clwmr
)Fonction horizontale de l’atmosphère (
strm
)
Pour la colonne totale:
Humidité relative
Eau de nuage (
cwat
)Contenu en vapeur d’eau de l’atmosphère (
pwat
)
ECMWF ERA5¶
Pour les niveaux de pression :
Divergence (
d
)Vorticité potentielle
Humidité spécifique
Humidité relative
Température
Composante U du vent
Composante V du vent
Vorticité (relative) (
vo
)Vitesse verticale
Géopotentiel
Pour la surface :
Température du point de rosée à 2 mètres (
d2m
)Pression au niveau de la mer (
msl
)Épaisseur de neige (
sd
)Température de surface de la mer (
sst
)Température à 2 mètres (
t2m
)Eau totale de la colonne (
tcw
)Vapeur d’eau totale de la colonne (
tcwv
)Composante U du vent à 10 mètres (
u10
)Composante V du vent à 10 mètres (
v10
)Précipitations totales (
tp
)Énergie potentielle de convection disponible (
cape
)Flux d’humidité instantané (
ie
)Rayonnement solaire net de surface (
ssr
)Rayonnement solaire descendant de surface (
ssrd
)Rayonnement thermique net de la surface (
str
)Rayonnement thermique descendant de surface (
strd
)
ECMWF ERA-interim¶
Pour les niveaux de pression :
Divergence (
d
)Vorticité potentielle
Humidité spécifique
Humidité relative
Température
Composante U du vent
Composante V du vent
Vorticité (relative) (
vo
)Vitesse verticale
Géopotentiel
Pour les niveaux isentropiques :
Divergence (
d
)Potentiel de Montgomery (
mont
)Pression
Vorticité potentielle
Humidité spécifique
Composante U du vent
Composante V du vent
Vorticité (relative) (
vo
)
Pour la surface :
Température du point de rosée à 2 mètres (
d2m
)Pression au niveau de la mer (
msl
)Épaisseur de neige (
sd
)Température de surface de la mer (
sst
)Température à 2 mètres (
t2m
)Eau totale de la colonne (
tcw
)Vapeur d’eau totale de la colonne (
tcwv
)Composante U du vent à 10 mètres (
u10
)Composante V du vent à 10 mètres (
v10
)Précipitations totales
Énergie potentielle de convection disponible (
cape
)Flux d’humidité instantané (
ie
)Rayonnement solaire net de surface (
ssr
)Rayonnement solaire descendant de surface (
ssrd
)Rayonnement thermique net de la surface (
str
)Rayonnement thermique descendant de surface (
strd
)
Pour les niveaux de PV :
Pression
Température potentielle (
pt
)Composante U du vent
Composante V du vent
Géopotentiel
ECMWF ERA 20th Century¶
Pour les niveaux de pression :
Géopotentiel
Température
Humidité relative
Vitesse verticale
Pour la surface :
Total de la colonne d’eau
Précipitations totales
Pression au niveau de la mer
ECMWF Coupled ERA 20th Century¶
Pour les niveaux de pression :
Géopotentiel
Température
Humidité relative
Vitesse verticale
Pour la surface :
Total de la colonne d’eau
Précipitations totales
Pression au niveau de la mer
ECMWF IFS¶
Géopotentiel (
z
)Hauteur géopotentielle (
gh
)Température de l’air
Vitesse verticale
Humidité relative
Humidité spécifique
Composante U du vent
Composante V du vent
Theta E (
thetaE
)Theta ES (
thetaES
)Vapeur d’eau totale de la colonne (
tcwv
)Eau précipitable
NWS GFS¶
Hauteur géopotentielle
Température de l’air
Vitesse verticale
Humidité relative
Composante U du vent
Composante V du vent
Eau précipitable
NASA MERRA-2¶
Pour le produit “inst6_3d_ana_Np” :
Hauteur géopotentielle
Température de l’air
Pression au niveau de la mer
NASA MERRA-2 subset¶
Pour le produit “inst6_3d_ana_Np” :
Hauteur géopotentielle
Humidité spécifique
Température de l’air
Pression au niveau de la mer
Composante est du vent
Composante nord du vent
Pression de surface (
ps
)
Pour le produit “inst3_3d_asm_Np” :
Vorticité potentielle d’Ertel
Vitesse de pression verticale
Humidité relative après humidification
Pression au niveau de la mer
Température de l’air
Pour le produit “inst1_2d_int_Nx” :
Eau gelée précipitable totale (
tqi
)Eau liquide précipitable totale (
tql
)Vapeur d’eau précipitable totale (
tqv
)
Pour le produit “inst1_2d_asm_Nx” :
Eau gelée précipitable totale (
tqi
)Eau liquide précipitable totale (
tql
)Vapeur d’eau précipitable totale (
tqv
)Température de l’air à 10 mètres (
t10m
)
Pour le produit “tavg1_2d_flx_Nx” :
Flux total de précipitations de surface
Pour le produit “tavg1_2d_lnd_Nx” :
Précipitations totales, avec biais corrigés
JMA JRA-55 subset¶
Pour les niveaux de pression (anl_p125) :
Hauteur géopotentielle
Humidité relative
Température
Vitesse verticale
Pour la surface (anl_surf125) :
Pression réduite au niveau de la mer
Pour la colonne totale (anl_column125) :
Eau précipitable
Pour les niveaux isentropiques :
Vorticité potentielle
Hauteur géopotentielle
Pour le produit “fcst_phy2m125” :
Précipitations totales 3h (
tprat3h
)Précipitations totales 6h (
tprat6h
)
JMA JRA-55C subset¶
Pour les niveaux de pression (anl_p125) :
Hauteur géopotentielle
Humidité relative
Température
Vitesse verticale
Pour la surface (anl_surf125) :
Pression réduite au niveau de la mer
Pour la colonne totale (anl_column125) :
Eau précipitable
Pour les niveaux isentropiques :
Vorticité potentielle
Hauteur géopotentielle
Pour le produit “fcst_phy2m125” :
Précipitations totales 3h (
tprat3h
)Précipitations totales 6h (
tprat6h
)
NOAA 20CR v2c¶
Pour les niveaux de pression :
Température de l’air
Géopotentiel
Vitesse verticale
Humidité relative
Humidité spécifique
Humidité spécifique
Composante U du vent
Composante V du vent
Pour la surface :
Eau précipitable
Pression au niveau de la mer
Pour les flux de surface :
Taux de précipitations
NOAA 20CR v2c ensemble¶
Pour le produit “analyse” :
Pression au niveau de la mer
Eau précipitable
Vitesse verticale à 500 hPa (
omega500
)Humidité relative à 850 hPa (
rh850
)Humidité relative au niveau de pression 0.995 fois la pression de surface (
rh9950
)Température de l’air à 850 hPa (
t850
)Température de l’air au niveau de pression 0.995 fois la pression de surface (
t9950
)Hauteur géopotentielle à 200 hPa (
z200
)Hauteur géopotentielle à 500 hPa (
z500
)Hauteur géopotentielle à 1000 hPa (
z1000
)
Pour le produit “first_guess” :
Taux de précipitations
NOAA OISST v2¶
Il n’y a pas de définition de produit/niveau pour ce jeu de données.
Température de surface de la mer (
sst
)Anomalie de température de surface de la mer (
sst_anom
)
METEO-FRANCE ARPEGE¶
Géopotentiel
Humidité relative
Vapeur d’eau totale de la colonne
Température de l’air
Vitesse verticale
NetCDF générique¶
Le jeu de données générique est différent des autres jeux de données. Il n’y a pas de variables prédéfinies. Le nom de la variable doit être utilisé dans le fichier NetCDF.
Routines de prétraitement¶
Certaines variables élaborées doivent être prétraitées, comme l’indice d’humidité. Ainsi, différentes routines de prétraitement sont disponibles dans AtmoSwing.
Les principales routines de prétraitement implémentées sont les suivantes :
Addition (
Addition
) : somme (point par point) tous les prédicteurs fournis.Moyenne (
Average
) : moyenne (point par point) tous les prédicteurs fournis.Difference (
Différence
) : calcule la différence (point par point) entre 2 grilles de prédicteurs.Multiplication (
Multiplication
ouMultiply
) : multiplie (point par point) tous les prédicteurs fournis.Indice d’humidité (
HumidityIndex
) : multiplie l’humidité relative et l’eau précipitableFlux d’humidité (
HumidityFlux
) : multiplie le vent et l’indice d’humidité. Nécessite quatre prédicteurs dans l’ordre suivant : 1) vent U, 2) vent V, 3) humidité relative et 4) eau précipitableVitesse du vent (
WindSpeed
) : calcule la vitesse du vent avec les composantes U et V fournies.
Les routines de prétraitement suivantes ne sont généralement pas utilisées directement (ou sont automatiquement gérées par AtmoSwing) :
Gradients simples (
SimpleGradients
) : traitement des différences entre des points de grille adjacents en ignorant la distance horizontale.Gradients réels (
RealGradients
) : traitement des gradients réels entre des points de grille adjacents (en utilisant la distance horizontale). Cette méthode de prétraitement est automatiquement utilisée lorsque le critère d’analogie estS1
.Gradients simples avec pondérations gaussiennes (
SimpleGradientsWithGaussianWeights
) : comme précédemment, mais avec une pondération du champ spatial par un motif gaussien.Gradients réels avec pondérations gaussiennes (
RealGradientsWithGaussianWeights
) : comme précédemment, mais avec une pondération du champ spatial par un motif gaussien.Courbure simple (
SimpleCurvature
) : traitement de la “courbure” entre des points de grille adjacents en ignorant la distance horizontale.Courbure réelle (
RealCurvature
) : traitement de la “courbure” réelle entre des points de grille adjacents (en utilisant la distance horizontale). Cette méthode de prétraitement est automatiquement utilisée lorsque le critère d’analogie estS2
.Courbure simple avec pondérations gaussiennes (
SimpleCurvatureWithGaussianWeights
) : comme précédemment, mais avec une pondération du champ spatial par un motif gaussien.Courbure réelle avec pondérations gaussiennes (
RealCurvatureWithGaussianWeights
) : comme précédemment, mais avec une pondération du champ spatial par un motif gaussien.
Critères d’analogie¶
Les critères d’analogie disponibles dans AtmoSwing sont les suivants :
Teweles-Wobus (
S1
)Teweles-Wobus avec poids gaussiens (
S1G
)Teweles-Wobus sur données brutes (
S0
)Dérivée de Teweles-Wobus (
S2
)Somme des différences absolues (
SAD
)Différence moyenne absolue (
MD
)Erreur quadratique moyenne (
RMSE
)Différence de valeur moyenne (non spatiale) (
DMV
)Différence d’écart-type (non spatial) (
DSD
)
Schéma de versionnage et migration¶
Schéma de versionnage¶
AtmoSwing suit une structure de versionnage dont les numéros de version sont MAJOR.MINOR.PATCH. Les règles sont les suivantes :
Version MAJOR : changements significatifs dans la structure générale ou ajout d’un nouvel outil,
Version MINOR : ajout de fonctionnalités susceptibles d’être incompatibles avec les versions précédentes,
Version PATCH : corrections de bogues et petites améliorations.
Politique de support¶
Lorsqu’une nouvelle version est publiée, le développement des versions précédentes n’est pas poursuivi, à l’exception des versions LTS (Long Term Support), pour lesquelles des corrections de bogues sont fournies pendant une période plus longue.
Version |
Distribution |
Corrections de bugs jusqu’à |
---|---|---|
2.0 |
19.11.2018 |
01.07.2019 |
2.1 |
23.05.2019 |
01.07.2023 |
3.0 LTS |
17.04.2023 |
01.07.2027 |
Guide de mise à niveau¶
v2.1 à v3.0¶
Fichiers de paramètres
Modification des
dataset_id
des prédicteurs pour le Forecaster. Vérifiez les nouvelles valeurs sous la page des données du Forecaster.
La base de données des prédictants
La base de données des predictands a été mise à jour pour inclure les informations de projection. La BD doit être générée à nouveau avec la nouvelle version du logiciel.
Fichier batch du Forecaster
L’extension du fichier batch est maintenant
.xml
.
v2.0 à v2.1¶
Fichiers de paramètres
Changements dans le
dataset_id
des réanalyses. Vérifiez les nouvelles valeurs sous reanalyses page.
Release notes¶
The following release notes list the main changes to AtmoSwing. Many small changes are not listed and can be tracked down in the commits.
v3.0.7¶
20 May 2023
Fixed
Fixing issue with 6-hourly forecasts.
Fixing missing level value to display ARPEGE data.
v3.0.6¶
16 May 2023
Added
New management of the parameters listing in the Forecaster.
Adding access to the parameter information in the Forecaster.
Adding menu entries for recent workspaces and batch files.
Adding buttons to reset the plots zoom extent in the Viewer.
Changed
Replacing icons with SVG versions.
Fixed
Fixing proxy parsing.
v3.0.5¶
12 May 2023
Fixed
The Forecaster returns a non 0 code when at least one forecast failed.
Fixing run time step of Arpege.
v3.0.4¶
09 May 2023
Fixed
Addition of missing translations related to vroomgis.
v3.0.3¶
08 May 2023
Added
Adding the location of the target in the predictors mapping.
Adding the batch file name in the Forecaster frame.
Fixed
Fixing date issue in the predictors mapping.
Translating the frame labels.
v3.0.2¶
18 Apr 2023
Fixed
Fixing issue with the predictors mapping.
v3.0.1¶
17 Apr 2023
Fixed
Fixing issue with the predictors mapping.
v3.0.0¶
17 Apr 2023
Added
- A new frame has been added to visualize the predictor fields (from NWP models and reanalyses).
It allows comparing the predicted situation with the analog situations.
Real support of the 6-hourly forecasts in the Viewer.
Translation of all modules in French.
Adding path to ecCodes definitions in the preferences.
Docker: adding ecCodes definitions path to the environment variables.
Adding column water vapor variable.
Adding support and tests for the ARPEGE model outputs.
Adding options in the workspace to limit the time series length to be displayed.
Changed
Removing inefficient mini-batch assessment on full period.
Improving mini-batches optimisation end.
Changing Forecaster batch file extension to xml.
Viewer workspaces now support relative paths for GIS layers.
Using std::runtime_error instead of custom exception macro.
Addition of predictor properties in the forecast result files.
Renaming the operational predictor dataset IDs.
Removing custom NaN management approach for C++ built-in approach.
Removing parallel download as it is disliked by data providers.
Fixed
Fixing CUDA options issues.
Time units were missing in the predictand db.
Fixing issue with the epoch number after restoration.
Improving code based on Codacy analysis.
Fixing a potential crash in the Optimizer (when the predictor levels and times vary).
Fixing results csv export from plot.
Fixing issues with 6-hourly forecasts.
v2.1.6¶
22 Nov 2022
Added
A mini-batch approach has been implemented for Genetic Algorithms.
Adding a warning if the preload option if not enabled for calibration.
Adding local GFS dataset class to avoid downloading.
Changed
Improvement of time units description in generated nc files.
Removing usage of temporary storage in GAs optimization.
Curl: disable certificate checks on Windows as not supported.
Code formatting.
Removed
Removing the history approach in GAs optimisations (not efficient).
v2.1.5¶
11 Oct 2022
Changed
Moved the dependencies management to conan
Simplified the areas management by removing the composite approach.
Some code clean up and code formatting.
Moved all CI workflows to GitHub actions.
Fixed
The weights computed by the optimizer cannot take negative values.
Addition of S0 and S1 with normalization by the reference value.
GFS urls on nomads have been fixed.
Optimizer: fixed convergence check when previous results are loaded.
Optimizer: relaxed criteria for convergence in GAs (using tolerance).
Optimizer: fixed an issue with latitude values > 90° that were not corrected.
v2.1.4¶
09 Oct 2020
Changed
Refactored time axis management in predictors loading.
Fixed
Fixed an issue with missing dates in the FVG dataset.
Fixed an issue with NaNs in the standardization.
v2.1.3¶
13 Jul 2020
Added
Addition of Dockerfiles for the creation of Docker images.
Addition of the mean and the sd in the parameters for standardisation.
Standardisation for operational forecasting.
Handling a single “number of analogs” for operational forecasting.
Handling forecasts without reference axis.
Addition of the mean of the analogs to the aggregated forecast xml.
Addition of the lead time hour to the aggregated results.
Addition of synthetic text (csv) export of the forecast.
Allowing a percentage of missing predictor data.
Changed
Simplification of resulting parameters storage.
Reduction of optimization memory footprint.
Reduction of padding in structures to save memory.
Disabling using GAs history by default.
Changes in dependencies management.
Refactoring predictor files download.
Enabling optional downloading of predictor files.
Standardisation after data loading.
Changing output extension of forecast files to nc.
Changing the specification of the forecast synthetic exports.
Allowing NaNs to propagate in the forecast.
Updating to Proj 7.
Changing indentation back to 4.
Fixed
Fixing GFS urls.
Avoid crash and display an error when desired latitude was not found.
Addition of the standardisation specification in resulting parameters.
Fixing issue when the reference axis is NaN.
Fixing lead times in plots.
v2.1.2¶
02 Dec 2019
Added
Efficient GPU processing with CUDA.
Ability to fully resume optimizations with GAs operators values.
Parameters that were already assessed during the optimization are not assessed again.
Parameters that are close to other parameters with poor skills are not assessed again.
Addition of the Google benchmark framework for testing CUDA implementation.
Changed
The optimization workflow has been simplified.
Check for previous optimization convergence before loading data.
Transitioning to Google code style.
The dataset « NCEP_Reanalysis_v1 » has been renamed to « NCEP_R1 ».
The dataset « NCEP_Reanalysis_v2 » has been renamed to « NCEP_R2 ».
Some redundant tests have been removed.
Addition of tests for the datasets.
Changes in some libraries versions.
Fixed
Error with weights in optimization initialization (when all weights = 0).
Optimization resuming might have started from an older file.
Some (rarely used) variables definition in some reanalyses were wrong.
Fixed an issue with latitudes axis when resampling.
v2.1.1¶
17 Jul 2019
Added
Addition of predictor data dumping to binary files (to reduce RAM usage).
Allow loading from dumped predictor data (and keep in RAM).
Option for replacing NaNs by -9999 (save processing time).
Addition of a bash script to install libraries on a server.
Changed
Refactoring of the CUDA implementation.
Updating GFS urls.
Improving Eigen usage.
Testing downscaling parameters.
Speeding up Grib files loading.
Adding information to error messages.
Fixed
Fixing Viewer issues to find the forecast files.
Fixing missing node (on_mean) when parsing xml files for the calibrator.
Fixing a log path issue.
Fixing a memory leak due to ecCodes index not deleted.
Fixing a bug when interval days are not used.
v2.1.0¶
23 May 2019
Added
Support of GRIB1 files with ecCodes.
Adding a generic NetCDF predictor class.
Addition of real gradients processing.
Addition of S1 variants: S0 and S2.
Addition of other nonspatial criteria.
Support of IFS outputs.
Addition of the ERA5 dataset.
Addition of custom period definition (selection of months).
Adding analog dates-only extraction method.
Get preloaded data from another level if not available.
Adding options for seasons definition.
Addition of 2D Gauss function for preditor weighting.
Implementing time dimension for grib files.
Addition of lightnings data normalization.
Adding on-the-fly standardization.
Support non trivial time arrays for data loading and missing files.
Supporting more complex predictor hours.
Changed
Migrating from g2clib to ecCodes.
Improving support for NaNs.
Handling resulting files with many stations.
Allow Optimizer to not have a validation period.
Allow for negative MJD values.
Allow for retention of more analogs than the defined number.
Adding common variables definitions between predictors.
Addition of new reanalyses variables.
Allowing different file structures for ERA-interim.
Using more C++11 features.
Improving GRIB parsing efficiency.
Heavy refactoring of the time arrays.
Adding command-line logo.
Updating the predictand DB tool GUI.
Better management of missing files.
Getting rid of the pseudo-normalized criteria.
Refactoring the management of the time reference.
Removing custom exception class.
Logs refactoring.
Removing call to Forecaster from the Viewer.
Improving use of config.
Auto generate the dependencies for Debian packages.
Fixed
Fixing minimum domain size for S1 and S2.
Fixing time issue with the 6-hrly time step.
Fix an issue related to GAs crossover on the criteria.
Fixing issue with a Google layer projection.
Fix a bug in multithreaded downloads.
Fix command line usage of builds with GUIs.
v2.0.1¶
12 Dec 2018
Added
Adding definition of a continuous validation period.
Changed
Using https on nomads.
Setting the installer creation as optional.
Fixed
Fixing About panel size and Ubuntu dependencies.
Fixing CMake issues.
v2.0.0¶
19 Nov 2018
Added
Addition (merge) of the code of the optimization with genetic algorithms to the main repository.
Creation of the Downscaler.
Addition of the NOAA 20CR-v2c ensemble dataset.
Addition of the CERA-20C dataset.
Addition of the CMIP5 dataset.
Addition of CORDEX data
Transforming geopotential into geopotential height.
Adding other MTW time steps.
Adding an option to specify different time steps for the calibration / archive periods.
Adding a time properties to take into account temporal shift in the predictand.
Handling of both 3h and 6h ERA-20C dataset.
Specification of the number of members in the parameters file.
Adding an option to remove duplicate date from members.
GFS urls are now configurables.
Getting predictor time step from files.
Getting the spatial resolution from file.
Adding capacity to read some unregistered predictor variables.
Adding GAs presets.
Changed
Code moved to GitHub.
Adding continuous integration (Travis CI and AppVeyor).
Adding code coverage of the tests.
New MSI installer with WiX.
Getting some libraries through external projects.
Simplification of the CRPS calculation.
Speeding up data loading.
Adding possibility to skip data normalization.
Removing the slow coefficient approach in criteria calculation.
Removing the slower processing version.
Heavy refactoring to simplify class names.
Refactoring parameters files.
Refactoring processor code.
Reduce time for assessing the number of analogues.
Improving parameters file parsing.
Fix a bug when transforming Geopotential variable.
Better acceptance of NaNs in the predictand values.
Using initialization lists everywhere.
CMake files are now organized by folder.
Improving Forecaster messages.
Changing the predictor files listing approach.
New predictor area implementation.
Improving and simplifying GUIs.
The predictand DB build tool is accessible from anywhere.
Stopping the calculations when there is not enough potential analogs.
Limit the relevance map extension.
Allowing the duplicate dates by default.
Defaulting to 1 member.
Saving results from Monte Carlo analysis.
Fixed
Fix archive length check with ensemble datasets.
Fixing an issue of grid resolution when loading data.
Fix issues with VS.
Fixing link issues with cURL on Linux.
Fixing new GFS files parsing.
Fix compiler warnings under Windows.
Correctly closing grib files.
Fixing screen resolution issue on Linux.
Adding missing CL help entries.
Force unlock weights when sum > 1.
Fixing Monte Carlo analysis.
Fixing background color.
v1.5.0¶
30 Jan 2017
Added
Addition of the CFSR v2 dataset.
Addition of the MERRA2 dataset.
Addition of the JRA-55 subset data.
Addition of the JRA-55C subset.
Addition of the 20CR v2c dataset.
Addition of the ERA-20C dataset.
Allow for both relative and absolute paths for predictors.
Addition of the possibility to define the station id as parameter.
Addition of the addition preprocessing.
Addition of the average preprocessing.
Addition of the Monte-Carlo approach from the Optimizer.
Changed
Refactoring predictor data classes.
Addition of support for the T382 truncature.
Renaming level type to product.
Split up of the big CMake file in smaller files.
Allowing preload of humidity index data.
Testing and improving preprocessing methods.
Improving preprocessing parameters handling.
Refactoring parameters loading.
Addition of a tolerance in the area matching.
Refactoring Classic Calibration.
Refactoring saving and loading results.
Addition of compression to optimizer results.
Improving handling of Gaussian grids in the classic calibration.
Saving both results details of calibration and validation.
Predictor file paths can now contain wildcards!
Refactoring logging.
Improvement of the predictor files lookup.
Changes in the « Classic + » method.
Better handling of intermediate resulting files.
Improving predictor datasets reading.
Fixed
Fix of a bug when the area is 2 points wide.
Fix of a bug for regular and irregular grids.
Fix of a minor memory leak.
Fix some issues related to new predictors.
Fix loading of previous runs in the Optimizer.
Fix of an issue of precision when looking for time values in an array.
v1.4.3¶
21 Jul 2016
Added
The new NCEP R1 archive format is now supported.
Preloading of multiple data IDs.
Addition of predictor data loading with threads.
Handling null pointers in the preloaded data.
Adding normalized criteria.
Sharing data pointers across analogy steps.
Addition of ERA-interim.
Improving notifictations when loading failed.
NCEP R2 tested.
Changed
Renaming Calibrator into Optimizer.
Parsing NaNs as string to handle non-numerical cases for predictands.
Migrating from UnitTest++ to Google Test.
Skip gradients preprocessing when there are multiple criteria.
Using pointers to the parameter sets in order to keep changes in level selection.
Replacing ERA40 by ERA-interim.
Changes in the reanalysis datasets management.
Simplification of the meteorological parameter types.
Significant changes in netcdf files loading.
Addition of a functionality in the composite areas in order to handle the row lon = 360 = 0 degrees.
Addition of a method to remove duplicate row on multiple composites.
New management of predictor data for realtime series.
Using Grib2c instead of GDAL for Grib files, and data loading refactoring.
Fixed
Fixed unit test issues.
Applying code inspection recommendations.
Fix of a segmentation fault in the optimizer.
v1.4.2¶
18 Aug 2015
Added
Addition of the 300hPa level for GFS.
Highlight the optimal method for the station in the distribution plot and the analogs list.
Changed
Newly created workspace now opens automatically.
Do not load already loaded forecasts.
Do not display the station height when null.
Handle file opening when double-clicking.
Improving CL usage.
Reload forecasts previously processed if an export is required.
Fixed
Removal of a forecast from the GUI now works as expected.
Removing Projection specification from WMS files.
Past forecasts do load again.
Fix of a bug in data preloading.
v1.4.1¶
19 Mar 2015
Added
Addition of the export options to the command line configuration.
Addition of an overall progress display.
Changed
No need to reload forecasts after processing.
Improving the display of former forecast files.
TreeCtrl images of different resolutions.
Change of every image/icon for a custom design.
Full support implemented for high resolution screens.
Updating the command line interface.
Forcing UTF-8 in the netCDF files.
Changing file version specification into major.minor
Fixed
Debugging accents issue under Linux.
Removing « using namespace std » in order to keep a clean namespace resolution.
Removing asFrameXmlEditor.
Fix of a crash when no forecast is opened.
Replacing printf with wxPrintf.
Removing unnecessary .c_str() conversion on strings.
Fix of a corruption in the wxFormbuilder project.
Debugging netcdf issues under Linux.
Fixing namespace issues.
v1.4.0¶
02 Mar 2015
Added
Addition of the export of a synthetic xml file.
Addition of a tree control for the forecasts in the viewer.
Addition of an automatic methods aggregation in the viewer.
Creation of methods IDs.
Specification of the station IDs for specific parameters files.
New xml format for most files.
Changed
Update to the new GFS URLs and format.
Adding a message in order to specify the selected models.
Removal of the coordinate system specification for the predictors.
Removing TiCPP in order to use the native xml handling from wxWidgets.
Merging asCatalog and asCatalogPredictands.
Fixed
Cleaning up processing and use of quantiles.
No need to reload forecasts after processing.
v1.3.3¶
12 Jan 2015
Added
Addition of buttons in the viewer frame to go backward and forward in time.
Workspaces can now be saved to an xml file.
Addition of a wizard to create the workspace.
Addition of a control on the changes of the workspace to save before closing.
Addition of a configuration option in the forecaster.
Changed
Separation of the preferences.
Definition of the preferences in the workspace.
Change of the configuration option by using a given batch file.
The loading of predictor data has significantly changed.
Better handles user errors in the parameters files.
Hide the elevation information when not available.
Changing the name of the U/V axis into X/Y to help users.
Fixed
Cleanup of the forecaster config options.
Cleanup of the calibrator config options.
Correction of the path to the WMS layers.
Bug fix of unspecified directories for the archive predictors.
Limiting the number of parallel downloads.
Fix of the cURL hang with parallel downloading.
Removal of the definition of the analogs number on the forecast score.
Fix of an issue with the colors storage in the workspace.
Now keeps the same model selection when opening new forecasts.
Now keeps the same lead time when opening new forecasts.
v1.3.2¶
01 Sep 2014
Added
Introduction of workspaces for the viewer.
Addition of WMS basemaps layers.
Merging the two viewer frames into one with a new lead time switcher.
Addition of the ability to optimize on multiple time series together.
Addition of the CRPS reliability skill score and removal of F0 loading methods.
Changed
Improvement of the rank histogram with bootstraping.
Increase of boostraping to 10’000 for the rank histrogram.
Reduction in time for the assessment of all scores.
Improving performance by reducing reallocation.
Changing the MergeCouplesAndMultiply method into FormerHumidityIndex.
Fixed
Fix of the paths for CUDA files.
Fix of a linking issue with the viewer.
Fix of a bug related to gradient preprocessing in validation.
Minor bug fix on the evaluation of all forecasting scores.
Removing of the S1 weighting method.
Bug fix in the preloading option for the classic calibration parameters.
Fix of a bug on the single instance checker.
Limitation of the zoom level to avoid the memory issue related to GDAL caching mechanism.
v1.3.1¶
13 May 2014
Changed
Merge of the various CMake files into one project.
Fixed
Debugging the new build process under Linux.
v1.3.0¶
06 May 2014
Added
Implementation of GPU processing
Addition of a predictand pattern file.
Addition of compression to the forecast files.
Addition of CPack files.
Addition of a unit test on gradients preprocessing.
Changed
The archive and calibration periods can now start in the middle of a year.
Better check the requested time limits when loading predictor data.
Fixed
Removing a memory leak when aborting the app initialization.
Correction of the data ordering in the forecast results.
Bug fix in the time arrays intervals construction.
Fix of a bug in the validation processing with a partial final year.
Correction of the rank histogram.
Reduced cURL outputs and fix of the multithreaded downloads.
Adding a missing MSVC dll in the installation package.
v1.2.0¶
26 Feb 2014
Added
Addition of the Calibrator source code.
Addition of the rank histogram (Talagrand diagram)
Addition of CRPS decomposition after Hersbach (2000).
Addition of the generation of xml parameters files after the calibration.
Changed
The catalogs were removed for the predictors classes and new specific data classes were generated.
Removing predictand database properties from parameters for calibration.
Changing predictors file names.
Changes in unit test filenames for more clarity.
Better initialization of the scrolled window.
Check fields in the parameters file of the forecaster and the calibrator.
Change of the version message in CL.
Fixed
Fix of format errors in the GFS urls.
Fix of an issue related to preprocessed predictors.
Logging of the url was discarded due to formatting issues leading to crashes.
Correction of bugs related to unit tests from the calibrator.
Fix of errors related to Eigen vectors.
Minor memory leaks were removed.
Removal of compilation warnings.
Casing fixed in the netCDF files.
The logging in unit tests was improved.
Fix of display issues in the sidebar.
Simplification of the time management.
Fix of errors related to optional parameters.
Removal of false warnings.
Resolving some unit tests failures.
The precipitation predictand class has been secured for RowMajor and Colmajor.
Removing the exhaustive calibration.
Removal of intermediate results printing.
v1.1.0¶
30 Oct 2013
Added
The predictand DB is now generalized to data other than precipitation.
The Forecaster is now working with various predictands.
Addition of the option to build the Forecaster in CL without GUI.
Changed
Improvement of the CMake build process.
Better management of the NaNs during processing.
Significant changes in order to generalize the predictand DB class.
Fixed
Fix of a change in GDAL regarding GRIB2 files origin.
Changing the order of includes in the asFileNetcdf class.
Unwanted slashes in paths under Linux were removed.
The viewer is now building again.
Fix of some bugs in unit tests.
v1.0.3¶
18 Oct 2012
Added
Addition of data preloading functionality and data pointer sharing
Preprocessing of the humidity flux and other variables combination.
Addition of multithreading in the 2nd and following levels of analogy.
Addition of functionalities to the threads manager.
Handling of the NCEP reanalysis 2 dataset.
Handling of the NOAA OI-SST dataset and addition of adapted criteria.
Addition of the possibility to account for an axis shift in the predictor dataset.
Addition of the others predictand and creation of a generic instance function.
Addition of an option to stop calculation when there is NaN in data.
Addition of bad allocation catching.
Changed
Some clean-up of unused code.
Simplification of the file names of intermediate results.
Better management of the threads.
Improvement of the multithreading option management.
Better clean-up after processing.
Addition of typedefs.
Creation of 2 separate log files for the viewer and the forecaster.
Improvement of the CMake files.
Small improvements to the time series plots.
Insertion of many supplementary assertions.
Clean-up of config paths default values.
Fixed
Addition of a critical section on the config pointer.
Addition of critical sections for TiCPP.
Addition of critical sections for NetCDF.
Coordinates automatic fix was bugged in the parameters class.
Fix of a bug when trying to sort array with size of 1.
Bug fix in temporary file names creation.
Bug fixed in the enumeration of units
NetCDF file class may have badly estimated the array size.
Fix of memory filling by logging in the time array class.
v1.0.2¶
27 Jan 2012
Added
Better control of the log targets in the command-line mode.
Changed
Data import from netCDF files is less sensitive to the data type.
Much faster import of forecast files.
Fixed
The forecasting launch from the viewer has been fixed.
Removal of the message box in the CL forecast.
v1.0.1¶
22 Nov 2011
Added
Export of forecast text files from the time series plot.
Possibility to cancel the current forecast processing.
Changed
Faster check of previously existing forecast files: load predictand DB only when needed.
Change from q30 to q20 in the precipitation distribution
Display of the considered quantile and return period for the alarms panel
Better frame size restoration with maximization detection.
Fixed
An error in the proxy port was fixed.
Preference « /Plot/PastDaysNb » was sometimes 3 or 5. Set 3 everywhere.
Do not load the same past forecasts twice in time series plots.
v1.0.0¶
09 Nov 2011
First official release
Le Forecaster¶
Cette section contient la documentation relative à AtmoSwing Forecaster. Ce document peut également être téléchargé au format pdf ou epub en utilisant le menu en bas à gauche.
Le manuel du Forecaster est divisé en plusieurs rubriques :
Utilisation¶
Le Forecaster permet de calculer une méthode d’analogues basée sur les dernières sorties PNT (NWP) disponibles ou pour une date donnée. Le calcul de la prévision en temps réel peut être effectué par un ordinateur standard sans ressources spécifiques. La prévision peut être exécutée à la demande par le biais d’une interface utilisateur graphique (GUI) ou peut être automatisée par l’utilisation d’une interface en ligne de commande (CLI). Ces deux aspects sont expliqués ci-après.
Par défaut, le Forecaster traite la dernière prévision disponible. Cependant, il peut également calculer une prévision pour un jour donné dans le passé, à condition que les sorties PNT (NWP) soient disponibles localement ou à distance, ou il peut être exécuté pour traiter les x derniers jours. Ces options peuvent également être exécutées une fois par jour par un gestionnaire de tâches pour combler d’éventuelles lacunes dans les jours précédents. Si les prévisions sont déjà présentes, aucune ressource informatique n’est utilisée.
Un fichier batch peut être fourni à l’interface graphique (GUI) ou en ligne de commande (CLI). Il contient les chemins des données et d’exportation ainsi que les méthodes d’analogues à appliquer (définies dans les fichiers de paramètres xml). Des tâches automatiques peuvent ainsi exécuter successivement le Forecaster avec différentes options, par exemple pour différentes régions. Les résultats peuvent être optionellement sauvegardés dans différents répertoires.
Exigences¶
Le Forecaster a besoin :
Sorties¶
Le Forecaster produit des fichiers NetCDF compressés contenant :
Les valeurs du prédicand pour les différentes échéances d’exécution
Les dates analogues
Les valeurs des critères d’analogie
Les dates cibles (échéances)
Le nombre d’analogues pour les différentes échéances
Quelques valeurs de référence (par exemple, les précipitations pour différentes périodes de retour)
Quelques métadonnées de la station (ID, nom, coordonnées, altitude)
Quelques informations sur les prédicteurs utilisés ainsi que sur les fenêtres spatiales
Il existe un fichier par variante de la méthode des analogues contenant les données de toutes les stations de la base de données.
Certains exports peuvent également être générés (par exemple, des fichiers synthétiques xml ou csv) pour faciliter l’intégration de données synthétiques sur une plateforme web, par exemple.
Les fichiers sont enregistrés dans une structure de répertoire basée sur la date (par exemple, 2019/04/23). Le Viewer suit les mêmes règles pour rechercher automatiquement les nouvelles prévisions. Le répertoire de sortie peut être synchronisé à l’aide d’un client de partage de fichiers pour distribuer les prévisions.
Interface utilisateur graphique¶
Cet outil permet d’effectuer les actions suivantes :
Traiter la dernière prévision ou pour une date donnée
Définir la liste des méthodes à exécuter automatiquement (également en mode ligne de commande)

La barre d’outils permet d’effectuer les actions suivantes :
Lancer la prévision pour la date et l’heure choisies.
Arrêter les calculs en cours.
Définir les préférences.
Pour effectuer une prévision, il faut :
Choisir la date dans le calendrier et l’heure en dessous. Au démarrage du logiciel, la date et l’heure sont réglées sur les valeurs actuelles. L’icône
permet de mettre à jour les valeurs actuelles.
Lancez le calcul de la prévision en cliquant sur l’icône
dans la barre d’outils.
Les méthodes d’analogues traitées sont celles listées dans la moitié inférieure de l’interface. Les méthodes peuvent différer en termes de structure ou de paramètres, par exemple pour être adaptées à une sous-région. Les méthodes sont exécutées l’une après l’autre. Une icône signifie que le modèle est en cours de calculs,
que les calculs ont été effectués avec succès et
que la prévision a échoué pour cette méthode.
Définir la liste des méthodes¶
La liste des méthodes d’analogues peut être complétée, ou des méthodes peuvent être supprimées. Une méthode est ici un paramétrage spécifique d’une méthode d’analogue optimale pour une échéance ou une région. Elle est représentée dans l’interface graphique par le choix d’un fichier de paramètres. Une entrée peut être supprimée à l’aide de l’icône , et de nouvelles entrées peuvent être ajoutées à l’aide de l’icône
située sous la liste.
Les entrées peuvent être modifiées en cliquant sur l’icône . Une boîte de dialogue apparaît pour définir le nom du fichier de paramètres (uniquement le nom, pas le chemin d’accès complet). Le fichier de paramètres doit être situé dans le répertoire défini dans les préférences. Il s’agit d’un fichier XML qui peut être édité avec un éditeur de texte. La structure du fichier est décrite dans la section fichier de paramètres. Si le fichier n’est pas trouvé, l’icône
est affichée. L’icône
permet d’afficher la description du fichier de paramètres dans une info-bulle. L’icône
permet d’afficher le contenu du fichier de paramètres dans une nouvelle fenêtre (le contenu ne peut pas être édité).
Avertissement
Lorsque la liste des méthodes a été modifiée et qu’elle doit être utilisée par défaut, il est nécessaire de la sauvegarder (menu “Fichier / Enregistrer le fichier batch”) ; sinon, la liste sera réinitialisée au redémarrage du logiciel.
Interface en ligne de commande¶
Le Forecaster dispose également d’une interface en ligne de commande, qui permet d’automatiser les prévisions sur un serveur. Une tâche planifiée peut alors être ajoutée sur un serveur (ex : Task Scheduler sous Windows ou tâche Cron sous Linux). Les options sont les suivantes :
- -h, --help
Afficher l’aide des options en ligne de commande
- -c, --config
Configurer le Forecaster
- -v, --version
Afficher la version du logiciel
- -f, --batch-file=<file>
Fichier batch à utiliser pour la prévision (chemin complet)
- -n, --forecast-now
Exécuter la prévision pour les dernières données disponibles
- -p, --forecast-past=<nb_days>
Exécuter les prévisions pour le nombre donné de jours passés
- -d, --forecast-date=<YYYYMMDDHH>
Exécuter les prévisions pour une date donnée
- -l, --log-level=<n>
Définir le niveau du journal (0 : minimum, 1 : erreurs, 2 : avertissements (par défaut), 3 : verbeux)
- --proxy=<host[:port]>
Utiliser le proxy sur le port donné
- --proxy-user=<user[:password]>
Utilisateur et mot de passe du proxy
Image Docker¶
Une image Docker est disponible sur DockerHub : https://hub.docker.com/r/atmoswing/forecaster
Obtenez-le avec : docker pull atmoswing/forecaster
Le conteneur docker pour AtmoSwing Forecaster utilise les mêmes options que l’interface en ligne de commande (à l’exception de l’option --config
). Cependant, différents répertoires doivent être montés dans le conteneur docker pour permettre à AtmoSwing d’accéder aux données et de sauvegarder les résultats.
La manière recommandée d’utiliser le conteneur docker est de créer un fichier docker-compose. Un exemple est fourni ci-dessous :
version: "3"
services:
atmoswing_forecaster:
container_name: forecaster
image: "atmoswing/forecaster:latest"
working_dir: /app/home
user: "1000:1000"
volumes:
- /home/atmoswing/:/app/mount/
- /home/atmoswing/scratch/home:/app/home/
- /home/atmoswing/scratch/tmp:/tmp/
command: -f /app/mount/params/batch-file.xml -n
environment:
HOME: /app/home
ECCODES_DEFINITION_PATH: /usr/share/eccodes/definitions
network_mode: bridge
Ensuite, le fichier batch doit contenir les répertoires montés dans le conteneur docker. Si vous avez modifié les répertoires cibles ci-dessus, vous devez également les adapter ci-dessous. Le fichier batch doit ressembler à ça :
<?xml version="1.0" encoding="UTF-8"?>
<atmoswing version="1.0" target="forecaster">
<forecasts_output_directory>/app/mount/forecasts</forecasts_output_directory>
<exports_output_directory>/app/mount/forecasts</exports_output_directory>
<parameters_files_directory>/app/mount/params</parameters_files_directory>
<predictors_archive_directory>/app/mount/predictors/archive/NR1</predictors_archive_directory>
<predictors_realtime_directory>/app/mount/predictors/realtime/GFS</predictors_realtime_directory>
<predictand_db_directory>/app/mount/predictands</predictand_db_directory>
<export_synthetic_xml>0</export_synthetic_xml>
<forecasts>
<filename>2Z_Alpes_du_Nord_24h.xml</filename>
<filename>2Z-2MI_Alpes_du_Nord_24h.xml</filename>
<filename>2Z_Alpes_du_Nord_6h.xml</filename>
<filename>2Z-2MI_Alpes_du_Nord_6h.xml</filename>
</forecasts>
</atmoswing>
Préférences¶
La fenêtre des préférences peut être ouvert à partir du menu Options / Préférences de l’interface principale ou à l’aide d’un bouton de la barre d’outils. Les options liées au fichier batch sont sauvegardées dans le fichier batch lui-même, tandis que les autres options sont sauvegardées dans le fichier de préférences de l’utilisateur. Les préférences sont sauvegardées à la fermeture du logiciel et sont automatiquement chargées au démarrage du logiciel. AtmoSwing cherchera d’abord un fichier de préférences dans le même répertoire que l’exécutable, puis dans le répertoire de l’utilisateur.
Propriétés du fichier batch¶
Différents répertoires doivent être spécifiés pour les prévisions opérationnelles :
Répertoire contenant les fichiers de paramètres : contient les fichiers de paramètres xml (définis par les paramètres de la méthode)
Répertoire contenant la base de données des prédictants : contient le fichier NetCDF généré à partir des données des prédictants.
Répertoire contenant les archives de prédicteurs : prédicteur décrivant les situations candidates (par exemple réanalyses).
Répertoire pour enregistrer les variables prédicteurs prévues : les sorties du modèle PNT (NWP) opérationnel. Des sous-répertoires sont automatiquement créés pour chaque date selon une structure année/mois/jour (respectivement \ sous Windows).
Répertoire pour enregistrer les sorties de la prévision (NetCDF) : emplacement où les résultats sont stockés. Des sous-répertoires sont également générés pour chaque date.
Répertoire pour enregistrer des exportations de prévisions (xml/csv) : emplacement où le fichier xml de synthèse est enregistré.
En outre, le format d’exportation peut être sélectionné (par exemple, XML complet ou CSV réduit).

Options générales¶
Langue¶
La langue peut être modifiée à partir de la liste déroulante. Le changement est effectif après le redémarrage du logiciel.

Options du journal (log)¶
Les préférences de journal contrôlent l’affichage de la fenêtre de journal et le niveau (importance) des messages rapportés :
Erreurs uniquement - recommandé tant que tout se passe comme prévu.
Erreurs et avertissements - certains avertissements permettent d’être vigilant en cas de problème. Cependant, il peut y avoir des avertissements même pendant un fonctionnement normal.
Verbose - toutes les opérations sont signalées, ce qui représente une quantité inutile d’informations lors d’une opération régulière. Par conséquent, des messages importants peuvent être cachés dans un grand nombre de messages. Cette option n’est utile que pour identifier les endroits où AtmoSwing rencontre des problèmes.

Proxy Internet¶
La configuration du proxy contient les éléments suivants :
Activation du proxy - si nécessaire.
Propriétés du proxy - l’adresse du proxy, le port, le nom d’utilisateur et le mot de passe.

Options des librairies¶
Le chemin d’accès aux définitions d’ecCodes peut être spécifié. Ces fichiers sont utilisés pour décoder les fichiers GRIB. Le chemin par défaut est automatiquement défini lors de l’installation.

Options avancées¶
Les options avancées sont configurées automatiquement et n’ont généralement pas besoin d’être modifiées.
Options de l’interface utilisateur graphique (GUI)¶
Options permettant de contrôler le comportement de l’interface et ses moyens de communication avec l’utilisateur. Permet de gagner du temps de calcul en désactivant les boîtes de dialogue. Les choix sont les suivants :
Silencieux - aucune boîte de dialogue n’est affichée. L’utilisateur doit donc garder un œil sur la fenêtre de journal pour détecter toute erreur. Cette option n’est utile que pour les calculs très intensifs.
Standard - recommandé pour une utilisation régulière.
Verbose - un peu plus verbeux que l’option Standard.

Téléchargement des prédicteurs¶
Options pour le téléchargement automatique du prédicteur. Le « nombre maximum de pas de temps précédents si le téléchargement échoue » correspond au nombre de tentatives de récupération des données émises précédemment si les données souhaitées ne peuvent pas être téléchargées ; ce nombre doit être supérieur à 2 pour assurer le bon fonctionnement du Forecaster. En effet, les dernières sorties de la PNT ne sont jamais accessibles instantanément, mais après un certain délai. Dans ce cas, les données disponibles les plus récentes doivent être utilisées.

Options avancées¶
Différentes options permettent de contrôler le comportement du logiciel :
Activer ou désactiver la réactivité de l’interface graphique. Cette option doit toujours être activée pour une utilisation régulière.
Autoriser les instances multiples du Forecaster.

Multithreading¶
Options pour l’utilisation de plusieurs threads :
Autoriser le multithreading - permet un gain de performance pour les calculs (recommandé).
Nombre maximal de threads - à choisir en fonction du CPU de l’ordinateur. Le logiciel propose automatiquement le nombre optimal de threads pour l’ordinateur utilisé.
Priorité des threads - permet de définir la priorité des threads en compétition avec les autres processus en cours.

Options de calculs¶
Ces options influencent la manière dont la recherche d’analogues est effectuée, ce qui n’a aucun impact sur les résultats, mais uniquement sur le temps de calcul. Les choix sont les suivants :
Multithreaded - pour autant que l’ordinateur possède au moins deux processeurs. Il s’agit de la version la plus rapide.
Standard - cette option est plus lente que la précédente car elle utilise un seul thread.

Chemins d’accès spécifiques à l’utilisateur¶
Certains chemins sont définis automatiquement en fonction du système d’exploitation : le répertoire de travail, le fichier journal et le fichier de préférences.

Fichier de paramètres du Forecaster¶
Les fichiers de paramètres pour le Forecaster sont basés sur le fichier de paramètres générique pour AtmoSwing, mais comportent des éléments spécifiques pour la prévision opérationnelle, comme détaillé ci-dessous. Un exemple complet est fourni en bas de page.
Nœud racine¶
La propriété target
du nœud racine doit être forecaster
.
<atmoswing version="1.0" target="forecaster">
Contenu “time_properties”¶
La propriété <time_properties>
n’a pas d’élément <time_array_target>
, mais un élément <lead_time_days>
listant les échéances (en jours) à calculer.
<time_properties>
...
<lead_time>
<lead_time_days>0,1,2,3,4,5</lead_time_days>
</lead_time>
...
</time_properties>
Contenu “analog_dates”¶
Le contenu de <analog_dates>
est en grande partie similaire à la structure du fichier des paramètres de base. Les différences sont les suivantes :
<analogs_number>
: Le nombre d’analogues à extraire n’est pas un nombre unique comme dans le fichier de paramètres de base, mais une valeur doit être fournie pour chaque échéance. Le nombre d’analogues à extraire peut donc augmenter avec l’échéance pour tenir compte de l’incertitude croissante des sorties de la PNT.
Pour la prévision opérationnelle, deux ensembles de données prédicteurs sont nécessaires : les sorties de la PNT et les données d’archive :
<realtime_dataset_id>
: Jeu de données des sorties PNT (NWP)<realtime_data_id>
: Nom de la variable dans le jeu de données des sorties PNT<archive_dataset_id>
: Jeu de données d’archive<archive_data_id>
: Nom de la variable dans les données d’archive
<analog_dates>
<analogs_number>50,50,70,110,230,490</analogs_number>
<predictor>
<realtime_dataset_id>NWS_GFS_Forecast</realtime_dataset_id>
<realtime_data_id>hgt</realtime_data_id>
<archive_dataset_id>NCEP_Reanalysis_v1</archive_dataset_id>
<archive_data_id>hgt</archive_data_id>
...
</predictor>
...
</analog_dates>
Exemple complet¶
Exemple d’un fichier de paramètres pour le Forecaster :
<?xml version="1.0" encoding="UTF-8" ?>
<atmoswing version="1.0" target="forecaster">
<description>
<method_id>PC-AZ4o-AHI2o</method_id>
<method_id_display>Humidité optimisée</method_id_display>
<specific_tag>Cretes_sud</specific_tag>
<specific_tag_display>Crêtes du sud</specific_tag_display>
<description>Analogie de circulation atmopshérique humidité optimisée</description>
</description>
<time_properties>
<archive_period>
<start_year>1961</start_year>
<end_year>2008</end_year>
</archive_period>
<lead_time>
<lead_time_days>0,1,2,3,4,5</lead_time_days>
</lead_time>
<time_step>24</time_step>
<time_array_analogs>
<time_array>days_interval</time_array>
<interval_days>60</interval_days>
<exclude_days>60</exclude_days>
</time_array_analogs>
</time_properties>
<analog_dates>
<analogs_number>50,50,70,110,230,490</analogs_number>
<predictor>
<realtime_dataset_id>NWS_GFS_Forecast</realtime_dataset_id>
<realtime_data_id>hgt</realtime_data_id>
<archive_dataset_id>NCEP_Reanalysis_v1</archive_dataset_id>
<archive_data_id>hgt</archive_data_id>
<level>400</level>
<time>18</time>
<spatial_window>
<grid_type>regular</grid_type>
<x_min>2.5</x_min>
<x_points_nb>5</x_points_nb>
<x_step>2.5</x_step>
<y_min>42.5</y_min>
<y_points_nb>4</y_points_nb>
<y_step>2.5</y_step>
</spatial_window>
<criteria>S1</criteria>
<weight>0.33</weight>
</predictor>
<predictor>
<realtime_dataset_id>NWS_GFS_Forecast</realtime_dataset_id>
<realtime_data_id>hgt</realtime_data_id>
<archive_dataset_id>NCEP_Reanalysis_v1</archive_dataset_id>
<archive_data_id>hgt</archive_data_id>
<level>700</level>
<time>24</time>
<spatial_window>
<grid_type>regular</grid_type>
<x_min>2.5</x_min>
<x_points_nb>6</x_points_nb>
<x_step>2.5</x_step>
<y_min>42.5</y_min>
<y_points_nb>2</y_points_nb>
<y_step>2.5</y_step>
</spatial_window>
<criteria>S1</criteria>
<weight>0.21</weight>
</predictor>
<predictor>
<realtime_dataset_id>NWS_GFS_Forecast</realtime_dataset_id>
<realtime_data_id>hgt</realtime_data_id>
<archive_dataset_id>NCEP_Reanalysis_v1</archive_dataset_id>
<archive_data_id>hgt</archive_data_id>
<level>850</level>
<time>12</time>
<spatial_window>
<grid_type>regular</grid_type>
<x_min>-2.5</x_min>
<x_points_nb>9</x_points_nb>
<x_step>2.5</x_step>
<y_min>40</y_min>
<y_points_nb>4</y_points_nb>
<y_step>2.5</y_step>
</spatial_window>
<criteria>S1</criteria>
<weight>0.24</weight>
</predictor>
<predictor>
<realtime_dataset_id>NWS_GFS_Forecast</realtime_dataset_id>
<realtime_data_id>hgt</realtime_data_id>
<archive_dataset_id>NCEP_Reanalysis_v1</archive_dataset_id>
<archive_data_id>hgt</archive_data_id>
<level>1000</level>
<time>30</time>
<spatial_window>
<grid_type>regular</grid_type>
<x_min>0</x_min>
<x_points_nb>8</x_points_nb>
<x_step>2.5</x_step>
<y_min>37.5</y_min>
<y_points_nb>5</y_points_nb>
<y_step>2.5</y_step>
</spatial_window>
<criteria>S1</criteria>
<weight>0.22</weight>
</predictor>
</analog_dates>
<analog_dates>
<analogs_number>24,24,34,54,164,344</analogs_number>
<predictor>
<preprocessing>
<preprocessing_method>HumidityIndex</preprocessing_method>
<preprocessing_data>
<realtime_dataset_id>NWS_GFS_Forecast</realtime_dataset_id>
<realtime_data_id>rhum</realtime_data_id>
<archive_dataset_id>NCEP_Reanalysis_v1</archive_dataset_id>
<archive_data_id>rhum</archive_data_id>
<level>600</level>
<time>18</time>
</preprocessing_data>
<preprocessing_data>
<realtime_dataset_id>NWS_GFS_Forecast</realtime_dataset_id>
<realtime_data_id>prwtr</realtime_data_id>
<archive_dataset_id>NCEP_Reanalysis_v1</archive_dataset_id>
<archive_data_id>prwtr</archive_data_id>
<level>0</level>
<time>18</time>
</preprocessing_data>
</preprocessing>
<spatial_window>
<grid_type>regular</grid_type>
<x_min>5</x_min>
<x_points_nb>3</x_points_nb>
<x_step>2.5</x_step>
<y_min>45</y_min>
<y_points_nb>1</y_points_nb>
<y_step>2.5</y_step>
</spatial_window>
<criteria>RMSE</criteria>
<weight>0.39</weight>
</predictor>
<predictor>
<preprocessing>
<preprocessing_method>HumidityIndex</preprocessing_method>
<preprocessing_data>
<realtime_dataset_id>NWS_GFS_Forecast</realtime_dataset_id>
<realtime_data_id>rhum</realtime_data_id>
<archive_dataset_id>NCEP_Reanalysis_v1</archive_dataset_id>
<archive_data_id>rhum</archive_data_id>
<level>700</level>
<time>12</time>
</preprocessing_data>
<preprocessing_data>
<realtime_dataset_id>NWS_GFS_Forecast</realtime_dataset_id>
<realtime_data_id>prwtr</realtime_data_id>
<archive_dataset_id>NCEP_Reanalysis_v1</archive_dataset_id>
<archive_data_id>prwtr</archive_data_id>
<level>0</level>
<time>12</time>
</preprocessing_data>
</preprocessing>
<spatial_window>
<grid_type>regular</grid_type>
<x_min>5</x_min>
<x_points_nb>3</x_points_nb>
<x_step>2.5</x_step>
<y_min>45</y_min>
<y_points_nb>2</y_points_nb>
<y_step>2.5</y_step>
</spatial_window>
<criteria>RMSE</criteria>
<weight>0.61</weight>
</predictor>
</analog_dates>
<analog_values>
<predictand>
<database>Precipitation-Daily-Station-MeteoSwiss-Rhone.nc</database>
<station_ids>27,43,44</station_ids>
</predictand>
</analog_values>
</atmoswing>
Le Viewer¶
Cette section contient la documentation pour AtmoSwing Viewer. Ce document peut également être téléchargé au format pdf ou epub en utilisant le menu en bas à gauche.
Le manuel du Viewer est divisé en plusieurs rubriques :
Utilisation¶
Le Viewer s’appuie sur des « espaces de travail » (workspaces ; définis dans des fichiers xml), où sont spécifiés le chemin d’accès aux fichiers de prévision, les couches SIG et d’autres options d’affichage. Il est ainsi possible de passer rapidement d’une région à l’autre.
Pour une région donnée, les prévisions peuvent être séparées/rassemblées sur la base d’un identifiant spécifié dans les fichiers de paramètres. (<method_id>
). Le Viewer gère ces informations de la manière suivante :
<method_id>
: tous les fichiers de prévision ayant le même<method_id>
seront agrégés dans le Viewer et étiquetés selon<method_id_display>
.<specific_tag>
: toutes les méthodes spécifiques à une sous-région (définies par<specific_tag>
et étiquetées selon<specific_tag_display>
) mais ayant le même<method_id>
seront répertoriées sous la même catégorie. Ces prévisions spécifiques pour une sous-région/bassin sont définies par des paramètres spécifiques et ont donc des dates analogues qui peuvent différer de celles des autres sous-régions. Lorsque l’une de ces sous-régions est sélectionnée dans le Viewer, la prévision pour cette méthode spécifique est affichée et les valeurs de précipitations pour les autres sous-régions (mais pour la même méthode) sont grisées. Lorsque l’en-tête de la liste est sélectionnée (c’est-à-dire la méthode), un résumé des prévisions optimales pour chaque sous-région est affiché (c’est-à-dire avec des dates analogues qui peuvent différer d’une sous-région à l’autre).
Interface principale¶
L’interface d’AtmoSwing Viewer est présentée ci-dessous. Il permet de visualiser les fichiers produits par le Forecaster. Les prévisions sont d’abord présentées dans l’interface principale sur une carte. Différents graphiques sont ensuite disponibles pour afficher plus de détails.

La barre d’outils permet d’effectuer les actions suivantes :
Ouvrir un fichier de prévisions
Sélectionner une station sur la carte
Zoom avant
Zoom arrière
Déplacer la carte
Ajuster la carte à toutes les stations
Ouvrir les graphiques des distributions
Ouvrir la liste des analogues
Ouvrir la carte des prédicteurs
Ouvrir les préférences
Il est possible d’ouvrir plusieurs fichiers de prévisions, mais ils doivent avoir la même date de référence (échéance de base). Si des prévisions correspondant à une autre date (ou heure) sont déjà ouvertes, elles seront fermées.
La première visualisation est un résumé des prochaines échéances (figure ci-dessous). Une bande circulaire avec une case par échéance est affichée à l’emplacement de chaque station. Les couleurs attribuées à chaque tranche illustrent la valeur attendue pour l’échéance en question. Cette représentation donne un aperçu rapide des jours à venir et permet d’identifier facilement un événement possible. La même carte peut également être affichée pour une échéance spécifique (figure ci-dessus). Le choix de l’échéance s’effectue à l’aide du curseur situé au-dessus de la carte.

AtmoSwing Viewer offre la possibilité d’afficher des prévisions pour des pas de temps infra-journaliers. Les utilisateurs peuvent visualiser simultanément des prévisions pour différents pas de temps. L’exemple ci-dessous montre une combinaison de pas de temps journaliers et de pas de temps de 6 heures. Lorsqu’une prévision infrajournalière est ouverte, l’interface s’adapte en conséquence en introduisant des sous-divisions dans la sélection de l’échéance, le panneau des alarmes et les bandes circulaires sur la carte.

Affichage des série temporelles¶
Lorsqu’une station est sélectionnée (sur la carte ou dans la liste déroulante de la barre latérale), le graphique de la série temporelle attendue s’affiche (figure ci-dessous). Ce graphique correspond à la méthode sélectionnée lorsque l’on clique sur la station. Les options d’affichage (dans le panneau supérieur gauche) sont les suivantes :
Les trois quantiles classiques (20%, 60%, 90%) sous forme de lignes bleues épaisses.
Chaque dixième de quantile comme surface grise
Toutes les valeurs analogues sous forme de petites croix grises
Les dix meilleurs analogues sont représentés par des croix jaunes - orange - rouges. Les couleurs sont proportionnelles aux rangs des analogues. Le rouge correspond à la meilleure analogue et le jaune au dixième rang.
Les cinq meilleurs analogues selon le même principe.
La valeur pour une période de retour de dix ans sous la forme d’une ligne rouge.
Les valeurs des différentes périodes de retour.
Traces des prévisions précédentes.
Le panneau inférieur gauche est la liste des prévisions précédentes. Celles-ci sont automatiquement importées lors de l’affichage du graphique.

Les séries temporelles peuvent également être affichées pour des pas de temps infra-journaliers, comme dans l’exemple ci-dessous pour une prévision à pas de temps de 6 heures. Les options d’affichage sont les mêmes que pour les pas de temps journaliers.

Affichage des distributions¶
Les distributions des prédictants sont accessibles via le bouton de la barre d’outils. La fenêtre permet de tracer la distribution de toutes les analogues par rapport aux 5 ou 10 meilleures (figure ci-dessous). Les options d’affichage sont similaires à celles des séries temporelles (section précédente). La méthode, la station et l’échéance doivent être sélectionnés dans la partie supérieure de la fenêtre.

La distribution du critère d’analogie est également disponible dans la même fenêtre par l’onglet situé au-dessus du graphique (Figure ci-dessous). Cette distribution permet d’identifier d’éventuelles discontinuités dans les valeurs des critères et ainsi d’accroître la confiance dans les meilleures analogues.

Affichage des dates analogues¶
Les détails des dates analogues et les valeurs de critère et de prédictant qui leur sont associées (figure ci-dessous) sont disponibles via le bouton de la barre d’outils. La méthode, la station et l’échéance doivent être sélectionnés dans la partie supérieure de la fenêtre. Il est possible de trier la liste par chacune des colonnes en cliquant dessus. Le premier clic classe les valeurs par ordre croissant et le second par ordre décroissant.

Affichage des champs météorologiques (prédicteur)¶
Les cartes des champs de prédicteurs (figure ci-dessous) sont accessibles via le bouton de la barre d’outils. Cette carte permet de comparer les variables prédictives pour la situation cible et les dates analogues. Les options sont les suivantes :
La méthode, la configuration et les prédicteurs doivent être sélectionnés dans le panneau de gauche.
L’échéance et la date analogue sont sélectionnées au-dessus des cartes.
Les échelles de couleurs et la navigation sont synchronisées entre les deux cartes. La synchronisation de la navigation peut être désactivée dans le menu Outils (synchroniser les outils).
Les outils de navigation sont les mêmes que pour l’interface principale.
Un outil supplémentaire
permet d’afficher des marques sur les deux cartes afin de comparer l’emplacement de certains éléments.
Chaque panneau peut être masqué pour n’afficher qu’une seule carte à l’aide des boutons de basculement situés dans l’espace entre les cartes.
Les palettes de couleurs peuvent être modifiées dans les préférences.
Le chemin d’accès aux données du prédicteur doit être spécifié dans les préférences.

Espaces de travail (workspace)¶
AtmoSwing Viewer s’appuie sur des espaces de travail (workspaces) pour permettre de changer de région ou de configuration. Un espace de travail est un fichier xml contenant les chemins d’accès aux couches SIG et leurs options de rendu, ainsi que l’emplacement des fichiers de prévision et d’autres propriétés qui peuvent être définies dans les préférences.
Le menu Fichier permet de:
Ouvrir un espace de travail
Sauvegarder l’espace de travail
Enregistrer l’espace de travail sous un autre nom
Créer un nouvel espace de travail
La création d’un nouvel espace de travail est guidée par un assistant qui permet de définir :
Emplacement du fichier de l’espace de travail
Chemin d’accès au répertoire des prévisions
La carte de base du projet
Les options de la carte de base sont les suivantes :
Couches personnalisées
Terrain de Google maps
Carte de Google maps
Carte de OpenStreetMap
Carte d’ArcGIS Mapserver
Images satellite de Google maps
Images satellite de VirtualEarth
Il n’est pas nécessaire de modifier directement le fichier de l’espace de travail. Les modifications peuvent être apportées par l’intermédiaire de l’interface et l’espace de travail peut être enregistré à nouveau. Sa structure est la suivante :
<?xml version="1.0" encoding="UTF-8"?>
<atmoswing version="1.0" target="viewer">
<coordinate_system>EPSG:21781</coordinate_system>
<forecast_directory>D:\_OwnCloud\AtmoSwing\CH-VS</forecast_directory>
<colorbar_max_value>50</colorbar_max_value>
<plot_time_series_past_days_nb>5</plot_time_series_past_days_nb>
<panel_alarms_return_period>10</panel_alarms_return_period>
<panel_alarms_quantile>0.900000</panel_alarms_quantile>
<layers>
<layer>
<path>D:\AtmoSwing\GIS data\CH - Rhone\regions.shp</path>
<type>vector</type>
<transparency>0</transparency>
<visibility>1</visibility>
<line_width>2</line_width>
<line_color>rgb(0, 0, 0)</line_color>
<fill_color>rgb(0, 0, 0)</fill_color>
<brush_style>106</brush_style>
</layer>
<layer>
<path>D:\AtmoSwing\GIS data\CH - Rhone\lakes.shp</path>
<type>vector</type>
<transparency>0</transparency>
<visibility>1</visibility>
<line_width>1</line_width>
<line_color>rgb(0, 128, 255)</line_color>
<fill_color>rgb(0, 128, 255)</fill_color>
<brush_style>100</brush_style>
</layer>
<layer>
<path>D:\AtmoSwing\GIS data\CH - Rhone\hydrography.shp</path>
<type>vector</type>
<transparency>0</transparency>
<visibility>1</visibility>
<line_width>1</line_width>
<line_color>rgb(0, 128, 255)</line_color>
<fill_color>rgb(0, 0, 0)</fill_color>
<brush_style>100</brush_style>
</layer>
<layer>
<path>D:\AtmoSwing\GIS data\CH - Rhone\catchments.shp</path>
<type>vector</type>
<transparency>0</transparency>
<visibility>0</visibility>
<line_width>1</line_width>
<line_color>rgb(255, 255, 0)</line_color>
<fill_color>rgb(0, 0, 0)</fill_color>
<brush_style>106</brush_style>
</layer>
<layer>
<path>D:\AtmoSwing\GIS data\CH - Rhone\SRTM\CH.tif</path>
<type>raster</type>
<transparency>0</transparency>
<visibility>1</visibility>
<line_width>0</line_width>
<line_color></line_color>
<fill_color></fill_color>
<brush_style>0</brush_style>
</layer>
</layers>
</atmoswing>
Préférences¶
La fenêtre des préférences peut être ouvert à partir du menu Options / Préférences de l’interface principale ou à l’aide d’un bouton de la barre d’outils. Les options liées à l’espace de travail sont sauvegardées dans le fichier de l’espace de travail lui-même, tandis que les autres options sont sauvegardées dans le fichier des préférences de l’utilisateur. Les préférences sont sauvegardées à la fermeture du logiciel et sont automatiquement chargées au démarrage du logiciel. AtmoSwing cherchera d’abord un fichier de préférences dans le même répertoire que l’exécutable, puis dans le répertoire de l’utilisateur.
Espace de travail (workspace)¶
Les propriétés définies sous cet onglet sont spécifiques à l’espace de travail (workspace) actuellement ouvert.
Le répertoire dans lequel les prévisions sont enregistrées doit être indiqué :

La valeur maximale du prédictant pour la gamme de couleurs définit la valeur pour laquelle le rouge est attribué lorsque les couleurs ne sont pas normalisées. La deuxième option est le nombre de jours de prévisions antérieures à afficher sous forme de traces dans les graphiques de séries temporelles. Trois à cinq jours sont recommandés.

Options du panneau d’alarme : Le panneau d’alarme affiche la valeur la plus élevée de toutes les stations par échéance et par méthode. Les options sont la période de retour pour la normalisation et le quantile à afficher. Le quantile 0.9 permet de rester vigilant quant à l’occurrence éventuelle d’événements importants.

Longueur maximale de la série temporelle à afficher : Les graphiques des séries temporelles peuvent être limités à un nombre maximum d’échéances afin de masquer les échéances trop incertaines. Cette limite doit être spécifiée en nombre de jours pour les prévisions avec un pas de temps journalier et en heures pour les prévisions avec un pas de temps infra-journalier. Par défaut, aucune limite n’est appliquée.

Chemins¶
Les chemins d’accès aux jeux de données de prédicteurs doivent être fournis, ainsi que les identifiants correspondants. Ces informations sont utilisées pour accéder aux données lors de l’affichage des cartes de prédicteurs.

Couleurs¶
Le chemin d’accès aux fichiers de la palette de couleurs peut être modifié pour chaque type de prédicteur. Les tables de couleurs par défaut sont fournies dans le répertoire d’installation d’AtmoSwing. AtmoSwing peut utiliser les fichiers .rbg et .act.

Général¶
Langue¶
La langue peut être modifiée à partir de la liste déroulante. Le changement est effectif après le redémarrage du logiciel.

Options du journal (log)¶
Les préférences de journal (log) contrôlent l’affichage de la fenêtre du journal et le niveau (importance) des messages rapportés :
Erreurs uniquement - recommandé tant que tout se passe comme prévu.
Erreurs et avertissements - certains avertissements permettent d’être vigilant en cas de problème. Cependant, il peut y avoir des avertissements même pendant un fonctionnement normal.
Verbose - toutes les opérations sont signalées, ce qui représente une quantité inutile d’informations lors d’une opération régulière. Par conséquent, des messages importants peuvent être cachés dans un grand nombre de messages. Cette option n’est utile que pour identifier les endroits où AtmoSwing rencontre des problèmes.

Proxy Internet¶
Si nécessaire, des options de proxy peuvent être fournies. La configuration du proxy contient les éléments suivants :
Activation du proxy - si nécessaire.
Propriétés du proxy - l’adresse du proxy, le port, le nom d’utilisateur et le mot de passe.

Avancé¶
Permettre l’utilisation de plusieurs instances du Viewer, par exemple pour afficher et comparer différentes prévisions dans des fenêtres distinctes.

Certains chemins sont définis automatiquement en fonction du système d’exploitation : le répertoire de travail, le fichier journal et le fichier de préférences.

Le Downscaler¶
Cette section contient la documentation relative à AtmoSwing Downscaler. Ce document peut également être téléchargé au format pdf ou epub en utilisant le menu en bas à gauche.
Le manuel du Downscaler est divisé en plusieurs rubriques :
Utilisation¶
Le Downscaler permet d’utiliser les MAs dans un contexte climatique, soit pour la reconstruction du climat, soit pour les études d’impact du changement climatique. Lorsqu’ils sont utilisés pour l’étude de l’impact du climat futur, l’utilisateur doit accorder une attention particulière aux prédicteurs sélectionnés, afin qu’ils puissent représenter le signal du changement climatique. Il s’agit d’un domaine d’application relativement nouveau des MAs.
Avertissement
Le Downscaler est le dernier ajout à AtmoSwing et n’a donc pas été testé/utilisé aussi intensivement que les autres outils. Quelques bugs peuvent être rencontrés. Veuillez les signaler comme GitHub issues ou contacter le développeur directement.
Exigences¶
Le Downscaler a besoin :
Sorties¶
Le Downscaler produit des fichiers NetCDF compressés contenant :
Les valeurs du prédictant pour la période cible
Les dates analogues
Les valeurs des critères d’analogie
Les dates cibles
Quelques valeurs de référence (par exemple, les précipitations pour différentes périodes de retour)
Quelques métadonnées de la station (ID, nom, coordonnées, altitude)
Interface utilisateur graphique¶
L’interface principale du Downscaler est la suivante.

La barre d’outils permet d’effectuer les actions suivantes :
Lancez les calculs.
Arrêter les calculs en cours.
Définir les préférences.
Ce qui est nécessaire :
La base de données des prédictants
Le répertoire contenant les prédicteurs pour la période d’archive
Le répertoire contenant les prédicteurs pour la période cible
Le répertoire pour sauvegarder les résultats de la descente d’échelle
Interface en ligne de commande¶
Le Downscaler dispose également d’une interface en ligne de commande. Les options sont les suivantes :
- -h, --help
Afficher l’aide des options en ligne de commande
- -v, --version
Afficher la version du logiciel
- -r, --run-number=<nb>
Un numéro pour le run
- -f, --file-parameters=<file>
Fichier contenant les paramètres pour la descente d’échelle
- --predictand-db=<file>
La base de données des prédictants
- --station-id=<id>
L’ID de la station du prédictant
- --dir-archive-predictors=<dir>
Répertoire contenant les archives de prédicteurs
- --dir-scenario-predictors=<dir>
Le répertoire des prédicteurs du scénario climatique
- --downscaling-method=<method>
Choix de la méthode de descente d’échelle (classique : réduction d’échelle classique)
- -n, --threads-nb=<n>
Nombre de threads à utiliser
- -s, --silent
Mode silencieux
- -l, --local
Travail dans le répertoire local
- --log-level=<n>
Définir le niveau du journal (0 : minimum, 1 : erreurs, 2 : avertissements (par défaut), 3 : verbeux)
Préférences¶
La fenêtre des préférences peut être ouvert à partir du menu Options / Préférences de l’interface principale ou à l’aide d’un bouton de la barre d’outils. Les préférences sont sauvegardées à la fermeture du logiciel et sont automatiquement chargées au démarrage du logiciel. AtmoSwing cherchera d’abord un fichier de préférences dans le même répertoire que l’exécutable, puis dans le répertoire utilisateur.
Options générales¶
Langue¶
La langue peut être modifiée à partir de la liste déroulante. Le changement est effectif après le redémarrage du logiciel.

Options du journal (log)¶
Les préférences de journal contrôlent l’affichage de la fenêtre de journal et le niveau (importance) des messages rapportés :
Erreurs uniquement - recommandé tant que tout se passe comme prévu.
Erreurs et avertissements - certains avertissements permettent d’être vigilant en cas de problème. Cependant, il peut y avoir des avertissements même pendant un fonctionnement normal.
Verbose - toutes les opérations sont signalées, ce qui représente une quantité inutile d’informations lors d’une opération régulière. Par conséquent, des messages importants peuvent être cachés dans un grand nombre de messages. Cette option n’est utile que pour identifier les endroits où AtmoSwing rencontre des problèmes.

Répertoires¶
Des répertoires différents doivent être spécifiés :
Répertoire contenant les archives de prédicteurs : prédicteur décrivant les situations candidates (par exemple reanalyses).
Répertoire contenant les prédicteurs du scenario climatique : prédicteur décrivant les situations cibles (par exemple CMIP5 ou CORDEX).
Répertoire contenant la base de données des prédictants (fichier NetCDF généré à partir des données des prédictants).

Options avancées¶
Options de l’interface utilisateur graphique (GUI)¶
Options permettant de contrôler le comportement de l’interface et ses moyens de communication avec l’utilisateur. Permet de gagner du temps de calcul en désactivant les boîtes de dialogue. Les choix sont les suivants :
Silencieux - aucune boîte de dialogue n’est affichée. L’utilisateur doit donc garder un œil sur la fenêtre de journal pour détecter toute erreur. Cette option n’est utile que pour les calculs très intensifs.
Standard - recommandé pour une utilisation régulière.
Verbose - un peu plus verbeux que l’option Standard.
Activer ou désactiver la réactivité de l’interface graphique.

Multithreading¶
Options pour l’utilisation de plusieurs threads :
Autoriser le multithreading - permet un gain de performance pour les calculs (recommandé).
Nombre maximal de threads - à choisir en fonction du CPU de l’ordinateur. Le logiciel propose automatiquement le nombre optimal de threads pour l’ordinateur utilisé.
Priorité des threads - permet de définir la priorité des threads en compétition avec les autres processus en cours.

Options de calculs¶
Ces options influencent la manière dont la recherche d’analogues est effectuée, ce qui n’a aucun impact sur les résultats, mais uniquement sur le temps de calcul. Les choix sont les suivants :
Multithreaded - pour autant que l’ordinateur possède au moins deux processeurs. Il s’agit de la version la plus rapide.
Standard - cette option est plus lente que la précédente car elle utilise un seul thread.

Répertoire de travail¶
Un répertoire supplémentaire peut être spécifié pour enregistrer des fichiers intermédiaires optionels, par exemple entre les niveaux d’analogie.

Chemins d’accès spécifiques à l’utilisateur¶
Certains chemins sont définis automatiquement en fonction du système d’exploitation : le répertoire de travail, le fichier journal et le fichier de préférences.

Fichier de paramètres du Downscaler¶
Le fichier de paramètres pour le Downscaler est basé sur le fichier de paramètres générique pour AtmoSwing, mais possède quelques éléments spécifiques détaillés ci-dessous. Un exemple complet est fourni au bas de la page.
Nœud racine¶
La propriété target
du nœud racine doit être downscaler
.
<atmoswing version="1.0" target="downscaler">
Contenu “time_properties”¶
Le contenu de <time_properties>
est globalement similaire au fichier de paramètres standard, à l’exception d’un nouvel élément <downscaling_period>
.
Élément “downscaling_period”¶
Le contenu de <downscaling_period>
définit la période cible. Il fonctionne comme l’élément <target_period>
du fichier de paramètres standard. Deux options sont possibles :
En fournissant les années :
<start_year>
: Début de la période cible (ex : 2050)<end_year>
: Fin de la période cible (ex : 2099)
Ou les dates exactes :
<start>
: Début de la période cible (ex : 01.10.2050)<end>
: Fin de la période cible (ex : 31.09.2099)
Contenu “analog_dates”¶
Le contenu de <analog_dates>
est en grande partie similaire à la structure du fichier des paramètres de base. La différence est que deux ensembles de données prédicteurs sont nécessaires :
<proj_dataset_id>
: Jeu de données climatiques<proj_data_id>
: Nom de la variable dans le jeu de données climatiques<archive_dataset_id>
: Jeu de données d’archive<archive_data_id>
: Nom de la variable dans les données d’archive
<analog_dates>
<analogs_number>30</analogs_number>
<predictor>
<proj_dataset_id>CORDEX</proj_dataset_id>
<proj_data_id>hgt</proj_data_id>
<archive_dataset_id>NCEP_Reanalysis_v1</archive_dataset_id>
<archive_data_id>hgt</archive_data_id>
...
</predictor>
...
</analog_dates>
Exemple complet¶
Exemple d’un fichier de paramètres pour le Downscaler :
<?xml version="1.0" encoding="UTF-8" ?>
<atmoswing version="1.0" target="downscaler">
<description>
<method_id>2Z</method_id>
<method_id_display>Classic circulation</method_id_display>
<specific_tag>somewhere</specific_tag>
<specific_tag_display>groupment of interest</specific_tag_display>
<description>Classic analogy on the atmospheric circulation (2 levels)</description>
</description>
<time_properties>
<archive_period>
<start_year>1962</start_year>
<end_year>2008</end_year>
</archive_period>
<downscaling_period>
<start_year>2050</start_year>
<end_year>2099</end_year>
</downscaling_period>
<time_step>24</time_step>
<time_array_target>
<time_array>simple</time_array>
</time_array_target>
<time_array_analogs>
<time_array>days_interval</time_array>
<interval_days>60</interval_days>
<exclude_days>60</exclude_days>
</time_array_analogs>
</time_properties>
<analog_dates>
<analogs_number>100</analogs_number>
<predictor>
<preload>1</preload>
<proj_dataset_id>CORDEX</proj_dataset_id>
<proj_data_id>zg500</proj_data_id>
<archive_dataset_id>NCEP_Reanalysis_v1</archive_dataset_id>
<archive_data_id>hgt</archive_data_id>
<level>500</level>
<time>24</time>
<spatial_window>
<x_min>-10</x_min>
<x_points_nb>9</x_points_nb>
<x_step>2.5</x_step>
<y_min>30</y_min>
<y_points_nb>5</y_points_nb>
<y_step>2.5</y_step>
</spatial_window>
<criteria>S1</criteria>
<weight>0.6</weight>
</predictor>
<predictor>
<preprocessing>
<preprocessing_method>SimpleGradients</preprocessing_method>
<preprocessing_data>
<proj_dataset_id>CORDEX</proj_dataset_id>
<proj_data_id>zg850</proj_data_id>
<archive_dataset_id>NCEP_Reanalysis_v1</archive_dataset_id>
<archive_data_id>hgt</archive_data_id>
<level>850</level>
<time>12</time>
</preprocessing_data>
</preprocessing>
<spatial_window>
<x_min>-15</x_min>
<x_points_nb>11</x_points_nb>
<x_step>2.5</x_step>
<y_min>35</y_min>
<y_points_nb>7</y_points_nb>
<y_step>2.5</y_step>
</spatial_window>
<criteria>S1</criteria>
<weight>0.4</weight>
</predictor>
</analog_dates>
<analog_values>
<predictand>
<station_id>40</station_id>
</predictand>
</analog_values>
</atmoswing>
L’Optimizer¶
Cette section contient la documentation relative à AtmoSwing Optimizer. Ce document peut également être téléchargé au format pdf ou epub en utilisant le menu en bas à gauche.
Le manuel de l’Optimizer est divisé en plusieurs rubriques :
Utilisation¶
L’Optimizer fournit différentes techniques d’optimisation, telles qu’une approche séquentielle semi-automatique, des simulations de Monte-Carlo et une technique d’optimisation globale utilisant des algorithmes génétiques. L’établissement d’une relation statistique entre les prédicteurs et les prédictants est gourmand en ressources informatiques car il nécessite de nombreuses évaluations sur plusieurs décennies.
La calibration des MAs est généralement effectuée dans un cadre de pronostic parfait (perfect prognosis framework). Le pronostic parfait utilise des données observées ou réanalysées pour calibrer la relation entre les prédicteurs et les prédictants. En conséquence, le pronostic parfait produit des relations qui sont aussi proches que possible des liens naturels entre les prédicteurs et les prédictants. Cependant, il n’existe pas de modèles parfaits, et même les données de réanalyse peuvent contenir des biais qui ne peuvent être ignorés. Ainsi, les prédicteurs considérés doivent être aussi robustes que possible, c’est-à-dire qu’ils doivent avoir une dépendance minimale vis-à-vis du modèle.
Une relation statistique est établie par essais et erreurs en calculant une prévision pour chaque jour d’une période de calibration. Un certain nombre de jours proches de la date cible sont exclus afin de ne prendre en compte que les jours candidats indépendants. Il est très important de valider les paramètres des MA sur une période de validation indépendante afin d’éviter une sur-paramétrisation et de s’assurer que la relation statistique est valable pour une autre période. Afin de tenir compte des changements climatiques et de l’évolution des techniques de mesure, il est recommandé d’utiliser une période de validation non continue, répartie sur l’ensemble des archives (par exemple, 1 année sur 5). Les utilisateurs d’AtmoSwing peuvent ainsi spécifier une liste d’années à mettre à part pour la validation qui sont retirées des situations candidates possibles. À la fin de l’optimisation, le score de validation est traité automatiquement. Les différents scores de vérification disponibles sont détaillés ici.
Exigences¶
L’Optimizer a besoin :
Méthodes de calibration¶
L’Optimizer propose différentes approches, énumérées ci-dessous.
Approches d’évaluation uniquement¶
Ces méthodes ne cherchent pas à améliorer les paramètres des MAs. Elles permettent certaines évaluations à l’aide des paramètres fournis. Les différents scores de vérification disponibles sont détaillés ici.
Évaluation unique : Cette approche traite la MA comme décrit dans le fichier de paramètres fourni et évalue le score défini.
Évaluation de tous les scores : Identique au précédent, mais évalue tous les scores disponibles.
Uniquement les valeurs prédictives : Ne calcule pas de score de vérification, mais calcule la MA et enregistre les valeurs analogues dans un fichier.
Uniquement les dates analogues (et les critères) : Ne calcule pas de score de vérification et n’attribue pas de valeurs du prédictant aux dates analogues. Enregistre un fichier avec uniquement les dates analogues identifiées par la MA définie.
Basé sur la calibration classique¶
La calibration classique est détaillé ici.
Calibration classique : La calibration classique
Calibration classique+ : Une variante de la calibration classique avec quelques améliorations.
Exploration de variables Classique+ : Utilisation de la calibration classique+ pour explorer systématiquement une liste de variables / niveaux / heures.
Optimisation globale¶
Algorithmes génétiques : L’optimisation utilisant des algorithmes génétiques.
Exploration aléatoire de l’espace des paramètres¶
Simulations de Monte-Carlo : Exploration de l’espace des paramètres à l’aide de simulations de Monte-Carlo. Ces simulations se sont révélées limitées en termes de capacité à trouver des jeux de paramètres raisonnables pour des MA même modérément complexes (1 à 2 niveaux d’analogie avec quelques prédicteurs).
Sorties¶
L’Optimizer produit différents fichiers :
Un fichier texte avec le meilleur jeu de paramètres résultant et le score de vérification ([…]best_parameters.txt).
Un fichier texte contenant tous les paramètres évalués et leur score de vérification correspondant ([…]tested_parameters.txt).
Un fichier xml avec les meilleurs paramètres (à utiliser par AtmoSwing Forecaster/Downscaler ; […]best_parameters.xml).
Un fichier NetCDF contenant les dates analogues (AnalogDates[…].nc) pour les périodes de calibration et de validation.
Un fichier NetCDF contenant les valeurs analogues (AnalogValues[…].nc) pour les périodes de calibration et de validation.
Un fichier NetCDF contenant les scores de vérification (Scores[…].nc) pour les périodes de calibration et de validation.
Interface utilisateur graphique¶
L’interface principale de l’Optimizer est la suivante.

La barre d’outils permet d’effectuer les actions suivantes :
Démarrer l’optimisation.
Arrêter les calculs en cours.
Définir les préférences.
Éléments nécessaires :
Sélectionnez une des méthodes de calibration
Le répertoire contenant les prédicteurs pour la période d’archive
Le répertoire pour sauvegarder les résultats
Toutes les options de la méthode de calibration sélectionnée (dans l’onglet Options ; voir ci-dessous)
Un onglet permet de définir les options de la calibration classique, de l’exploration des variables et des simulations de Monte-Carlo. Les détails des options sont donnés ici.

L’autre onglet fournit de nombreuses options pour les algorithmes génétiques. Le détail des options est donné sur la page des algorithmes génétiques.

Interface en ligne de commande¶
L’Optimizer dispose également d’une interface en ligne de commande, qui est le mode d’utilisation préférable. Les options sont les suivantes :
- -h, --help
Afficher l’aide des options en ligne de commande
- -v, --version
Afficher la version du logiciel
- -s, --silent
Mode silencieux
- -l, --local
Travail dans le répertoire local
- -n, --threads-nb=<n>
Nombre de threads à utiliser
- -g, --gpus-nb=<n>
Nombre de gpus à utiliser
- -r, --run-number=<nb>
Un numéro pour le run
- -f, --file-parameters=<file>
Fichier contenant les paramètres
- --predictand-db=<file>
La base de données des prédictants
- --station-id=<id>
L’ID de la station du prédictant
- --dir-predictors=<dir>
Le répertoire des prédicteurs
- --skip-valid
Sauter le calcul de validation
- --no-duplicate-dates
Ne pas permettre de garder plusieurs fois les mêmes dates analogues (par exemple pour les ensembles)
- --dump-predictor-data
Décharge les données du prédicteur dans des fichiers binaires pour réduire l’utilisation de la RAM
- --load-from-dumped-data
Chargement des données déchargées (binaires) du prédicteur dans la RAM (chargement plus rapide)
- --replace-nans
Option pour remplacer les NaN par -9999 (traitement plus rapide)
- --skip-nans-check
Ne pas vérifier les NaN (traitement plus rapide)
- --calibration-method=<method>
Choix de la méthode de calibration :
single
: évaluation uniqueclassic
: calibration classiqueclassicp
: calibration classique+varexplocp
: exploration des variables avec classique+montecarlo
: Simulations de Monte Carloga
: algorithmes génétiquesevalscores
: évalue tous les scoresonlyvalues
: calcule uniquement les valeurs analoguesonlydates
: calcule uniquement les dates analogues
- --cp-resizing-iteration=<int>
Classique+ : itération de redimensionnement
- --cp-lat-step=<step>
Classique+ : pas (résolution) en latitudes pour la carte de pertinence
- --cp-lon-step=<step>
Classique+ : pas (résolution) en longitudes pour la carte de pertinence
- --cp-proceed-sequentially
Classique+ : procéder de manière séquentielle
- --ve-step=<step_nb>
Exploration des variables : étape à traiter
- --mc-runs-nb=<runs_nb>
Monte Carlo : nombre de simulations
- --ga-xxxxx=<value>
Toutes les options des GAs sont décrites sur la page des algorithms génétiques
- --log-level=<n>
Définir le niveau du journal (0 : minimum, 1 : erreurs, 2 : avertissements (par défaut), 3 : verbeux)
Calibration classique¶
La procédure de calibration que nous appelons » séquentielle » ou » classique » a été élaborée par Bontron [1] (voir aussi Radanovics et al. [7] et Ben Daoud et al. [9]). Il s’agit d’une procédure semi-automatique qui optimise les fenêtres spatiales dans lesquelles les prédicteurs sont comparés et le nombre d’analogues qui est systématiquement évalué pour chaque niveau d’analogie. Les différents niveaux d’analogie (par exemple, la circulation atmosphérique ou l’indice d’humidité) sont calibrés séquentiellement. La procédure comprend les étapes suivantes [1] :
Sélection manuelle des paramètres suivants :
Variable météorologique
Niveau de pression
Fenêtre temporelle (heure de la journée)
Nombre d’analogues
Pour chaque niveau d’analogie :
Identification de la cellule unitaire la plus compétente (quatre points pour la hauteur géopotentielle lorsque l’on utilise le critère S1 et un point dans les autres cas) des données prédicteurs sur un vaste domaine. Chaque point ou cellule du domaine complet est évalué sur la base des prédicteurs du niveau d’analogie en cours.
À partir de la cellule la plus compétente, la fenêtre spatiale est élargie par itérations successives dans la direction du plus grand gain en performance jusqu’à ce qu’aucune amélioration supplémentaire ne soit possible (ou jusqu’à la fenêtre spatiale maximale spécifiée par l’utilisateur).
Le nombre d’analogues Ni, qui a été initialement fixé à une valeur arbitraire, est ensuite reconsidéré et optimisé pour le niveau d’analogie en cours.
Un nouveau niveau d’analogie peut ensuite être ajouté sur la base d’autres variables telles que l’indice d’humidité à des niveaux de pression et des heures de la journée choisis. La procédure recommence à partir de l’étape 2 (calibrage de la fenêtre spatiale et du nombre d’analogues) pour le nouveau niveau. Les paramètres calibrés pour les niveaux d’analogie précédents sont fixes et ne changent pas.
Enfin, les nombres d’analogues pour les différents niveaux d’analogie sont réévalués. Ceci est effectuée de manière itérative en faisant varier systématiquement le nombre d’analogues de chaque niveau.
Le calage est effectué par étapes successives pour un nombre limité de paramètres afin de minimiser les fonctions d’erreur ou de maximiser les scores de vérification. À l’exception du nombre d’analogues, les paramètres précédemment calibrés ne sont généralement pas réévalués. L’avantage de cette méthode est qu’elle est relativement rapide, qu’elle fournit des résultats acceptables et qu’elle est peu exigeante en matière de resources de calcul.
Calibration classique+¶
De petites améliorations ont été incorporées à cette méthode dans AtmoSwing Optimizer, avec le nom « classique+ », en permettant aux fenêtres spatiales d’effectuer d’autres mouvements, tels que :
un agrandissement dans 2 directions simultanées,
une réduction dans 1 ou 2 directions simultanées,
une expansion ou une contraction (dans toutes les directions),
un déplacement de la fenêtre (sans redimensionnement) dans 8 directions (y compris les diagonales), et enfin
tout ce qui précède, mais avec un facteur de 2, 3, ou plus. Par exemple, une augmentation de deux points de grille dans une (ou plusieurs) direction est évaluée. Cela permet de sauter une taille qui n’est peut-être pas optimale.
Ces étapes supplémentaires aboutissent souvent à des fenêtres spatiales légèrement différentes. Le gain de performance est plutôt marginal pour les réanalyses à basse résolution telles que NR-1, mais pourrait être plus conséquent pour les réanalyses à plus haute résolution en raison de la présence de minima locaux.
Algorithmes génétiques¶
La calibration séquentielle ou classique présente des limites importantes : (i) elle ne peut pas choisir automatiquement les niveaux de pression et les fenêtres temporelles (heure de la journée) pour une variable météorologique donnée, (ii) elle ne peut pas gérer les dépendances entre les paramètres et (iii) elle ne peut pas facilement gérer de nouveaux degrés de liberté. C’est pourquoi des algorithmes génétiques (AG) ont été mis en œuvre dans AtmoSwing Optimizer pour réaliser une optimisation globale des MA. Cela permet d’optimiser tous les paramètres conjointement de manière entièrement automatique et objective. Voir plus de détails dans Horton et al. [5].
Les algorithmes génétiques sont puissants mais très exigeants en termes de capacité de calcul. Ils nécessitent des milliers d’évaluations pour évoluer vers l’optimum global et doivent donc être utilisés sur une grappe de serveurs (cluster) plutôt que sur un seul ordinateur.
De nombreuses options et variantes d’opérateurs sont disponibles pour les algorithmes génétiques. Sur la base de tests systématiques détaillés dans Horton et al. [5], certaines présélections ont été établies afin de faciliter l’utilisation des algorithmes génétiques dans AtmoSwing Optimizer. Ces présélections sont listées ci-dessous, et toutes les options sont fournies plus loin.
Options générales¶
Quelques options générales sont présentées ci-dessous :
La taille de la population est le nombre d’individus qui la composent.
Le taux de la génération intermédiaire est le taux d’individus qui sont conservés après la sélection naturelle.
Les itérations pour la convergence sont le nombre de générations sans amélioration après lequel l’algorithme s’arrête.
L’utilisation de lots (batches) permet de réduire le temps de calcul en utilisant des lots de données au lieu de l’ensemble des données.
La taille du lot (batch) est le nombre de jours dans chaque lot.
Le nombre d’époques correspond au nombre de fois où l’ensemble des données est utilisé pour l’optimisation.
La taille du lot et le nombre d’époques ne sont utilisés que si l’approche pat lots est utilisée (auquel cas le nombre de générations pour la convergence n’est pas utilisé).
- --ga-pop-size=<int>
Taille de la population (par défaut 500)
- --ga-interm-gen=<0-1>
Ratio de la génération intermédiaire (par défaut 0.5)
- --ga-conv-steps=<int>
Nombre de générations pour la convergence (par défaut 30)
- --ga-use-batches=<0/1>
Utiliser des lots (batches)
- --ga-batch-size=<int>
Taille des lots (batches)
- --ga-number-epochs=<int>
Nombre d’époques si l’on utilise des lots (batches)
Présélections des opérateurs¶
De nombreuses options et variantes d’opérateurs contrôlent l’optimisation par les algorithmes génétiques. Les configurations recommandées sont prédéfinies dans des présélections.
- --ga-config=<1-5>
Présélections des opérateurs
Pour toutes les présélections, les options suivantes sont identiques : --ga-conv-steps=30
--ga-pop-size=500
--ga-interm-gen=0.5
--ga-ope-nat-sel=0
--ga-ope-coup-sel=2
--ga-ope-cross=7
--ga-cross-bin-pt-nb=2
--ga-cross-bin-share-b=1
La différence entre les présélections concerne l’opérateur de mutation. Fournir les nombres suivants (1-5) à l’option --ga-config
est équivalent à ces présélections correspondantes :
Chromosome du rayon de recherche adaptatif :
--ga-ope-mut=8
Mutation multi-échelle :
-ga-ope-mut=9
ga-mut-multi-scale-p=0.1
Mutation non uniforme (pmut=0,1, Gmr=50, w=0,1) :
--ga-ope-mut=4
--ga-mut-non-uni-p=0.1
--ga-mut-non-uni-gens=50
--ga-mut-non-uni-min-r=0.1
Mutation non uniforme (pmut=0,1, Gmr=100, w=0,1) :
--ga-ope-mut=4
--ga-mut-non-uni-p=0.1
--ga-mut-non-uni-gens=100
--ga-mut-non-uni-min-r=0.1
Mutation non uniforme (pmut=0,2, Gmr=100, w=0,1) :
--ga-ope-mut=4
--ga-mut-non-uni-p=0.2
--ga-mut-non-uni-gens=100
--ga-mut-non-uni-min-r=0.1
Chacune de ces options peut être modifiée en la spécifiant en addition de –ga-config`.
Options des opérateurs¶
Les différents opérateurs peuvent être contrôlés avec les options suivantes :
- --ga-ope-nat-sel=<0-1>
Choix de l’opérateur pour la sélection naturelle :
ratio d’élitisme (par défaut)
selection par tournoi
- --ga-ope-coup-sel=<0-4>
Choix de l’opérateur pour la sélection des couples :
appariement par rangs
aléatoire
roulette sur le rang (par défaut)
roulette sur la base des scores
tournoi de compétition
- --ga-ope-cross=<0-9>
Choix de l’opérateur pour le croisement de chromosomes :
croisement à point unique
croisement à double point
croisement à points multiples
croisement uniforme
mélange limité
croisement linéaire
croisement heuristique
croisement de type binaire (par défaut)
interpolation linéaire
interpolation libre
- --ga-ope-mut=<0-10>
Choix de l’opérateur pour la mutation :
aléatoire uniforme constante
variable aléatoire uniforme
aléatoire normale constante
variable normale aléatoire
non uniforme
taux d’auto-adaptation
rayon d’auto-adaptation
chromosome de taux d’auto-adaptation
chromosome de rayon d’auto-adaptation
multi-échelle
pas de mutation
- --ga-nat-sel-tour-p=<0-1>
Sélection naturelle - probabilité de tournoi (par défaut 0.9)
- --ga-coup-sel-tour-nb=<2/3>
Sélection des couples - candidats au tournoi (2/3) (par défaut 3)
- --ga-cross-mult-pt-nb=<int>
Croisement standard - nombre de points (par défaut 3)
- --ga-cross-blen-pt-nb=<int>
Croisement par mélange (Blending crossover) - nombre de points (par défaut 3)
- --ga-cross-blen-share-b=<1/0>
Croisement par mélange (Blending crossover) - bêta partagé (1/0) (par défaut : 1)
- --ga-cross-lin-pt-nb=<int>
Croisement linéaire - nombre de points (par défaut 2)
- --ga-cross-heur-pt-nb=<int>
Croisement heuristique - nombre de points (par défaut 2)
- --ga-cross-heur-share-b=<1/0>
Croisement heuristique - bêta partagé (1/0) (par défaut 1)
- --ga-cross-bin-pt-nb=<int>
Croisement de type binaire - nombre de points (par défaut 2)
- --ga-cross-bin-share-b=<1/0>
Croisement de type binaire - bêta partagé (1/0) (par défaut : 1)
- --ga-mut-unif-cst-p=<0-1>
Mutation uniforme - probabilité (par défaut 0.2)
- --ga-mut-norm-cst-p=<0-1>
Mutation normale - probabilité (par défaut 0.2)
- --ga-mut-norm-cst-dev=<sd>
Mutation normale - écart-type (par défaut 0.1)
- --ga-mut-unif-var-gens=<int>
Mutation uniforme variable - nb de générations (par défaut 50)
- --ga-mut-unif-var-p-strt=<0-1>
Mutation uniforme variable - probabilité de départ (par défaut 0.5)
- --ga-mut-unif-var-p-end=<0-1>
Mutation uniforme variable - probabilité de fin (par défaut 0.01)
- --ga-mut-norm-var-gens-p=<int>
Mutation uniforme variable - nb de générations pour la probabilité (par défaut 50)
- --ga-mut-norm-var-gens-d=<int>
Mutation uniforme variable - nb de générations pour l’écart-type (par défaut 50)
- --ga-mut-norm-var-p-strt=<0-1>
Mutation uniforme variable - probabilité de départ (par défaut 0.5)
- --ga-mut-norm-var-p-end=<0-1>
Mutation uniforme variable - probabilité de fin (par défaut 0.05)
- --ga-mut-norm-var-d-strt=<sd>
Mutation uniforme variable - écart-type de départ (par défaut 0.5)
- --ga-mut-norm-var-d-end=<sd>
Mutation uniforme variable - écart-type final (par défaut 0.01)
- --ga-mut-non-uni-p=<0-1>
Mutation non uniforme - probabilité (par défaut 0.1-0.2)
- --ga-mut-non-uni-gens=<int>
Mutation non uniforme - nb de générations (par défaut 50-100)
- --ga-mut-non-uni-min-r=<0-1>
Mutation non uniforme - taux minimum (par défaut 0.1)
- --ga-mut-multi-scale-p=<0-1>
Mutation multi-échelle - probabilité (par défaut 0.1)
Préférences¶
La fenêtre des préférences peut être ouvert à partir du menu Options / Préférences de l’interface principale ou à l’aide d’un bouton de la barre d’outils. Les préférences sont sauvegardées à la fermeture du logiciel et sont automatiquement chargées au démarrage du logiciel. AtmoSwing cherchera d’abord un fichier de préférences dans le même répertoire que l’exécutable, puis dans le répertoire utilisateur.
Options générales¶
Langue¶
La langue peut être modifiée à partir de la liste déroulante. Le changement est effectif après le redémarrage du logiciel.

Options du journal (log)¶
Les préférences de journal (log) contrôlent l’affichage de la fenêtre du journal et le niveau (importance) des messages rapportés :
Erreurs uniquement - recommandé tant que tout se passe comme prévu.
Erreurs et avertissements - certains avertissements permettent d’être vigilant en cas de problème. Cependant, il peut y avoir des avertissements même pendant un fonctionnement normal.
Verbose - toutes les opérations sont signalées, ce qui représente une quantité inutile d’informations lors d’une opération régulière. Par conséquent, des messages importants peuvent être cachés dans un grand nombre de messages. Cette option n’est utile que pour identifier les endroits où AtmoSwing rencontre des problèmes.

Répertoires¶
Différents répertoires doivent être spécifiés :
Répertoire contenant les archives des prédicteurs (par exemple reanalyses).
Répertoire contenant la base de données des prédictants (fichier NetCDF généré à partir des données des prédictants).

Options avancées¶
Options de l’interface utilisateur graphique (GUI)¶
Options permettant de contrôler le comportement de l’interface et ses moyens de communication avec l’utilisateur. Permet de gagner du temps de calcul en désactivant les boîtes de dialogue. Les choix sont les suivants :
Silencieux - aucune boîte de dialogue n’est affichée. L’utilisateur doit donc garder un œil sur la fenêtre de journal pour détecter toute erreur. Cette option n’est utile que pour les calculs très intensifs.
Standard - recommandé pour une utilisation régulière.
Verbose - un peu plus verbeux que l’option Standard.
Activer ou désactiver la réactivité de l’interface graphique.

Multithreading¶
Options pour l’utilisation de plusieurs threads :
Autoriser le multithreading - permet un gain de performance pour les calculs (recommandé).
Nombre maximal de threads - à choisir en fonction du CPU de l’ordinateur. Le logiciel propose automatiquement le nombre optimal de threads pour l’ordinateur utilisé.
Priorité des threads - permet de définir la priorité des threads en compétition avec les autres processus en cours.

Options de calculs¶
Ces options influencent la manière dont la recherche d’analogues est effectuée, ce qui n’a aucun impact sur les résultats, mais uniquement sur le temps de calcul. Les choix sont les suivants :
Multithreaded - pour autant que l’ordinateur possède au moins deux processeurs. Il s’agit de la version la plus rapide.
Standard - cette option est plus lente que la précédente car elle utilise un seul thread.

Répertoire de travail¶
Un répertoire supplémentaire peut être spécifié pour enregistrer des fichiers intermédiaires optionels, par exemple entre les niveaux d’analogie.

Chemins d’accès spécifiques à l’utilisateur¶
Certains chemins sont définis automatiquement en fonction du système d’exploitation : le répertoire de travail, le fichier journal et le fichier de préférences.

Scores de vérification¶
L’Optimizer dispose de différents scores de vérification. Le plus souvent utilisé pour les précipitations est le CRPS. Les options sont les suivantes :
CRPSS (Score de compétence du CRPS) :
CRPSS
Indice continu de probabilité ordonnée CRPS (« Continuous ranked probability score ») :
CRPS
Précision du CRPS :
CRPSaccuracy
Netteté du CRPS :
CRPSsharpness
Fiabilité du CRPS :
CRPSreliability
Potentiel du CRPS:
CRPSpotential
Différence absolue de la fréquence des valeurs nulles :
DF0
Proportion correcte (tableau de contingence) :
PC
Score de menace (« Threat score », tableau de contingence) :
TS
Biais (tableau de contingence) :
BIAS
Rapport de fausses alarmes (« False alarm ratio », tableau de contingence) :
FARA
Taux de réussite (« Hit rate », tableau de contingence) :
H
Taux de fausses alarmes (« False alarm rate », tableau de contingence) :
F
Score de compétence de Heidke (« Heidke skill score », tableau de contingence) :
HSS
Score de compétence de Pierce (« Pierce skill score », tableau de contingence) :
PSS
Score de compétence Gilbert (« Gilbert skill score », tableau de contingence) :
GSS
Erreur absolue moyenne :
MAE
Erreur quadratique moyenne :
MSE
Racine de l’erreur quadratique Moyenne (« Root mean squared error ») :
RMSE
Score de Brier (« Brier score ») :
BS
Score de compétence Brier :
BSS
Erreur équitable stable dans l’espace de probabilité (« Stable equitable error in probability space ») :
SEEPS
L’histogramme des rangs (diagramme de Talagrand) :
RankHistogram
Fiabilité de l’histogramme des rangs (diagramme de Talagrand) :
RankHistogrammeReliability
Fichier de paramètres de l’Optimizer¶
L’Optimizer dispose de deux types de fichiers de paramètres. Un type pour la calibration classique et classique+ (voir Fichier de paramètres de calibration classique) et un autre pour les techniques d’optimisation utilisant des algorithmes génétiques ou des simulations de Monte-Carlo (voir Fichier de paramètres d’optimisation). Cependant, certains attributs sont identiques pour les deux.
Fichier de paramètres de la calibration classique¶
Le fichier des paramètres de la calibration définit les paramètres à étalonner et la plage des valeurs autorisées. Il y a différentes méthodes possibles pour définir ces options :
minmax
(le plus utilisé) : vous devez fournir une valeurmin
du paramètre, une valeurmax
et une valeurstep
. Par exemple :
<x_min min="-10" max="10" step="0.25" method="minmax"></x_min>
array
: le contenu du nœud sera alors traité comme un vecteur. Par exemple :
<station_id method="array">1,5,6,12,35</station_id>
fixed
: ne doit pas être calibré même si des valeursmin
etmax
sont définies. Une valeur doit alors être fournie pour le paramètre.
Nœud racine¶
La propriété target
du nœud racine doit être calibrator
.
<atmoswing version="1.0" target="calibrator">
Contenu “analog_dates”¶
Le contenu de <analog_dates>
est en grande partie similaire à la structure du fichier de paramètres standard, mais les paramètres à calibrer doivent être spécifiés.
Élément “analogs_number”¶
Cet élément fait varier le nombre de situations analogues Ni à extraire, par exemple :
<analogs_number min="10" max="100" step="5" method="minmax"></analogs_number>
Élément “fenêtre spatiale”¶
Cet élément définit l’étendue de la fenêtre spatiale pour chaque prédicteur. <x_min>
et <y_min>
sont respectivement la longitude et la latitude minimales, <x_points_nb>
et <y_points_nb>
sont le nombre de points de la grille du prédicteur à utiliser sur les axes de longitude et de latitude, respectivement. <x_step>
et <y_step>
sont les résolutions longitude/latitude à utiliser. Cette fenêtre doit être définie pour chaque prédicteur.
<spatial_window>
<x_min min="-10" max="10" step="0.25" method="minmax"></x_min>
<x_points_nb min="2" max="120" step="1" method="minmax"></x_points_nb>
<x_step>0.25</x_step>
<y_min min="35" max="50" step="0.25" method="minmax"></y_min>
<y_points_nb min="2" max="90" step="1" method="minmax"></y_points_nb>
<y_step>0.25</y_step>
</spatial_window>
Exemple complet¶
<?xml version="1.0" encoding="UTF-8" ?>
<atmoswing version="1.0" target="calibrator">
<description>
<method_id>PD-A4Z</method_id>
<method_id_display>Enhanced circulation</method_id_display>
<specific_tag>CH</specific_tag>
<specific_tag_display>all stations</specific_tag_display>
<description>Enhanced analogy on the atmospheric circulation (4 levels)</description>
</description>
<time_properties>
<archive_period>
<start_year>1981</start_year>
<end_year>2010</end_year>
</archive_period>
<calibration_period>
<start_year>1981</start_year>
<end_year>2010</end_year>
</calibration_period>
<validation_period>
<years>1985, 1990, 1995, 2000, 2005, 2010</years>
</validation_period>
<time_step>24</time_step>
<time_array_target>
<time_array>simple</time_array>
</time_array_target>
<time_array_analogs>
<time_array>days_interval</time_array>
<interval_days method="fixed">60</interval_days>
<exclude_days>30</exclude_days>
</time_array_analogs>
</time_properties>
<analog_dates>
<analogs_number min="10" max="100" step="5" method="minmax"></analogs_number>
<predictor>
<preload>1</preload>
<preprocessing>
<preprocessing_method>SimpleGradients</preprocessing_method>
<preprocessing_data>
<dataset_id>ECMWF_ERA5</dataset_id>
<data_id>pressure/z</data_id>
<level>1000</level>
<time>6</time>
</preprocessing_data>
</preprocessing>
<spatial_window>
<x_min min="-10" max="10" step="0.25" method="minmax"></x_min>
<x_points_nb min="2" max="120" step="1" method="minmax"></x_points_nb>
<x_step>0.25</x_step>
<y_min min="35" max="50" step="0.25" method="minmax"></y_min>
<y_points_nb min="2" max="90" step="1" method="minmax"></y_points_nb>
<y_step>0.25</y_step>
</spatial_window>
<criteria>S1</criteria>
</predictor>
<predictor>
<preload>1</preload>
<preprocessing>
<preprocessing_method>SimpleGradients</preprocessing_method>
<preprocessing_data>
<dataset_id>ECMWF_ERA5</dataset_id>
<data_id>pressure/z</data_id>
<level>1000</level>
<time>30</time>
</preprocessing_data>
</preprocessing>
<spatial_window>
<x_min min="-10" max="10" step="0.25" method="minmax"></x_min>
<x_points_nb min="2" max="120" step="1" method="minmax"></x_points_nb>
<x_step>0.25</x_step>
<y_min min="35" max="50" step="0.25" method="minmax"></y_min>
<y_points_nb min="2" max="90" step="1" method="minmax"></y_points_nb>
<y_step>0.25</y_step>
</spatial_window>
<criteria>S1</criteria>
</predictor>
<predictor>
<preload>1</preload>
<preprocessing>
<preprocessing_method>SimpleGradients</preprocessing_method>
<preprocessing_data>
<dataset_id>ECMWF_ERA5</dataset_id>
<data_id>pressure/z</data_id>
<level>700</level>
<time>24</time>
</preprocessing_data>
</preprocessing>
<spatial_window>
<x_min min="-10" max="10" step="0.25" method="minmax"></x_min>
<x_points_nb min="2" max="120" step="1" method="minmax"></x_points_nb>
<x_step>0.25</x_step>
<y_min min="35" max="50" step="0.25" method="minmax"></y_min>
<y_points_nb min="2" max="90" step="1" method="minmax"></y_points_nb>
<y_step>0.25</y_step>
</spatial_window>
<criteria>S1</criteria>
</predictor>
<predictor>
<preload>1</preload>
<preprocessing>
<preprocessing_method>SimpleGradients</preprocessing_method>
<preprocessing_data>
<dataset_id>ECMWF_ERA5</dataset_id>
<data_id>pressure/z</data_id>
<level>500</level>
<time>12</time>
</preprocessing_data>
</preprocessing>
<spatial_window>
<x_min min="-10" max="10" step="0.25" method="minmax"></x_min>
<x_points_nb min="2" max="120" step="1" method="minmax"></x_points_nb>
<x_step>0.25</x_step>
<y_min min="35" max="50" step="0.25" method="minmax"></y_min>
<y_points_nb min="2" max="90" step="1" method="minmax"></y_points_nb>
<y_step>0.25</y_step>
</spatial_window>
<criteria>S1</criteria>
</predictor>
</analog_dates>
<analog_values>
<predictand>
<station_id min="1" max="100" step="1" method="minmax"></station_id>
</predictand>
</analog_values>
<evaluation>
<score>CRPS</score>
<time_array>simple</time_array>
</evaluation>
</atmoswing>
Fichier des paramètres pour l’optimisation¶
Le fichier des paramètres pour l’optimisation, utilisé par les algorithmes génétiques ou les simulations de Monte Carlo, définit les paramètres à optimiser et la fourchette des valeurs autorisées. Il comporte plusieurs aspects :
Définir la plage de valeurs numériques : une valeur
lowerlimit
(limite inférieure) du paramètre, une valeurupperlimit
(limite supérieure) et une valeuriteration
doivent être fournies. Par exemple :
<x_min lowerlimit="-10.5" upperlimit="10.5" iteration="0.75" lock="0"></x_min>
Définir une liste de valeurs : le contenu du nœud sera alors analysé comme un vecteur. Par exemple :
<level method="array" lock="0">0, 300, 500, 850, 1000</level>
La propriété
lock
permet de fixer une valeur qui ne sera pas optimisée même si les valeurslowerlimit
etupperlimit
sont définies. Vous devez alors fournir une valeur pour le paramètre. Cette option peut être utilisée pour désactiver temporairement la calibration d’un paramètre. Par exemple :
<time lowerlimit="0" upperlimit="30" iteration="6" lock="1">18</time>
Nœud racine¶
La propriété target
du nœud racine doit être optimizer
.
<atmoswing version="1.0" target="optimizer">
Contenu “analog_dates”¶
Le contenu de <analog_dates>
est en grande partie similaire à la structure du fichier de paramètres standard, mais les paramètres à calibrer doivent être spécifiés.
Élément “analogs_number”¶
Cet élément fait varier le nombre de situations analogues Ni à extraire, par exemple :
<analogs_number lowerlimit="5" upperlimit="80" iteration="1" lock="0"></analogs_number>
Élément “predictor”¶
Cet élément est utilisé pour définir les paramètres à étalonner en rapport avec les prédicteurs. La structure est essentiellement similaire à la structure du fichier de paramètres standard. L’option preload
spécifie que les données doivent être préchargées avant l’étalonnage, ce qui permet un gain de temps considérable. Par exemple :
Exemple :
<predictor>
<preload>1</preload>
<dataset_id>GenericNetcdf</dataset_id>
<data_id method="array" lock="0">pl/r, pl/t, pl/u, pl/v, pl/z, sfa/msl</data_id>
<level method="array" lock="0">0, 300, 500, 850, 1000</level>
<time lowerlimit="0" upperlimit="30" iteration="6" lock="0"></time>
<spatial_window>
<x_min lowerlimit="-10.5" upperlimit="10.5" iteration="0.75" lock="0"></x_min>
<x_points_nb lowerlimit="1" upperlimit="40" iteration="1" lock="0"></x_points_nb>
<x_step>0.75</x_step>
<y_min lowerlimit="35.25" upperlimit="50.25" iteration="0.75" lock="0"></y_min>
<y_points_nb lowerlimit="1" upperlimit="30" iteration="1" lock="0"></y_points_nb>
<y_step>0.75</y_step>
</spatial_window>
<criteria method="array" lock="0">MD, RMSE, S0, S1, S2</criteria>
</predictor>
Exemple complet¶
<?xml version="1.0" encoding="UTF-8" ?>
<atmoswing version="1.0" target="optimizer">
<description>
<method_id>PD-A1Xo</method_id>
<method_id_display>1 level optimized</method_id_display>
<specific_tag>CH</specific_tag>
<specific_tag_display>1 station</specific_tag_display>
<description>1 level optimize</description>
</description>
<time_properties>
<archive_period>
<start_year>1981</start_year>
<end_year>2010</end_year>
</archive_period>
<calibration_period>
<start_year>1981</start_year>
<end_year>2010</end_year>
</calibration_period>
<validation_period>
<years>1985, 1990, 1995, 2000, 2005, 2010</years>
</validation_period>
<time_step>24</time_step>
<time_array_target>
<time_array>simple</time_array>
</time_array_target>
<time_array_analogs>
<time_array>days_interval</time_array>
<interval_days lock="1">60</interval_days>
<exclude_days>30</exclude_days>
</time_array_analogs>
</time_properties>
<analog_dates>
<analogs_number lowerlimit="5" upperlimit="150" iteration="1" lock="0"></analogs_number>
<predictor>
<preload>1</preload>
<dataset_id>GenericNetcdf</dataset_id>
<data_id method="array" lock="0">pl/r, pl/t, pl/u, pl/v, pl/z, sfa/msl</data_id>
<level method="array" lock="0">0, 300, 500, 850, 1000</level>
<time lowerlimit="0" upperlimit="30" iteration="6" lock="0"></time>
<spatial_window>
<x_min lowerlimit="-10.5" upperlimit="10.5" iteration="0.75" lock="0"></x_min>
<x_points_nb lowerlimit="1" upperlimit="40" iteration="1" lock="0"></x_points_nb>
<x_step>0.75</x_step>
<y_min lowerlimit="35.25" upperlimit="50.25" iteration="0.75" lock="0"></y_min>
<y_points_nb lowerlimit="1" upperlimit="30" iteration="1" lock="0"></y_points_nb>
<y_step>0.75</y_step>
</spatial_window>
<criteria method="array" lock="0">MD, RMSE, S0, S1, S2</criteria>
</predictor>
</analog_dates>
<analog_dates>
<analogs_number lowerlimit="5" upperlimit="80" iteration="1" lock="0"></analogs_number>
<predictor>
<preload>1</preload>
<dataset_id>GenericNetcdf</dataset_id>
<data_id method="array" lock="0">pl/r, pl/t, pl/u, pl/v, pl/z, sfa/msl</data_id>
<level method="array" lock="0">0, 300, 500, 850, 1000</level>
<time lowerlimit="0" upperlimit="30" iteration="6" lock="0"></time>
<spatial_window>
<x_min lowerlimit="-10.5" upperlimit="10.5" iteration="0.75" lock="0"></x_min>
<x_points_nb lowerlimit="1" upperlimit="40" iteration="1" lock="0"></x_points_nb>
<x_step>0.75</x_step>
<y_min lowerlimit="35.25" upperlimit="50.25" iteration="0.75" lock="0"></y_min>
<y_points_nb lowerlimit="1" upperlimit="30" iteration="1" lock="0"></y_points_nb>
<y_step>0.75</y_step>
</spatial_window>
<criteria method="array" lock="0">MD, RMSE, S0, S1, S2</criteria>
</predictor>
</analog_dates>
<analog_values>
<predictand>
<station_id>0</station_id>
</predictand>
</analog_values>
<evaluation>
<score>CRPS</score>
<time_array>simple</time_array>
</evaluation>
</atmoswing>