Skip to content

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 NameDescription
forcingForcing data used in the experiment (NamedTuple).
infoExperiment configuration and metadata (NamedTuple).
lossLoss vector or cost metric comparing model output and observations.
observationObservation data array.
outputModel output, keyed by variable name or as a NamedTuple.
parametersOptimized model parameters or optimization results.
cost_optionsCost function configuration.
run_helpersHelper structures for the run (e.g., prepared models, outputs).
loss_tableTable comparing loss metrics for optimized and default parameters.
opti_helpersOptimization helper structures.
sensitivitySensitivity analysis results.
p_boundsParameter bounds.
obs_arrayArray of observations.
observationsObservation 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:

julia
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.