|
|
|
## Introduction
|
|
|
|
|
|
|
|
[WIKI CREATION IN PROGRESS]
|
|
|
|
|
|
|
|
Auto-S2S is the GitLab repository for the ESS Verification Suite, a modular tool for subseasonal to seasonal to decadal forecast verification workflows.
|
|
|
|
|
|
|
|
We are currently in the early stages of development, so the code and the information in this wiki may be subject to frequent changes and updates.
|
|
|
|
|
|
|
|
## Recipes
|
|
|
|
|
|
|
|
In order to use the suite, users must define a 'recipe' containing all the information pertaining to their workflow.
|
|
|
|
|
|
|
|
Here is an example of a recipe to load daily mean ECMWF System 5 data from /esarchive/, with a 1993 to 2016 hindcast period, the corresponding ERA5 observations, and a 2020 forecast for the November initialization. The observations will be interpolated to the experiment grid (Regrid type: 'to_system') using bilinear interpolation. The hindcast and forecast will be calibrated using Quantile Mapping, and the Ranked Probability Skill Score (RPSS) will be computed. Any output files will be saved in the output directory.
|
|
|
|
|
|
|
|
```yaml
|
|
|
|
Description:
|
|
|
|
Author: V. Agudetse
|
|
|
|
Info: ECMWF System5 Seasonal Forecast Example recipe (daily mean, tas)
|
|
|
|
|
|
|
|
Analysis:
|
|
|
|
Horizon: seasonal # Mandatory, str: 'subseasonal', 'seasonal', or 'decadal'
|
|
|
|
Variables:
|
|
|
|
name: tas # Mandatory, str: variable name in /esarchive/
|
|
|
|
freq: daily_mean # Mandatory, str: 'monthly_mean' or 'daily_mean'
|
|
|
|
Datasets:
|
|
|
|
System:
|
|
|
|
name: system5c3s # Mandatory, str: System codename.
|
|
|
|
Multimodel: no # Mandatory, bool: Either yes/true or no/false
|
|
|
|
Reference:
|
|
|
|
name: era5 # Mandatory, str: Reference codename.
|
|
|
|
Time:
|
|
|
|
sdate:
|
|
|
|
fcst_syear: '2020' # Optional, int: Forecast initialization year 'YYYY'
|
|
|
|
fcst_sday: '1101' # Mandatory, int: Start date, 'mmdd'
|
|
|
|
hcst_start: '1993' # Mandatory, int: Hindcast initialization start year 'YYYY'
|
|
|
|
hcst_end: '2016' # Mandatory, int: Hindcast initialization end year 'YYYY'
|
|
|
|
ftime_min: 0 # Mandatory, int: First forecast time step in months
|
|
|
|
ftime_max: 1 # Mandatory, int: Last forecast time step in months
|
|
|
|
Region:
|
|
|
|
latmin: -10 # Mandatory, int: minimum latitude
|
|
|
|
latmax: 10 # Mandatory, int: maximum latitude
|
|
|
|
lonmin: 0 # Mandatory, int: minimum longitude
|
|
|
|
lonmax: 20 # Mandatory, int: maximum longitude
|
|
|
|
Regrid:
|
|
|
|
method: bilinear # Mandatory, str: Interpolation method.
|
|
|
|
type: to_system # Mandatory, str: 'to_system', 'to_reference', or CDO-accepted grid.
|
|
|
|
Workflow:
|
|
|
|
Calibration:
|
|
|
|
method: qmap # Mandatory, str: Calibration method.
|
|
|
|
Skill:
|
|
|
|
metric: RPSS # Mandatory, str: Skill metric or list of skill metrics.
|
|
|
|
Indicators:
|
|
|
|
index: no # This feature is not implemented yet
|
|
|
|
Output_format: S2S4E # This feature is not implemented yet
|
|
|
|
Run:
|
|
|
|
Loglevel: INFO # This feature is not implemented yet
|
|
|
|
Terminal: yes # This feature is not implemented yet
|
|
|
|
output_dir: /esarchive/scratch/vagudets/repos/auto-s2s/out-logs/ # Mandatory, str: output directory
|
|
|
|
code_dir: /esarchive/scratch/vagudets/repos/auto-s2s/
|
|
|
|
```
|
|
|
|
|
|
|
|
## Loading module
|
|
|
|
|
|
|
|
The Loading module reads the requested data from /esarchive/ and converts it to objects of class `s2dv_cube` which can be passed onto the other modules in the tool. An `s2dv_cube` object is a list containing the data array in the element $data and many other elements that store the metadata.
|
|
|
|
|
|
|
|
The output of the main function, load_datasets(), is a list with containing the hindcast, observations and forecast, named $hcst, $obs and $fcst. $fcst will be `NULL` if no forecast years have been requested.
|
|
|
|
|
|
|
|
## Calibration module
|
|
|
|
|
|
|
|
The Calibration module applies a calibration method to the hindcast and forecast data using the observations as a reference, and returns the calibrated data and its metadata in `s2dv_cube` objects.
|
|
|
|
|
|
|
|
The output of the main function, calibrate_datasets(), is a list containing the calibrated hindcast and forecast, named $hcst and $fcst. $fcst will be `NULL` if no forecast years have been requested.
|
|
|
|
|
|
|
|
### Calibration methods currently available:
|
|
|
|
|
|
|
|
The calibration method can be requested in the Workflow$Calibration$method section of the recipe. **You can only request one calibration method per recipe.** This is a list of the methods currently available:
|
|
|
|
|
|
|
|
- `'raw'`: No calibration is performed. A warning will show up on the terminal when calibrate_datasets() is called, and it will return the uncalibrated hindcast and forecast.
|
|
|
|
|
|
|
|
- Daily data: Quantile mapping `'qmap'`.
|
|
|
|
For more details, see the CSTools documentation for CST_QuantileMapping().
|
|
|
|
|
|
|
|
- Monthly data: `'bias'`, `'evmos'`, `'mse_min'`, `'crps_min'`, and `'rpc-based'`.
|
|
|
|
For more details, see the CSTools documentation for CST_Calibration().
|
|
|
|
|