SkyLab experiments: Parameters and description¶
This page describes which parameters are available in SkyLab experiments, and the implementation of the four flagship experiments ran by the JSCDA team. You can see results from these on the JCSDA SkyLab website.
All the parameters for these experiments are contained within one yaml file,
and running the create_experiment.py
command sets up the generic workflow
(EWOK: Experiments and Workflows Orchestration Kit) for this experiment.
More information about how to build and run SkyLab is available here: Running SkyLab.
The experiment yaml has to contain the following information:
workflow engine: # workflow manager, only `ecworkflow` is supported at the moment
workdir: # path to tmp work directory
flowdir: # path to tmp scripts directory
suite: # Choice between including path to `cyclingDA.py`, `skylab.py` (full DA), `hofx.py`, `forecast.py`..
model: # Choice between `qg`, `mpas`, `gfs`, `gfs_aero`, `geos_cf`, `ufs`..
model_path: # Path to model repository
modeltasks: # Path to model specific tasks (get backgrounds, ..)
init_cycle: # Date for the first cycle of the experiment
last_cycle: # Date for the last cycle of the experiment
step_cycle: # Step between cycles
init_exp: # Reference for the first background to be read from DB, to initialize the experiment
initype: # Optional, `fc` will initialize from forecasts or from analysis
cost_function: # Cost function, choice between `3D-Var`, `4D-Var`, `3D-FGAT`,
window_length: # Window length
window_offset: # Offset between analysis and window start time
window_mode: # `3d` or `4d` depending on the cost function
cycling mode: # Optional: `non cycling, (will read backgrounds from provider instead of cycling)
forecast_length: # Forecast length after the variational task
forecast_output_frequency: # Forecast output frequency
obs_sampling: # Optional, `coarse` if the coarse observation file exists
OBSERVATIONS:
- Observation 1 # yaml configuration for observation type 1
- Observation 2 # yaml configuration for observation type 2
init_exp_obsbias: # Reference for the first obs bias to be read from DB
init_model_obsbias: # Model obs bias has been created from, e.g. `gfs`
init_provider_obsbias: # Provider obs bias has been created from. e.g. `noaa`
obsbias cycling mode: # Optional, `non cycling` will read bias correction from file at each cycle instead of cycling
AN_VARIABLES: # yaml configuration, list of analysis variables
BG_VARIABLES: # yaml configuration, list of background variables
MODEL_VARIABLES: # yaml configuration, list of model variables
GEOMETRY: # yaml configuration, geometry and resolution for the outer loop, typically model dependent
MODEL: # yaml configuration, model to run in the forecast (and var steps if needed)
static_data: # Path to static files directory, e.g. static B, model files, or other needed files not found in r2d2 or elsewhere.
background_error_type: # Type of background error matrix, options are `hybrid`, `ensemble`, `static`
# ensemble B component parameters
BACKGROUND_ERROR_LOCALIZATION: # Yaml file for localizations
members: # Number of members in the ensemble B matrix
ensb_weight: # Weight of ensemble B matrix
ensemble_exp: # Reference to read ensemble backgrounds from DB
# static B component parameters
BACKGROUND_ERROR: # Yaml file for static B
staticb_weight: # Weight of static B
MINIMIZER: {algorithm: DRPLanczos} # Options are all the minimizers available in OOPS
ninner: 10 # Maximum number of iterations in quadratic minimization
reduc: 0.05 # Target norm reduction in quadratic minimization
MIN_GEOMETRY: # yaml configuration, geometry and resolution inside the quadratic minimization
LINEAR_MODEL: # yaml configuration, linear model to run in 4D-Var applications
diag: ombg # diagnostics in obs space, can be `oman`, `ombg`..
plots: # yaml configuration, activates log based and model-space plots
To add a new experiment we recommend starting from an existing experiment yaml file and modify it for your case to reduce the chance of introducing syntax errors.
Light versions of these experiments are also available. Using the same dates,
algorithm, model, observations and observation operators, and background. Users
can run them on a local machine (look for experiment-name-small.yaml
).
1. skylab-aero.yaml¶
The skylab-aero
experiment runs an EDA with 3 members at a c96 resolution, for 17 days
in August 2021. At the moment it is non cycling and running the ID model (as a placeholder for
future gfs-aero model integration).
It is using a static B and a 3D-Var cost function. The four instruments being assimilated are:
viirs_npp
viirs_n20
modis_aqua
modis_terra
2. skylab-atm-land.yaml¶
The skylab-atm-land
experiment runs a full DA system (deterministic and EDA) with 25
members at a c384 resolution for outer loops and c192 for inner loops, for 30 days in
February-March 2022.
It is non cycling and currently running the FV3-LM model (as a placeholder for future
UFS model integration).
It is using a hybrid B matrix and 3D-Var cost functions for both the deterministic and the EDA. The observations currently assimilated are:
radiosonde_prepbufr
windborne
aircraft_prepbufr
satwinds_ssec_amv
buoy_ldm
synop_ldm
metar_ldm
ship_ldm
scatwind
gnssro_planetiq
gnssro_noaa_comm
gnssro
gnssro_spire
amsua_n19
amsua_n18
amsua_n15
amsua_metop-c
amsua_metop-b
cris-fsr_npp
cris-fsr_n20
iasi_metop-b
iasi_metop-c
atms_npp
atms_n20
mhs_n19
mhs_metop-c
mhs_metop-b
tms_tropics-01 (currently monitored only)
abi_g16_bt_64km
abi_g17_bt_64km
3. skylab-marine.yaml¶
The skylab-marine
experiment runs a single DA system at 0.25 degrees resolution for
outer loops and inner loops, for 30 days in August 2021.
It is non cycling (waiting for future MOM6 model integration).
It is using a static B matrix and 3D-Var cost function. The observations currently assimilated are:
adt_3a
adt_3b
adt_c2
adt_j3
adt_sa
sst_avhrr_metop-b
sst_avhrr_metop-c
ocean_profile
icec_ssmis_f17
icec_ssmis_f18
4. skylab-trace-gas.yaml¶
The skylab-trace-gas
experiment runs a single DA system at c90 resolution for
outer loops and inner loops, for 10 days in August 2021.
It is non cycling and running the ID model (as a placeholder for the geos-cf model integration).
It is using a static B matrix and 3D-Var cost function. The observations currently assimilated are:
tropomi_s5p_no2_tropo or tropomi_s5p_no2_total
mopitt_terra_co_total
tropomi_s5p_co_total