Experiment Configuration
The experiment.json
file serves as the primary configuration file for SINDBAD experiments, defining all necessary settings for model execution and data handling.
Configuration Structure
The file is organized into several main sections:
Basics
The basics
section defines core experiment settings and metadata.
"basics": {
"config_files": {
"forcing": "Name of the forcing data configuration file",
"model_structure": "Name of the model structure configuration file",
"optimization": "Name of the parameter optimization configuration file"
},
"domain": "Experiment domain identifier",
"name": "Experiment name",
"time": {
"date_begin": "Start date of the experiment (YYYY-MM-DD)",
"date_end": "End date of the experiment (YYYY-MM-DD)",
"temporal_resolution": "Model simulation time step (one of: 'second', 'minute', 'halfhour', 'hour', 'day', 'week', 'month', 'year', 'decade')"
}
}
Execution Rules
The exe_rules
section defines model execution settings and performance configurations.
"exe_rules": {
"input_array_type": "Data type for input arrays after reading forcing data",
"input_data_backend": "Data backend for forcing dataset",
"land_output_type": "Output array backend for model time series",
"longtuple_size": "Length of the longtuple for model storage",
"model_array_type": "Data backend for arrays/vectors within models",
"model_number_type": "Numeric type used in models",
"parallelization": "Parallelization backend for spatial operations",
"tolerance": "Numerical tolerance for error checking",
"yax_max_cache": "Cache size for YaxArray-based model runs"
}
Available Options
Use
showMethodsOf(InputArrayBackend)
to list availableinput_array_type
optionsUse
showMethodsOf(DataFormatBackend)
to list supportedinput_data_backend
options
Flags
The flags
section controls experiment execution modes and features. All fields accept boolean values (true
or false
).
"flags": {
"calc_cost": "Enable/disable cost calculation against observations",
"catch_model_errors": "Stop execution on internal model errors",
"debug_model": "Run single time step with diagnostics",
"filter_nan_pixels": "Remove NaN pixels from input arrays",
"inline_update": "Update model state within time step",
"run_forward": "Enable forward model run",
"run_optimization": "Enable parameter calibration",
"save_info": "Save experiment info as JLD2 file",
"spinup_TEM": "Enable model spinup",
"store_spinup": "Save spinup sequence end states",
"use_forward_diff": "Enable Dual type for ForwardDiff.jl"
}
Model Output
The model_output
section configures output format, variables, and storage settings.
"model_output": {
"depth_dimensions": {
"d_cEco": 8,
"d_snow": "snowW"
},
"format": "Output format ('zarr' or 'nc')",
"output_array_type": "Output array backend",
"path": "Custom output path (null for default)",
"plot_model_output": "Enable output plotting",
"save_single_file": "Save all variables in one file",
"variables": {
"field.name:depth/layers": "Layer specification (null for 1 layer, string for depth dimension, or number for layers)"
}
}
Variable Naming Convention
Variables follow the field.subfield
convention of the land
structure.
Model Spinup
The model_spinup
section configures model initialization procedures.
"model_spinup": {
"restart_file": "Path to restart file (null for no restart)",
"sequence": [
{
"forcing": "Forcing data source for sequence block",
"n_repeat": "Number of sequence repetitions",
"spinup_mode": "Models or methods to use in block"
}
]
}