SINDBAD Experiment Outputs Documentation
This document provides an overview of the outputs generated by SINDBAD experiments, focusing on the various modes of operation and the corresponding output variables. Each mode of operation in SINDBAD experiments produces specific outputs, which are essential for analysis, optimization, and sensitivity studies.
Overview of variables in the output NamedTuple.
Variable Name | Description |
---|---|
forcing | Forcing data used in the experiment (NamedTuple). |
info | Experiment configuration and metadata (NamedTuple). |
loss | Loss vector or cost metric comparing model output and observations. |
observation | Observation data array. |
output | Model output, keyed by variable name or as a NamedTuple. |
parameters | Optimized model parameters or optimization results. |
cost_options | Cost function configuration. |
run_helpers | Helper structures for the run (e.g., prepared models, outputs). |
loss_table | Table comparing loss metrics for optimized and default parameters. |
opti_helpers | Optimization helper structures. |
sensitivity | Sensitivity analysis results. |
p_bounds | Parameter bounds. |
obs_array | Array of observations. |
observations | Observation data structure. |
::: warn Note
The exact contents of these variables may vary depending on the specific experiment setup and requirements. Always refer to the relevant documentation or code comments for detailed information about each variable within your particular use case.
:::
Output Variables from Basic Experiments (runExperiment
Function)
1. Cost Calculation Mode (DoCalcCost
)
In this mode, the experiment calculates the cost between model outputs and observations. The output is a NamedTuple containing:
forcing
: The forcing data used in the experiment.info
: The experiment configuration and metadata.loss
: A vector of loss values representing the cost between model outputs and observations.observation
: An array of observation data used for comparison.output
: The forward model output as a NamedTuple of variable pairs.
Example:
result = runExperiment(experiment_json)
println(result.loss)
2. Forward Run Mode (DoRunForward
or DoNotRunOptimization
)
In this mode, the experiment executes the model without optimization. The output is a NamedTuple containing:
forcing
: The forcing data used in the experiment.info
: The experiment configuration and metadata.output
: The model output as a NamedTuple of variable pairs.
This mode is useful for running simulations to understand the model's behavior under given conditions without altering any parameters through optimization.
3. Optimization Mode (DoRunOptimization
)
In this mode, the experiment runs with parameter optimization enabled. The output is a NamedTuple containing:
forcing
: The forcing data used in the experiment.info
: The experiment configuration and metadata.observation
: An array of observation data used for comparison.parameters
: The optimized parameters resulting from the optimization process.
This mode is used to adjust model parameters to minimize the difference between model outputs and observations, effectively tuning the model for better accuracy.
Output Variables from Combined Experiments (runExperiment*
Functions)
1. Forward Run with Input/Optimized Parameters
Run the forward simulation with input parameters that overwrite the defaults.
Returned NamedTuple fields:
forcing
: The forcing data used in the experiment.info
: The full experiment configuration and metadata.output
: A NamedTuple with two fields:optimized
: Model output using optimized parameters.default
: Model output using default parameters.
2. Optimization with Forward Run and Cost Table
Do the optimization of model parameters, then a forward run with both sets of parameters, and return them in output. Returned NamedTuple fields:
forcing
: The forcing data used in the experiment.cost_options
: The cost function configuration.run_helpers
: Helper structures for the run.info
: The experiment configuration.loss
: A table comparing loss metrics for optimized and default parameters.observation
: The observation data array.output
: The model outputs (optimized and default).parameters
: The optimized parameters.
Output Variables from Special Experiments
1. Full Output Mode
In this mode, the experiment runs the model with all available variables included in the given model structure written as the output. This ignores the list of output variables in experiment.json
. This means it will include all variables present in the model structure. It is primarily intended for debugging purposes but can also be used for comprehensive analysis of the model's responses.
Returned NamedTuple fields:
forcing
: The forcing data used in the experiment.info
: The full experiment configuration and metadata.output
: The complete model output for all variables.
2. Sensitivity Analysis Mode
In this mode, the experiment performs a sensitivity analysis to determine the influence of various parameters on the model outputs. The output is a NamedTuple containing:
forcing
: The forcing data used in the experiment.info
: The experiment configuration and metadata.obs_array
: An array of observation data used for comparison.sensitivity
: The results of the sensitivity analysis, detailing the impact of each parameter.
This mode is crucial for understanding which parameters most significantly affect the model's behavior, aiding in model refinement and optimization.
3. Output from Hybrid Modeling Experiments
The hybrid modeling output are described in the hybrid modeling documentation.