Optimizer parameters file¶
The Optimizer has two different kinds of parameter files. One type for the classic and classic+ calibration (see Classic calibration parameters file) and another for the optimization techniques using genetic algorithms or Monte-Carlo simulations (see optimization parameters file). However, some attributes are identical for both of them.
Classic calibration parameters file¶
The calibration parameters file defines the parameters to be calibrated and the range of the authorized values. There are different methods possible to define these options:
minmax
(the most used): you must provide amin
value of the parameter, amax
value and astep
value. For example:
<x_min min="-10" max="10" step="0.25" method="minmax"></x_min>
array
: the content of the node will then be parsed as an array. For example:
<station_id method="array">1,5,6,12,35</station_id>
fixed
: should not be calibrated even ifmin
andmax
values are defined. A value for the parameter must then be provided.
Root node¶
The target
property of the root node needs to be calibrator
.
<atmoswing version="1.0" target="calibrator">
Content ‘analog_dates’¶
The content of <analog_dates>
is mostly similar to the standard parameters file structure, but the parameters to calibrate need to be specified.
Element ‘analogs_number’¶
This element varies the number of analog situations Ni to consider, for example:
<analogs_number min="10" max="100" step="5" method="minmax"></analogs_number>
Element ‘spatial_window’¶
This element defines the extent of the spatial window for each predictor. <x_min>
and <y_min>
are the minimum longitude and latitude respectively, <x_points_nb>
and <y_points_nb>
are the number of points from the predictor grid to use on the longitude and latitude axes, respectively. <x_step>
and <y_step>
are the longitude/latitude resolutions to use. This window needs to be defined for each predictor.
<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>
Full example¶
<?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>
Optimization parameters file¶
The optimization parameters file used for genetic algorithms or Monte Carlo simulations defines the parameters to be optimized and the range of the authorized values. There are different aspects to this:
Defining the range of numerical values: a
lowerlimit
value of the parameter, anupperlimit
value, and aniteration
value must be provided. For example:
<x_min lowerlimit="-10.5" upperlimit="10.5" iteration="0.75" lock="0"></x_min>
Defining a list of values: the content of the node will then be parsed as an array. For example:
<level method="array" lock="0">0, 300, 500, 850, 1000</level>
The
lock
property allows to fix a value that will not be optimized even iflowerlimit
andupperlimit
values are defined, for example. You then need to provide a value for the parameter. It can be used to temporarily disable the calibration of a parameter. For example:
<time lowerlimit="0" upperlimit="30" iteration="6" lock="1">18</time>
Root node¶
The target
property of the root node needs to be optimizer
.
<atmoswing version="1.0" target="optimizer">
Content ‘analog_dates’¶
The content of <analog_dates>
is mostly similar to the standard parameters file structure, but the parameters to calibrate need to be specified.
Element ‘analogs_number’¶
This element varies the number of analog situations Ni to consider, for example:
<analogs_number lowerlimit="5" upperlimit="80" iteration="1" lock="0"></analogs_number>
Element ‘predictor’¶
This element is used to define the parameters to calibrate related to the predictors. The structure is mostly similar to the standard parameters file structure. The preload
option specifies that the data should be preloaded prior to the calibration, which saves a substantial amount of time. For example:
Example:
<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>
Full example¶
<?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>