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>