SindbadSetup Module
SindbadSetup
The SindbadSetup
package provides tools for setting up and configuring SINDBAD experiments and runs. It handles the creation of experiment configurations, model structures, parameters, and output setups, ensuring a streamlined workflow for SINDBAD simulations.
Purpose:
This package is designed to produce the SINDBAD info
object, which contains all the necessary configurations and metadata for running SINDBAD experiments. It facilitates reading configurations, building model structures, and preparing outputs.
Dependencies:
Sindbad
: Provides the core SINDBAD models and types.SindbadUtils
: Supplies utility functions for handling data and other helper tasks during the setup process.ConstructionBase
: Provides a base type for constructing types, enabling the creation of custom types for SINDBAD experiments.CSV
: Provides tools for reading and writing CSV files, commonly used for input and output data in SINDBAD experiments.Infiltrator
: Enables interactive debugging during the setup process, improving development and troubleshooting.JSON
: Provides tools for parsing and generating JSON files, commonly used for configuration files.JLD2
: Facilitates saving and loading SINDBAD configurations and outputs in a binary format for efficient storage and retrieval.
Included Files:
defaultOptions.jl
:
- Defines default configuration options for various optimization and global sensitivity analysis methods in SINDBAD.
getConfiguration.jl
:
- Contains functions for reading and parsing configuration files (e.g., JSON or CSV) to initialize SINDBAD experiments.
setupExperimentInfo.jl
:
- Builds the
info
object, which contains all the metadata and configurations required for running SINDBAD experiments.
setupTypes.jl
:
- Defines instances of data types in SINDBAD after reading the information from settings files.
setupPools.jl
:
- Handles the initialization of SINDBAD land by creating model pools, including state variables.
updateParameters.jl
:
- Implements logic for updating model parameters based on metric evaluations, enabling iterative model calibration.
setupParameters.jl
:
- Manages the loading and setup of model parameters, including bounds, scaling, and initial values.
setupModels.jl
:
- Constructs the model structure, including the selection and configuration of orders SINDBAD models.
setupOutput.jl
:
- Prepares the output structure for SINDBAD experiments.
setupOptimization.jl
:
- Configures optimization settings for parameter estimation and model calibration.
setupInfo.jl
:
- Calls various functions to collect the
info
object by integrating all configurations, models, parameters, and outputs.
Notes:
The package re-exports several key packages (
Infiltrator
,CSV
,JLD2
) for convenience, allowing users to access their functionality directly throughSindbadSetup
.Designed to be modular and extensible, enabling users to customize and expand the setup process for specific use cases.
Exported
SindbadSetup.backScaleParameters Function
backScaleParameters(parameter_vector_scaled, parameter_table, <: ParameterScaling)
Reverts scaling of parameters using a specified scaling strategy.
Arguments
parameter_vector_scaled
: Vector of scaled parameters to be converted back to original scaleparameter_table
: Table containing parameter information and scaling factorsParameterScaling
: Type indicating the scaling strategy to be used::ScaleDefault
: Type indicating scaling by initial parameter values::ScaleBounds
: Type indicating scaling by parameter bounds::ScaleNone
: Type indicating no scaling should be applied (parameters remain unchanged)
Returns
Returns the unscaled/actual parameter vector in original units.
SindbadSetup.checkParameterBounds Method
checkParameterBounds(p_names, parameter_values, lower_bounds, upper_bounds, _sc::ParameterScaling; show_info=false, model_names=nothing)
Check and display the parameter bounds information for given parameters.
Arguments
p_names
: Names or identifier of the parameters. Vector of strings.parameter_values
: Default values of the parameters. Vector of Numbers.lower_bounds
: Lower bounds for the parameters. Vector of Numbers.upper_bounds
: Upper bounds for the parameters. Vector of Numbers._sc::ParameterScaling
: Scaling Type for the parametersshow_info
: a flag to display model parameters and their bounds. Boolean.model_names
: Names or identifier of the approaches where the parameters are defined.
Returns
Displays a formatted output of parameter bounds information or returns an error when they are violated
SindbadSetup.convertRunFlagsToTypes Method
convertRunFlagsToTypes(info)
Converts model run-related flags from the experiment configuration into types for dispatch.
Arguments:
info
: A NamedTuple containing the experiment configuration, including model run flags.
Returns:
- A NamedTuple
new_run
where each flag is converted into a corresponding type instance.
Notes:
Flags are processed recursively:
If a flag is a
NamedTuple
, its subfields are converted into types.If a flag is a scalar, it is directly converted into a type using
getTypeInstanceForFlags
.
The resulting
new_run
NamedTuple is used for type-based dispatch in SINDBAD's model execution.
SindbadSetup.createArrayofType Function
createArrayofType(input_values, pool_array, num_type, indx, ismain, array_type::ModelArrayType)
Creates an array or view of the specified type array_type
based on the input values and configuration.
Arguments:
input_values
: The input data to be converted or used for creating the array.pool_array
: A preallocated array from which a view may be created.num_type
: The numerical type to which the input values should be converted (e.g.,Float64
,Int
).indx
: A tuple of indices used to create a view from thepool_array
.ismain
: A boolean flag indicating whether the main array should be created (true
) or a view should be created (false
).array_type
: A type dispatch that determines the array type to be created:ModelArrayView
: Creates a view of thepool_array
based on the indicesindx
.ModelArrayArray
: Creates a new array by convertinginput_values
to the specifiednum_type
.ModelArrayStaticArray
: Creates a static array (SVector
) from theinput_values
.
Returns:
- An array or view of the specified type, created based on the input configuration.
Notes:
When
ismain
istrue
, the function convertsinput_values
to the specifiednum_type
.When
ismain
isfalse
, the function creates a view of thepool_array
using the indicesindx
.For
ModelArrayStaticArray
, the function ensures that the resulting static array (SVector
) has the correct type and length.
Examples:
- Creating a view from a preallocated array:
pool_array = rand(10, 10)
indx = (1:5,)
view_array = createArrayofType(nothing, pool_array, Float64, indx, false, ModelArrayView())
- Creating a new array with a specific numerical type:
input_values = [1.0, 2.0, 3.0]
new_array = createArrayofType(input_values, nothing, Float64, nothing, true, ModelArrayArray())
- Creating a static array (
SVector
):
input_values = [1.0, 2.0, 3.0]
static_array = createArrayofType(input_values, nothing, Float64, nothing, true, ModelArrayStaticArray())
SindbadSetup.createInitLand Method
createInitLand(pool_info, tem)
Initializes the land state by creating a NamedTuple with pools, states, and selected models.
Arguments:
pool_info
: Information about the pools to initialize.tem
: A helper NamedTuple with necessary objects for pools and numbers.
Returns:
- A NamedTuple containing initialized pools, states, fluxes, diagnostics, properties, models, and constants.
SindbadSetup.createInitPools Method
createInitPools(info_pools::NamedTuple, tem_helpers::NamedTuple)
Creates a NamedTuple with initial pool variables as subfields, used in land.pools
.
Arguments:
info_pools
: A NamedTuple containing pool information from the experiment configuration.tem_helpers
: A NamedTuple containing helper information for numerical operations.
Returns:
- A NamedTuple with initialized pool variables.
SindbadSetup.createInitStates Method
createInitStates(info_pools::NamedTuple, tem_helpers::NamedTuple)
Creates a NamedTuple with initial state variables as subfields, used in land.states
.
Arguments:
info_pools
: A NamedTuple containing pool information from the experiment configuration.tem_helpers
: A NamedTuple containing helper information for numerical operations.
Returns:
- A NamedTuple with initialized state variables.
Notes:
Extended from `createInitPools``
State variables are derived from the
state_variables
field inmodel_structure.json
.
SindbadSetup.createNestedDict Method
createNestedDict(dict::AbstractDict)
Creates a nested dictionary from a flat dictionary where keys are strings separated by dots (.
).
Arguments:
dict::AbstractDict
: A flat dictionary with keys as dot-separated strings.
Returns:
- A nested dictionary where each dot-separated key is converted into nested dictionaries.
Example:
dict = Dict("a.b.c" => 2)
nested_dict = createNestedDict(dict)
SindbadSetup.deepMerge Function
deepMerge(d::AbstractDict...) = merge(deepMerge, d...)
deepMerge(d...) = d[end]
Recursively merges multiple dictionaries, giving priority to the last dictionary.
Arguments:
d::AbstractDict...
: One or more dictionaries to merge.
Returns:
- A single dictionary with merged fields, where the last dictionary's values take precedence.
SindbadSetup.filterParameterTable Method
filterParameterTable(parameter_table::Table; prop_name::Symbol=:model, prop_values::Tuple{Symbol}=(:all,))
Filters a parameter table based on a specified property and values.
Arguments
parameter_table::Table
: The parameter table to filterprop_name::Symbol
: The property to filter by (default: :model)prop_values::Tuple{Symbol}
: The values to filter by (default: :all)
Returns
A filtered parameter table.
SindbadSetup.getConfiguration Method
getConfiguration(sindbad_experiment::String; replace_info=Dict())
Loads the experiment configuration from a JSON or JLD2 file.
Arguments:
sindbad_experiment::String
: Path to the experiment configuration file.replace_info::Dict
: A dictionary of fields to replace in the configuration.
Returns:
- A NamedTuple containing the experiment configuration.
Notes:
Supports both JSON and JLD2 formats.
If
replace_info
is provided, the specified fields are replaced in the configuration.
SindbadSetup.getConstraintNames Method
getConstraintNames(optim::NamedTuple)
Extracts observation and model variable names for optimization constraints.
Arguments:
optim
: A NamedTuple containing optimization settings and observation constraints.
Returns:
- A tuple containing:
obs_vars
: A list of observation variables used to calculate cost.optim_vars
: A lookup mapping observation variables to model variables.store_vars
: A lookup of model variables for which time series will be stored.model_vars
: A list of model variable names.
SindbadSetup.getCostOptions Method
getCostOptions(optim_info::NamedTuple, vars_info, tem_variables, number_helpers, dates_helpers)
Sets up cost optimization options based on the provided parameters.
Arguments:
optim_info
: A NamedTuple containing optimization parameters and settings.vars_info
: Information about variables used in optimization.tem_variables
: Template variables for optimization setup.number_helpers
: Helper functions or values for numerical operations.dates_helpers
: Helper functions or values for date-related operations.
Returns:
- A NamedTuple containing cost optimization configuration options.
Notes:
- Configures temporal and spatial aggregation, cost metrics, and other optimization-related settings.
SindbadSetup.getDepthDimensionSizeName Method
getDepthDimensionSizeName(vname::Symbol, info::NamedTuple)
Retrieves the name and size of the depth dimension for a given variable.
Arguments:
vname
: The variable name.info
: A SINDBAD NamedTuple containing all information needed for setup and execution of an experiment.
Returns:
- A tuple containing the size and name of the depth dimension.
Notes:
- Validates the depth dimension against the
depth_dimensions
field in the experiment configuration.
SindbadSetup.getDepthInfoAndVariables Method
getDepthInfoAndVariables(info, output_vars)
Generates depth information and variable pairs for the output variables.
Arguments:
info
: A SINDBAD NamedTuple containing experiment configuration.output_vars
: A list of output variables.
Returns:
- A NamedTuple containing depth information and variable pairs.
SindbadSetup.getExperimentConfiguration Method
getExperimentConfiguration(experiment_json::String; replace_info=Dict())
Loads the basic configuration from an experiment JSON file.
Arguments:
experiment_json::String
: Path to the experiment JSON file.replace_info::Dict
: A dictionary of fields to replace in the configuration.
Returns:
- A dictionary containing the experiment configuration.
SindbadSetup.getExperimentInfo Method
getExperimentInfo(sindbad_experiment::String; replace_info=Dict())
Loads and sets up the experiment configuration, saving the information and enabling debugging options if specified.
Arguments:
sindbad_experiment::String
: Path to the experiment configuration file.replace_info::Dict
: (Optional) A dictionary of fields to replace in the configuration.
Returns:
- A NamedTuple
info
containing the fully loaded and configured experiment information.
Notes:
- The function performs the following steps:
Loads the experiment configuration using
getConfiguration
.Sets up the experiment
info
usingsetupInfo
.Saves the experiment
info
ifsave_info
is enabled.Sets up a debug error catcher if
catch_model_errors
is enabled.
SindbadSetup.getGlobalAttributesForOutCubes Method
getGlobalAttributesForOutCubes(info)
Generates global attributes for output cubes, including system and experiment metadata.
Arguments:
info
: A NamedTuple containing the experiment configuration.
Returns:
- A dictionary
global_attr
containing global attributes such as:simulation_by
: The user running the simulation.experiment
: The name of the experiment.domain
: The domain of the experiment.date
: The current date.machine
: The machine architecture.os
: The operating system.host
: The hostname of the machine.julia
: The Julia version.
Notes:
- The function collects system information using Julia's
Sys
module andversioninfo
.
SindbadSetup.getNumberType Function
getNumberType(t)
Retrieves the numerical type based on the input, which can be a string or a data type.
Arguments:
t
: The input specifying the numerical type. Can be:A
String
representing the type (e.g.,"Float64"
,"Int"
).A
DataType
directly specifying the type (e.g.,Float64
,Int
).
Returns:
- The corresponding numerical type as a
DataType
.
Notes:
If the input is a string, it is parsed and evaluated to return the corresponding type.
If the input is already a
DataType
, it is returned as-is.
SindbadSetup.getOptimizationParametersTable Method
getOptimizationParametersTable(parameter_table_all::Table, model_parameter_default, optimization_parameters)
Creates a filtered and enhanced parameter table for optimization by combining input parameters with default model parameters with the table of all parameters in the selected model structure.
Arguments
parameter_table_all::Table
: A table containing all model parametersmodel_parameter_default
: Default parameter settings including distribution and a flag differentiating if the parameter is to be ML-parameter-learntoptimization_parameters
: Parameters to be optimized, specified either as:::NamedTuple
: Named tuple with parameter configurations::Vector
: Vector of parameter names to use with default settings
Returns
A filtered Table
containing only the optimization parameters, enhanced with:
is_ml
: Boolean flag indicating if parameter uses machine learningdist
: Distribution type for each parameterp_dist
: Distribution parameters as an array of numeric values
Notes
Parameters can be specified using comma-separated strings for model.parameter pairs
For NamedTuple inputs, individual parameter configurations override model_parameter_default
The output table preserves the numeric type of the input parameters
SindbadSetup.getParameters Function
getParameters(selected_models::Tuple, num_type, model_timestep; return_table=true)
getParameters(selected_models::LongTuple, num_type, model_timestep; return_table=true)
Retrieves parameters for the specified models with given numerical type and timestep settings.
Arguments
selected_models
: A collection of selected models::Tuple
: as a tuple::LongTuple
: as a long tuple
num_type
: The numerical type to be used for parametersmodel_timestep
: The timestep setting for the model simulationreturn_table::Bool=true
: Whether to return results in table format
Returns
Parameters information for the selected models based on the specified settings.
SindbadSetup.getSpinupSequenceWithTypes Method
getSpinupSequenceWithTypes(seqq, helpers_dates)
Processes the spinup sequence and assigns types for temporal aggregators for spinup forcing.
Arguments:
seqq
: The spinup sequence from the experiment configuration.helpers_dates
: A NamedTuple containing date-related helpers.
Returns:
- A processed spinup sequence with forcing types for temporal aggregators.
SindbadSetup.getTypeInstanceForCostMetric Method
getTypeInstanceForCostMetric(mode_name::String)
Retrieves the type instance for a given cost metric based on its name.
Arguments:
mode_name::String
: The name of the cost metric (e.g.,"RMSE"
,"MAE"
).
Returns:
- An instance of the corresponding cost metric type.
Notes:
The function converts the cost metric name to a type by capitalizing the first letter of each word and removing underscores.
The type is retrieved from the
SindbadMetrics
module and instantiated.Used for dispatching cost metric calculations in SINDBAD.
SindbadSetup.getTypeInstanceForFlags Function
getTypeInstanceForFlags(option_name::Symbol, option_value, opt_pref="Do")
Generates a type instance for boolean flags based on the flag name and value.
Arguments:
option_name::Symbol
: The name of the flag (e.g.,:run_optimization
,:save_info
).option_value
: A boolean value (true
orfalse
) indicating the state of the flag.opt_pref::String
: (Optional) A prefix for the type name. Defaults to"Do"
.
Returns:
- An instance of the corresponding type:
If
option_value
istrue
, the type name is prefixed withopt_pref
(e.g.,DoRunOptimization
).If
option_value
isfalse
, the type name is prefixed withopt_pref * "Not"
(e.g.,DoNotRunOptimization
).
Notes:
The function converts the flag name to a string, capitalizes the first letter of each word, and appends the appropriate prefix (
Do
orDoNot
).The resulting type is retrieved from the
SindbadSetup
module and instantiated.This is used for type-based dispatch in SINDBAD's model execution.
SindbadSetup.getTypeInstanceForNamedOptions Function
getTypeInstanceForNamedOptions(option_name)
Retrieves a type instance for a named option based on its string or symbol representation. These options are mainly within the optimization and temporal aggregation.
Arguments:
option_name
: The name of the option, provided as either aString
or aSymbol
.
Returns:
- An instance of the corresponding type from the
SindbadSetup
module.
Notes:
If the input is a
Symbol
, it is converted to aString
before processing.The function capitalizes the first letter of each word in the option name and removes underscores to match the type naming convention.
This is used for type-based dispatch in SINDBAD's configuration and execution.
The type for temporal aggregation is set using
getTimeAggregatorTypeInstance
inSindbadUtils
. It uses a similar approach and prefixesTime
to type.
Example:
- A named option for
"cost_metric": "NSE_inv" would be converted to NSEInv type
"temporal_data_aggr": "month_anomaly" would be converted to MonthAnomaly
SindbadSetup.perturbParameters Method
perturbParameters(x::AbstractVector, lower::AbstractVector, upper::AbstractVector, percent_range::Tuple{Float64,Float64}=(0.0, 0.1))
Modify each element of vector x
by a random percentage within percent_range
, while ensuring the result stays within the bounds defined by lower
and upper
vectors.
Arguments
x
: Vector to modifylower
: Vector of lower boundsupper
: Vector of upper boundspercent_range
: Tuple of (min_percent, max_percent) for random modification (default: (0.0, 0.1))
Returns
- Modified vector
x
(modified in-place)
Example
x = [1.0, 2.0, 3.0]
lower = [0.5, 1.5, 2.5]
upper = [1.5, 2.5, 3.5]
modify_within_bounds!(x, lower, upper, (0.0, 0.1)) # Modify by 0-10%
SindbadSetup.prepCostOptions Function
prepCostOptions(observations, cost_options, ::CostMethod)
Prepares cost options for optimization by filtering variables with insufficient data points and setting up the required configurations.
Arguments:
observations
: A NamedTuple or a vector of arrays containing observation data, uncertainties, and masks used for calculating performance metrics or loss.cost_options
: A table listing each observation constraint and its configuration for calculating the loss or performance metric.::CostMethod
: A type indicating the cost function method.
Returns:
- A filtered table of
cost_options
containing only valid variables with sufficient data points.
cost methods:
CostMethod
Abstract type for cost calculation methods in SINDBAD
Available methods/subtypes:
CostModelObs
: cost calculation between model output and observationsCostModelObsLandTS
: cost calculation between land model output and time series observationsCostModelObsMT
: multi-threaded cost calculation between model output and observationsCostModelObsPriors
: cost calculation between model output, observations, and priors. NOTE THAT THIS METHOD IS JUST A PLACEHOLDER AND DOES NOT CALCULATE PRIOR COST PROPERLY YET
Extended help
Notes:
The function iterates through the observation variables and checks if the number of valid data points meets the minimum threshold specified in
cost_options.min_data_points
.Variables with insufficient data points are excluded from the returned
cost_options
.The function modifies the
cost_options
table by adding:valids
: Indices of valid data points for each variable.is_valid
: A boolean flag indicating whether the variable meets the minimum data point requirement.
Unnecessary fields such as
min_data_points
,temporal_data_aggr
, andaggr_func
are removed from the finalcost_options
.
SindbadSetup.readConfiguration Method
readConfiguration(info_exp::AbstractDict, base_path::String)
Reads the experiment configuration files (JSON or CSV) and returns a dictionary.
Arguments:
info_exp::AbstractDict
: The experiment configuration dictionary.base_path::String
: The base path for resolving relative file paths.
Returns:
- A dictionary containing the parsed configuration files.
SindbadSetup.scaleParameters Function
scaleParameters(parameter_table, <: ParameterScaling)
Scale parameters from the input table using default scaling factors.
Arguments
parameter_table
: Table containing parameters to be scaledParameterScaling
: Type indicating the scaling strategy to be used::ScaleDefault
: Type indicating scaling by default values::ScaleBounds
: Type parameter indicating scaling by parameter bounds::ScaleNone
: Type parameter indicating no scaling should be applied
Returns
Scaled parameters and their bounds according to default scaling factors
SindbadSetup.setHybridInfo Method
setHybridInfo(info::NamedTuple)
Processes and sets up the hybrid experiment information in the experiment configuration.
Arguments:
info
: A NamedTuple containing the experiment configuration.
Returns:
- The updated
info
NamedTuple with hybrid experiment information added.
SindbadSetup.setModelOutput Method
setModelOutput(info::NamedTuple)
Sets the output variables to be written and stored based on the experiment configuration.
Arguments:
info
: A NamedTuple containing the experiment configuration.
Returns:
- The updated
info
NamedTuple with output variables and depth information added.
SindbadSetup.setModelOutputLandAll Method
setModelOutputLandAll(info, land)
Retrieves all model variables from land
and overwrites the output information in info
.
Arguments:
info
: A NamedTuple containing experiment configuration and helper information.land
: A core SINDBAD NamedTuple containing variables for a given time step.
Returns:
- The updated
info
NamedTuple with output variables and depth information updated.
SindbadSetup.setOptimization Method
setOptimization(info::NamedTuple)
Sets up optimization-related fields in the experiment configuration.
Arguments:
info
: A NamedTuple containing the experiment configuration.
Returns:
- The updated
info
NamedTuple with optimization-related fields added.
Notes:
Configures cost metrics, optimization parameters, algorithms, and variables to store during optimization.
Validates the parameters to be optimized against the model structure.
SindbadSetup.setOrderedSelectedModels Method
setOrderedSelectedModels(info::NamedTuple)
Retrieves and orders the list of selected models based on the configuration in model_structure.json
.
Arguments:
info
: A NamedTuple containing the experiment configuration.
Returns:
- The updated
info
NamedTuple with the ordered list of selected models added toinfo.temp.models
.
Notes:
Ensures consistency by validating the selected models using
checkSelectedModels
.Orders the models as specified in
standard_sindbad_models
.
SindbadSetup.setPoolsInfo Method
setPoolsInfo(info::NamedTuple)
Generates info.temp.helpers.pools
and info.pools
.
Arguments:
info
: A NamedTuple containing the experiment configuration.
Returns:
- The updated
info
NamedTuple with pool-related fields added.
Notes:
info.temp.helpers.pools
is used in the models.info.pools
is used for instantiating the pools for the initial output tuple.
SindbadSetup.setSpinupAndForwardModels Method
setSpinupAndForwardModels(info::NamedTuple)
Configures the spinup and forward models for the experiment.
Arguments:
info
: A NamedTuple containing the experiment configuration.
Returns:
- The updated
info
NamedTuple with the spinup and forward models added toinfo.temp.models
.
Notes:
Allows for faster spinup by turning off certain models using the
use_in_spinup
flag inmodel_structure.json
.Ensures that spinup models are a subset of forward models.
Updates model parameters if additional parameter values are provided in the experiment configuration.
SindbadSetup.setupInfo Method
setupInfo(info::NamedTuple)
Processes the experiment configuration and sets up all necessary fields for model simulation.
Arguments:
info
: A NamedTuple containing the experiment configuration.
Returns:
- The updated
info
NamedTuple with all necessary fields for model simulation.
SindbadSetup.sindbadDefaultOptions Function
sindbadDefaultOptions(::MethodType)
Retrieves the default configuration options for a given optimization or sensitivity analysis method in SINDBAD.
Arguments:
::MethodType
: The method type for which the default options are requested. Supported types include:OptimizationMethod
: General optimization methods.GSAMethod
: General global sensitivity analysis methods.GSAMorris
: Morris method for global sensitivity analysis.GSASobol
: Sobol method for global sensitivity analysis.GSASobolDM
: Sobol method with derivative-based measures.
Returns:
- A
NamedTuple
containing the default options for the specified method.
Notes:
Each method type has its own set of default options, such as the number of trajectories, samples, or design matrix length.
For
GSASobolDM
, the defaults are inherited fromGSASobol
.
SindbadSetup.updateModelParameters Function
updateModelParameters(parameter_table::Table, selected_models::Tuple, parameter_vector::AbstractArray)
updateModelParameters(parameter_table::Table, selected_models::LongTuple, parameter_vector::AbstractArray)
updateModelParameters(parameter_to_index::NamedTuple, selected_models::Tuple, parameter_vector::AbstractArray)
Updates the parameters of SINDBAD models based on the provided parameter vector without mutating the original table of parameters.
Arguments:
parameter_table::Table
: A table of SINDBAD model parameters selected for optimization. Contains parameter names, bounds, and scaling information.selected_models::Tuple
: A tuple of all models selected in the given model structure.selected_models::LongTuple
: A long tuple of models, which is converted into a standard tuple for processing.parameter_vector::AbstractArray
: A vector of parameter values to update the models.parameter_to_index::NamedTuple
: A mapping of parameter indices to model names, used for updating specific parameters in the models.
Returns:
- A tuple of updated models with their parameters modified according to the provided
parameter_vector
.
Notes:
The function supports multiple input formats for
selected_models
(e.g.,LongTuple
,NamedTuple
) and adapts accordingly.If
parameter_table
is provided, the function uses it to find and update the relevant parameters for each model.The
parameter_to_index
variant allows for a more direct mapping of parameters to models, bypassing the need for a parameter table.The generated function variant (
::Val{p_vals}
) is used for compile-time optimization of parameter updates.
Examples:
- Using
parameter_table
andselected_models
:
updated_models = updateModelParameters(parameter_table, selected_models, parameter_vector)
- Using
parameter_to_index
for direct mapping:
updated_models = updateModelParameters(parameter_to_index, selected_models, parameter_vector)
Implementation Details:
The function iterates over the models in
selected_models
and updates their parameters based on the providedparameter_vector
.For each model, it checks if the parameter belongs to the model's approach (using
parameter_table.model_approach
) and updates the corresponding value.The
parameter_to_index
variant uses a mapping to directly replace parameter values in the models.The generated (with @generated) function variant (
::Val{p_vals}
) creates a compile-time optimized update process for specific parameters and models.
SindbadSetup.updateModels Method
updateModels(parameter_vector, parameter_updater, parameter_scaling_type, selected_models)
Updates the parameters of selected models using the provided parameter vector.
Arguments
parameter_vector
: Vector containing the new parameter valuesparameter_updater
: Function or object that defines how parameters should be updatedparameter_scaling_type
: Specifies the type of scaling to be applied to parametersselected_models
: Collection of models whose parameters need to be updated
Returns
Updated models with new parameter values
SindbadSetup.updateVariablesToStore Method
updateVariablesToStore(info::NamedTuple)
Updates the output variables to store based on optimization or cost run settings.
Arguments:
info
: A NamedTuple containing the experiment configuration.
Returns:
- The updated
info
NamedTuple with updated output variables.
Internal
Sindbad.Types.ActivationType Type
ActivationType
Abstract type for activation functions used in ML models
Type Hierarchy
ActivationType <: MLTypes <: SindbadTypes <: Any
Extended help
Available methods/subtypes:
FluxRelu
: Use Flux.jl ReLU activation functionFluxSigmoid
: Use Flux.jl Sigmoid activation functionFluxTanh
: Use Flux.jl Tanh activation function
Sindbad.Types.AllForwardModels Type
AllForwardModels
Use all forward models for spinup
Type Hierarchy
AllForwardModels <: SpinupMode <: SpinupTypes <: SindbadTypes <: Any
Sindbad.Types.ArrayTypes Type
ArrayTypes
Abstract type for all array types in SINDBAD
Type Hierarchy
ArrayTypes <: SindbadTypes <: Any
Extended help
Available methods/subtypes:
ModelArrayType
: Abstract type for internal model array types in SINDBADModelArrayArray
: Use standard Julia arrays for model variablesModelArrayStaticArray
: Use StaticArrays for model variablesModelArrayView
: Use array views for model variables
OutputArrayType
: Abstract type for output array types in SINDBADOutputArray
: Use standard Julia arrays for outputOutputMArray
: Use MArray for outputOutputSizedArray
: Use SizedArray for outputOutputYAXArray
: Use YAXArray for output
Sindbad.Types.BackendNetcdf Type
BackendNetcdf
Use NetCDF format for input data
Type Hierarchy
BackendNetcdf <: DataFormatBackend <: InputTypes <: SindbadTypes <: Any
Sindbad.Types.BackendZarr Type
BackendZarr
Use Zarr format for input data
Type Hierarchy
BackendZarr <: DataFormatBackend <: InputTypes <: SindbadTypes <: Any
Sindbad.Types.BayesOptKMaternARD5 Type
BayesOptKMaternARD5
Bayesian Optimization using Matern 5/2 kernel with Automatic Relevance Determination from BayesOpt.jl
Type Hierarchy
BayesOptKMaternARD5 <: OptimizationMethod <: OptimizationTypes <: SindbadTypes <: Any
Sindbad.Types.CMAEvolutionStrategyCMAES Type
CMAEvolutionStrategyCMAES
Covariance Matrix Adaptation Evolution Strategy (CMA-ES) from CMAEvolutionStrategy.jl
Type Hierarchy
CMAEvolutionStrategyCMAES <: OptimizationMethod <: OptimizationTypes <: SindbadTypes <: Any
Sindbad.Types.CalcFoldFromSplit Type
CalcFoldFromSplit
Use a split of the data to calculate the folds for cross-validation. The default wat to calculate the folds is by splitting the data into k-folds. In this case, the split is done on the go based on the values given in ml_training.split_ratios and n_folds.
Type Hierarchy
CalcFoldFromSplit <: MLTrainingType <: MLTypes <: SindbadTypes <: Any
Sindbad.Types.CostMethod Type
CostMethod
Abstract type for cost calculation methods in SINDBAD
Type Hierarchy
CostMethod <: OptimizationTypes <: SindbadTypes <: Any
Extended help
Available methods/subtypes:
CostModelObs
: cost calculation between model output and observationsCostModelObsLandTS
: cost calculation between land model output and time series observationsCostModelObsMT
: multi-threaded cost calculation between model output and observationsCostModelObsPriors
: cost calculation between model output, observations, and priors. NOTE THAT THIS METHOD IS JUST A PLACEHOLDER AND DOES NOT CALCULATE PRIOR COST PROPERLY YET
Sindbad.Types.CostModelObs Type
CostModelObs
cost calculation between model output and observations
Type Hierarchy
CostModelObs <: CostMethod <: OptimizationTypes <: SindbadTypes <: Any
Sindbad.Types.CostModelObsLandTS Type
CostModelObsLandTS
cost calculation between land model output and time series observations
Type Hierarchy
CostModelObsLandTS <: CostMethod <: OptimizationTypes <: SindbadTypes <: Any
Sindbad.Types.CostModelObsMT Type
CostModelObsMT
multi-threaded cost calculation between model output and observations
Type Hierarchy
CostModelObsMT <: CostMethod <: OptimizationTypes <: SindbadTypes <: Any
Sindbad.Types.CostModelObsPriors Type
CostModelObsPriors
cost calculation between model output, observations, and priors. NOTE THAT THIS METHOD IS JUST A PLACEHOLDER AND DOES NOT CALCULATE PRIOR COST PROPERLY YET
Type Hierarchy
CostModelObsPriors <: CostMethod <: OptimizationTypes <: SindbadTypes <: Any
Sindbad.Types.CustomSigmoid Type
CustomSigmoid
Use a custom sigmoid activation function. In this case, the k_σ
parameter in ml_model sections of the settings is used to control the steepness of the sigmoid function.
Type Hierarchy
CustomSigmoid <: ActivationType <: MLTypes <: SindbadTypes <: Any
Sindbad.Types.DataAggrOrder Type
DataAggrOrder
Abstract type for data aggregation order in SINDBAD
Type Hierarchy
DataAggrOrder <: MetricTypes <: SindbadTypes <: Any
Extended help
Available methods/subtypes:
SpaceTime
: Aggregate data first over space, then over timeTimeSpace
: Aggregate data first over time, then over space
Sindbad.Types.DataFormatBackend Type
DataFormatBackend
Abstract type for input data backends in SINDBAD
Type Hierarchy
DataFormatBackend <: InputTypes <: SindbadTypes <: Any
Extended help
Available methods/subtypes:
BackendNetcdf
: Use NetCDF format for input dataBackendZarr
: Use Zarr format for input data
Sindbad.Types.DoCalcCost Type
DoCalcCost
Enable cost calculation between model output and observations
Type Hierarchy
DoCalcCost <: RunFlag <: ExperimentTypes <: SindbadTypes <: Any
Sindbad.Types.DoCatchModelErrors Type
DoCatchModelErrors
Enable error catching during model execution
Type Hierarchy
DoCatchModelErrors <: ModelTypes <: SindbadTypes <: Any
Sindbad.Types.DoDebugModel Type
DoDebugModel
Enable model debugging mode
Type Hierarchy
DoDebugModel <: RunFlag <: ExperimentTypes <: SindbadTypes <: Any
Sindbad.Types.DoFilterNanPixels Type
DoFilterNanPixels
Enable filtering of NaN values in spatial data
Type Hierarchy
DoFilterNanPixels <: RunFlag <: ExperimentTypes <: SindbadTypes <: Any
Sindbad.Types.DoInlineUpdate Type
DoInlineUpdate
Enable inline updates of model state
Type Hierarchy
DoInlineUpdate <: RunFlag <: ExperimentTypes <: SindbadTypes <: Any
Sindbad.Types.DoNotCalcCost Type
DoNotCalcCost
Disable cost calculation between model output and observations
Type Hierarchy
DoNotCalcCost <: RunFlag <: ExperimentTypes <: SindbadTypes <: Any
Sindbad.Types.DoNotCatchModelErrors Type
DoNotCatchModelErrors
Disable error catching during model execution
Type Hierarchy
DoNotCatchModelErrors <: ModelTypes <: SindbadTypes <: Any
Sindbad.Types.DoNotDebugModel Type
DoNotDebugModel
Disable model debugging mode
Type Hierarchy
DoNotDebugModel <: RunFlag <: ExperimentTypes <: SindbadTypes <: Any
Sindbad.Types.DoNotFilterNanPixels Type
DoNotFilterNanPixels
Disable filtering of NaN values in spatial data
Type Hierarchy
DoNotFilterNanPixels <: RunFlag <: ExperimentTypes <: SindbadTypes <: Any
Sindbad.Types.DoNotInlineUpdate Type
DoNotInlineUpdate
Disable inline updates of model state
Type Hierarchy
DoNotInlineUpdate <: RunFlag <: ExperimentTypes <: SindbadTypes <: Any
Sindbad.Types.DoNotOutputAll Type
DoNotOutputAll
Disable output of all model variables
Type Hierarchy
DoNotOutputAll <: OutputStrategy <: ExperimentTypes <: SindbadTypes <: Any
Sindbad.Types.DoNotRunForward Type
DoNotRunForward
Disable forward model run
Type Hierarchy
DoNotRunForward <: RunFlag <: ExperimentTypes <: SindbadTypes <: Any
Sindbad.Types.DoNotRunOptimization Type
DoNotRunOptimization
Disable model parameter optimization
Type Hierarchy
DoNotRunOptimization <: RunFlag <: ExperimentTypes <: SindbadTypes <: Any
Sindbad.Types.DoNotSaveInfo Type
DoNotSaveInfo
Disable saving of model information
Type Hierarchy
DoNotSaveInfo <: RunFlag <: ExperimentTypes <: SindbadTypes <: Any
Sindbad.Types.DoNotSaveSingleFile Type
DoNotSaveSingleFile
Save output variables in separate files
Type Hierarchy
DoNotSaveSingleFile <: OutputStrategy <: ExperimentTypes <: SindbadTypes <: Any
Sindbad.Types.DoNotSpinupTEM Type
DoNotSpinupTEM
Disable terrestrial ecosystem model spinup
Type Hierarchy
DoNotSpinupTEM <: RunFlag <: ExperimentTypes <: SindbadTypes <: Any
Sindbad.Types.DoNotStoreSpinup Type
DoNotStoreSpinup
Disable storing of spinup results
Type Hierarchy
DoNotStoreSpinup <: RunFlag <: ExperimentTypes <: SindbadTypes <: Any
Sindbad.Types.DoNotUseForwardDiff Type
DoNotUseForwardDiff
Disable forward mode automatic differentiation
Type Hierarchy
DoNotUseForwardDiff <: RunFlag <: ExperimentTypes <: SindbadTypes <: Any
Sindbad.Types.DoOutputAll Type
DoOutputAll
Enable output of all model variables
Type Hierarchy
DoOutputAll <: OutputStrategy <: ExperimentTypes <: SindbadTypes <: Any
Sindbad.Types.DoRunForward Type
DoRunForward
Enable forward model run
Type Hierarchy
DoRunForward <: RunFlag <: ExperimentTypes <: SindbadTypes <: Any
Sindbad.Types.DoRunOptimization Type
DoRunOptimization
Enable model parameter optimization
Type Hierarchy
DoRunOptimization <: RunFlag <: ExperimentTypes <: SindbadTypes <: Any
Sindbad.Types.DoSaveInfo Type
DoSaveInfo
Enable saving of model information
Type Hierarchy
DoSaveInfo <: RunFlag <: ExperimentTypes <: SindbadTypes <: Any
Sindbad.Types.DoSaveSingleFile Type
DoSaveSingleFile
Save all output variables in a single file
Type Hierarchy
DoSaveSingleFile <: OutputStrategy <: ExperimentTypes <: SindbadTypes <: Any
Sindbad.Types.DoSpinupTEM Type
DoSpinupTEM
Enable terrestrial ecosystem model spinup
Type Hierarchy
DoSpinupTEM <: RunFlag <: ExperimentTypes <: SindbadTypes <: Any
Sindbad.Types.DoStoreSpinup Type
DoStoreSpinup
Enable storing of spinup results
Type Hierarchy
DoStoreSpinup <: RunFlag <: ExperimentTypes <: SindbadTypes <: Any
Sindbad.Types.DoUseForwardDiff Type
DoUseForwardDiff
Enable forward mode automatic differentiation
Type Hierarchy
DoUseForwardDiff <: RunFlag <: ExperimentTypes <: SindbadTypes <: Any
Sindbad.Types.EnzymeGrad Type
EnzymeGrad
Use Enzyme.jl for automatic differentiation
Type Hierarchy
EnzymeGrad <: MLGradType <: MLTypes <: SindbadTypes <: Any
Sindbad.Types.EtaScaleA0H Type
EtaScaleA0H
scale carbon pools using diagnostic scalars for ηH and c_remain
Type Hierarchy
EtaScaleA0H <: SpinupMode <: SpinupTypes <: SindbadTypes <: Any
Sindbad.Types.EtaScaleA0HCWD Type
EtaScaleA0HCWD
scale carbon pools of CWD (cLitSlow) using ηH and set vegetation pools to c_remain
Type Hierarchy
EtaScaleA0HCWD <: SpinupMode <: SpinupTypes <: SindbadTypes <: Any
Sindbad.Types.EtaScaleAH Type
EtaScaleAH
scale carbon pools using diagnostic scalars for ηH and ηA
Type Hierarchy
EtaScaleAH <: SpinupMode <: SpinupTypes <: SindbadTypes <: Any
Sindbad.Types.EtaScaleAHCWD Type
EtaScaleAHCWD
scale carbon pools of CWD (cLitSlow) using ηH and scale vegetation pools by ηA
Type Hierarchy
EtaScaleAHCWD <: SpinupMode <: SpinupTypes <: SindbadTypes <: Any
Sindbad.Types.EvolutionaryCMAES Type
EvolutionaryCMAES
Evolutionary version of CMA-ES optimization from Evolutionary.jl
Type Hierarchy
EvolutionaryCMAES <: OptimizationMethod <: OptimizationTypes <: SindbadTypes <: Any
Sindbad.Types.ExperimentTypes Type
ExperimentTypes
Abstract type for model run flags and experimental setup and simulations in SINDBAD
Type Hierarchy
ExperimentTypes <: SindbadTypes <: Any
Extended help
Available methods/subtypes:
OutputStrategy
: Abstract type for model output strategies in SINDBADDoNotOutputAll
: Disable output of all model variablesDoNotSaveSingleFile
: Save output variables in separate filesDoOutputAll
: Enable output of all model variablesDoSaveSingleFile
: Save all output variables in a single file
ParallelizationPackage
: Abstract type for using different parallelization packages in SINDBADQbmapParallelization
: Use Qbmap for parallelizationThreadsParallelization
: Use Julia threads for parallelization
RunFlag
: Abstract type for model run configuration flags in SINDBADDoCalcCost
: Enable cost calculation between model output and observationsDoDebugModel
: Enable model debugging modeDoFilterNanPixels
: Enable filtering of NaN values in spatial dataDoInlineUpdate
: Enable inline updates of model stateDoNotCalcCost
: Disable cost calculation between model output and observationsDoNotDebugModel
: Disable model debugging modeDoNotFilterNanPixels
: Disable filtering of NaN values in spatial dataDoNotInlineUpdate
: Disable inline updates of model stateDoNotRunForward
: Disable forward model runDoNotRunOptimization
: Disable model parameter optimizationDoNotSaveInfo
: Disable saving of model informationDoNotSpinupTEM
: Disable terrestrial ecosystem model spinupDoNotStoreSpinup
: Disable storing of spinup resultsDoNotUseForwardDiff
: Disable forward mode automatic differentiationDoRunForward
: Enable forward model runDoRunOptimization
: Enable model parameter optimizationDoSaveInfo
: Enable saving of model informationDoSpinupTEM
: Enable terrestrial ecosystem model spinupDoStoreSpinup
: Enable storing of spinup resultsDoUseForwardDiff
: Enable forward mode automatic differentiation
Sindbad.Types.FiniteDiffGrad Type
FiniteDiffGrad
Use FiniteDiff.jl for finite difference calculations
Type Hierarchy
FiniteDiffGrad <: MLGradType <: MLTypes <: SindbadTypes <: Any
Sindbad.Types.FiniteDifferencesGrad Type
FiniteDifferencesGrad
Use FiniteDifferences.jl for finite difference calculations
Type Hierarchy
FiniteDifferencesGrad <: MLGradType <: MLTypes <: SindbadTypes <: Any
Sindbad.Types.FluxDenseNN Type
FluxDenseNN
simple dense neural network model implemented in Flux.jl
Type Hierarchy
FluxDenseNN <: MLModelType <: MLTypes <: SindbadTypes <: Any
Sindbad.Types.FluxRelu Type
FluxRelu
Use Flux.jl ReLU activation function
Type Hierarchy
FluxRelu <: ActivationType <: MLTypes <: SindbadTypes <: Any
Sindbad.Types.FluxSigmoid Type
FluxSigmoid
Use Flux.jl Sigmoid activation function
Type Hierarchy
FluxSigmoid <: ActivationType <: MLTypes <: SindbadTypes <: Any
Sindbad.Types.FluxTanh Type
FluxTanh
Use Flux.jl Tanh activation function
Type Hierarchy
FluxTanh <: ActivationType <: MLTypes <: SindbadTypes <: Any
Sindbad.Types.ForcingWithTime Type
ForcingWithTime
Forcing variable with time dimension
Type Hierarchy
ForcingWithTime <: ForcingTime <: InputTypes <: SindbadTypes <: Any
Sindbad.Types.ForcingWithoutTime Type
ForcingWithoutTime
Forcing variable without time dimension
Type Hierarchy
ForcingWithoutTime <: ForcingTime <: InputTypes <: SindbadTypes <: Any
Sindbad.Types.ForwardDiffGrad Type
ForwardDiffGrad
Use ForwardDiff.jl for automatic differentiation
Type Hierarchy
ForwardDiffGrad <: MLGradType <: MLTypes <: SindbadTypes <: Any
Sindbad.Types.GSAMethod Type
GSAMethod
Abstract type for global sensitivity analysis methods in SINDBAD
Type Hierarchy
GSAMethod <: OptimizationTypes <: SindbadTypes <: Any
Extended help
Available methods/subtypes:
GSAMorris
: Morris method for global sensitivity analysisGSASobol
: Sobol method for global sensitivity analysisGSASobolDM
: Sobol method with derivative-based measures for global sensitivity analysis
Sindbad.Types.GSAMorris Type
GSAMorris
Morris method for global sensitivity analysis
Type Hierarchy
GSAMorris <: GSAMethod <: OptimizationTypes <: SindbadTypes <: Any
Sindbad.Types.GSASobol Type
GSASobol
Sobol method for global sensitivity analysis
Type Hierarchy
GSASobol <: GSAMethod <: OptimizationTypes <: SindbadTypes <: Any
Sindbad.Types.GSASobolDM Type
GSASobolDM
Sobol method with derivative-based measures for global sensitivity analysis
Type Hierarchy
GSASobolDM <: GSAMethod <: OptimizationTypes <: SindbadTypes <: Any
Sindbad.Types.InputArray Type
InputArray
Use standard Julia arrays for input data
Type Hierarchy
InputArray <: InputArrayBackend <: InputTypes <: SindbadTypes <: Any
Sindbad.Types.InputArrayBackend Type
InputArrayBackend
Abstract type for input data array types in SINDBAD
Type Hierarchy
InputArrayBackend <: InputTypes <: SindbadTypes <: Any
Extended help
Available methods/subtypes:
InputArray
: Use standard Julia arrays for input dataInputKeyedArray
: Use keyed arrays for input dataInputNamedDimsArray
: Use named dimension arrays for input dataInputYaxArray
: Use YAXArray for input data
Sindbad.Types.InputKeyedArray Type
InputKeyedArray
Use keyed arrays for input data
Type Hierarchy
InputKeyedArray <: InputArrayBackend <: InputTypes <: SindbadTypes <: Any
Sindbad.Types.InputNamedDimsArray Type
InputNamedDimsArray
Use named dimension arrays for input data
Type Hierarchy
InputNamedDimsArray <: InputArrayBackend <: InputTypes <: SindbadTypes <: Any
Sindbad.Types.InputTypes Type
InputTypes
Abstract type for input data and processing related options in SINDBAD
Type Hierarchy
InputTypes <: SindbadTypes <: Any
Extended help
Available methods/subtypes:
DataFormatBackend
: Abstract type for input data backends in SINDBADBackendNetcdf
: Use NetCDF format for input dataBackendZarr
: Use Zarr format for input data
ForcingTime
: Abstract type for forcing variable types in SINDBADForcingWithTime
: Forcing variable with time dimensionForcingWithoutTime
: Forcing variable without time dimension
InputArrayBackend
: Abstract type for input data array types in SINDBADInputArray
: Use standard Julia arrays for input dataInputKeyedArray
: Use keyed arrays for input dataInputNamedDimsArray
: Use named dimension arrays for input dataInputYaxArray
: Use YAXArray for input data
SpatialSubsetter
: Abstract type for spatial subsetting methods in SINDBADSpaceID
: Use site ID (all caps) for spatial subsettingSpaceId
: Use site ID (capitalized) for spatial subsettingSpaceid
: Use site ID for spatial subsettingSpacelat
: Use latitude for spatial subsettingSpacelatitude
: Use full latitude for spatial subsettingSpacelon
: Use longitude for spatial subsettingSpacelongitude
: Use full longitude for spatial subsettingSpacesite
: Use site location for spatial subsetting
Sindbad.Types.InputYaxArray Type
InputYaxArray
Use YAXArray for input data
Type Hierarchy
InputYaxArray <: InputArrayBackend <: InputTypes <: SindbadTypes <: Any
Sindbad.Types.LandTypes Type
LandTypes
Abstract type for land related types that are typically used in preparing objects for model runs in SINDBAD
Type Hierarchy
LandTypes <: SindbadTypes <: Any
Extended help
Available methods/subtypes:
LandWrapperType
: Abstract type for land wrapper types in SINDBADGroupView
: Represents a group of data within aLandWrapper
, allowing access to specific groups of variables.LandWrapper
: Wraps the nested fields of a NamedTuple output of SINDBAD land into a nested structure of views that can be easily accessed with dot notation.
PreAlloc
: Abstract type for preallocated land helpers types in prepTEM of SINDBADPreAllocArray
: use a preallocated array for model outputPreAllocArrayAll
: use a preallocated array to output all land variablesPreAllocArrayFD
: use a preallocated array for finite difference (FD) hybrid experimentsPreAllocArrayMT
: use arrays of nThreads size for land model output for replicates of multiple threadsPreAllocStacked
: save output as a stacked vector of land using map over temporal dimensionPreAllocTimeseries
: save land output as a preallocated vector for time series of landPreAllocYAXArray
: use YAX arrays for model output
Sindbad.Types.LoadFoldFromFile Type
LoadFoldFromFile
Use precalculated data to load the folds for cross-validation. In this case, the data path has to be set under ml_training.fold_path and ml_training.which_fold. The data has to be in the format of a jld2 file with the following structure: /folds/0, /folds/1, /folds/2, ... /folds/n_folds. Each fold has to be a tuple of the form (train_indices, test_indices).
Type Hierarchy
LoadFoldFromFile <: MLTrainingType <: MLTypes <: SindbadTypes <: Any
Sindbad.Types.LossModelObsML Type
LossModelObsML
Loss function using metrics between the predicted model and observation as defined in optimization.json
Type Hierarchy
LossModelObsML <: MLTrainingType <: MLTypes <: SindbadTypes <: Any
Sindbad.Types.MLGradType Type
MLGradType
Abstract type for automatic differentiation or finite differences for gradient calculations
Type Hierarchy
MLGradType <: MLTypes <: SindbadTypes <: Any
Extended help
Available methods/subtypes:
EnzymeGrad
: Use Enzyme.jl for automatic differentiationFiniteDiffGrad
: Use FiniteDiff.jl for finite difference calculationsFiniteDifferencesGrad
: Use FiniteDifferences.jl for finite difference calculationsForwardDiffGrad
: Use ForwardDiff.jl for automatic differentiationPolyesterForwardDiffGrad
: Use PolyesterForwardDiff.jl for automatic differentiationZygoteGrad
: Use Zygote.jl for automatic differentiation
Sindbad.Types.MLModelType Type
MLModelType
Abstract type for machine learning models used in SINDBAD
Type Hierarchy
MLModelType <: MLTypes <: SindbadTypes <: Any
Extended help
Available methods/subtypes:
FluxDenseNN
: simple dense neural network model implemented in Flux.jl
Sindbad.Types.MLOptimizerType Type
MLOptimizerType
Abstract type for optimizers used for training ML models in SINDBAD
Type Hierarchy
MLOptimizerType <: MLTypes <: SindbadTypes <: Any
Extended help
Available methods/subtypes:
OptimisersAdam
: Use Optimisers.jl Adam optimizer for training ML models in SINDBAD
Sindbad.Types.MLTrainingType Type
MLTrainingType
Abstract type for training a hybrid algorithm in SINDBAD
Type Hierarchy
MLTrainingType <: MLTypes <: SindbadTypes <: Any
Extended help
Available methods/subtypes:
MixedGradient
: Use a mixed gradient approach for training using gradient from multiple methods and combining them with pullback from zygote
Sindbad.Types.MLTypes Type
MLTypes
Abstract type for types in machine learning related methods in SINDBAD
Type Hierarchy
MLTypes <: SindbadTypes <: Any
Extended help
Available methods/subtypes:
MLGradType
: Abstract type for automatic differentiation or finite differences for gradient calculationsEnzymeGrad
: Use Enzyme.jl for automatic differentiationFiniteDiffGrad
: Use FiniteDiff.jl for finite difference calculationsFiniteDifferencesGrad
: Use FiniteDifferences.jl for finite difference calculationsForwardDiffGrad
: Use ForwardDiff.jl for automatic differentiationPolyesterForwardDiffGrad
: Use PolyesterForwardDiff.jl for automatic differentiationZygoteGrad
: Use Zygote.jl for automatic differentiation
Sindbad.Types.MSE Type
MSE
Mean Squared Error: Measures the average squared difference between predicted and observed values
Type Hierarchy
MSE <: PerfMetric <: MetricTypes <: SindbadTypes <: Any
Sindbad.Types.MetricMaximum Type
MetricMaximum
Take maximum value across spatial dimensions
Type Hierarchy
MetricMaximum <: SpatialMetricAggr <: MetricTypes <: SindbadTypes <: Any
Sindbad.Types.MetricMinimum Type
MetricMinimum
Take minimum value across spatial dimensions
Type Hierarchy
MetricMinimum <: SpatialMetricAggr <: MetricTypes <: SindbadTypes <: Any
Sindbad.Types.MetricSpatial Type
MetricSpatial
Apply spatial aggregation to metrics
Type Hierarchy
MetricSpatial <: SpatialMetricAggr <: MetricTypes <: SindbadTypes <: Any
Sindbad.Types.MetricSum Type
MetricSum
Sum values across spatial dimensions
Type Hierarchy
MetricSum <: SpatialMetricAggr <: MetricTypes <: SindbadTypes <: Any
Sindbad.Types.MetricTypes Type
MetricTypes
Abstract type for performance metrics and cost calculation methods in SINDBAD
Type Hierarchy
MetricTypes <: SindbadTypes <: Any
Extended help
Available methods/subtypes:
DataAggrOrder
: Abstract type for data aggregation order in SINDBADSpaceTime
: Aggregate data first over space, then over timeTimeSpace
: Aggregate data first over time, then over space
PerfMetric
: Abstract type for performance metrics in SINDBADMSE
: Mean Squared Error: Measures the average squared difference between predicted and observed valuesNAME1R
: Normalized Absolute Mean Error with 1/R scaling: Measures the absolute difference between means normalized by the range of observationsNMAE1R
: Normalized Mean Absolute Error with 1/R scaling: Measures the average absolute error normalized by the range of observationsNNSE
: Normalized Nash-Sutcliffe Efficiency: Measures model performance relative to the mean of observations, normalized to [0,1] rangeNNSEInv
: Inverse Normalized Nash-Sutcliffe Efficiency: Inverse of NNSE for minimization problems, normalized to [0,1] rangeNNSEσ
: Normalized Nash-Sutcliffe Efficiency with uncertainty: Incorporates observation uncertainty in the normalized performance measureNNSEσInv
: Inverse Normalized Nash-Sutcliffe Efficiency with uncertainty: Inverse of NNSEσ for minimization problemsNPcor
: Normalized Pearson Correlation: Measures linear correlation between predictions and observations, normalized to [0,1] rangeNPcorInv
: Inverse Normalized Pearson Correlation: Inverse of NPcor for minimization problemsNSE
: Nash-Sutcliffe Efficiency: Measures model performance relative to the mean of observationsNSEInv
: Inverse Nash-Sutcliffe Efficiency: Inverse of NSE for minimization problemsNSEσ
: Nash-Sutcliffe Efficiency with uncertainty: Incorporates observation uncertainty in the performance measureNSEσInv
: Inverse Nash-Sutcliffe Efficiency with uncertainty: Inverse of NSEσ for minimization problemsNScor
: Normalized Spearman Correlation: Measures monotonic relationship between predictions and observations, normalized to [0,1] rangeNScorInv
: Inverse Normalized Spearman Correlation: Inverse of NScor for minimization problemsPcor
: Pearson Correlation: Measures linear correlation between predictions and observationsPcor2
: Squared Pearson Correlation: Measures the strength of linear relationship between predictions and observationsPcor2Inv
: Inverse Squared Pearson Correlation: Inverse of Pcor2 for minimization problemsPcorInv
: Inverse Pearson Correlation: Inverse of Pcor for minimization problemsScor
: Spearman Correlation: Measures monotonic relationship between predictions and observationsScor2
: Squared Spearman Correlation: Measures the strength of monotonic relationship between predictions and observationsScor2Inv
: Inverse Squared Spearman Correlation: Inverse of Scor2 for minimization problemsScorInv
: Inverse Spearman Correlation: Inverse of Scor for minimization problems
SpatialDataAggr
: Abstract type for spatial data aggregation methods in SINDBADSpatialMetricAggr
: Abstract type for spatial metric aggregation methods in SINDBADMetricMaximum
: Take maximum value across spatial dimensionsMetricMinimum
: Take minimum value across spatial dimensionsMetricSpatial
: Apply spatial aggregation to metricsMetricSum
: Sum values across spatial dimensions
Sindbad.Types.MixedGradient Type
MixedGradient
Use a mixed gradient approach for training using gradient from multiple methods and combining them with pullback from zygote
Type Hierarchy
MixedGradient <: MLTrainingType <: MLTypes <: SindbadTypes <: Any
Sindbad.Types.ModelArrayArray Type
ModelArrayArray
Use standard Julia arrays for model variables
Type Hierarchy
ModelArrayArray <: ModelArrayType <: ArrayTypes <: SindbadTypes <: Any
Sindbad.Types.ModelArrayStaticArray Type
ModelArrayStaticArray
Use StaticArrays for model variables
Type Hierarchy
ModelArrayStaticArray <: ModelArrayType <: ArrayTypes <: SindbadTypes <: Any
Sindbad.Types.ModelArrayType Type
ModelArrayType
Abstract type for internal model array types in SINDBAD
Type Hierarchy
ModelArrayType <: ArrayTypes <: SindbadTypes <: Any
Extended help
Available methods/subtypes:
ModelArrayArray
: Use standard Julia arrays for model variablesModelArrayStaticArray
: Use StaticArrays for model variablesModelArrayView
: Use array views for model variables
Sindbad.Types.ModelArrayView Type
ModelArrayView
Use array views for model variables
Type Hierarchy
ModelArrayView <: ModelArrayType <: ArrayTypes <: SindbadTypes <: Any
Sindbad.Types.ModelTypes Type
ModelTypes
Abstract type for model types in SINDBAD
Type Hierarchy
ModelTypes <: SindbadTypes <: Any
Extended help
Available methods/subtypes:
DoCatchModelErrors
: Enable error catching during model executionDoNotCatchModelErrors
: Disable error catching during model executionLandEcosystem
: Abstract type for all SINDBAD land ecosystem models/approachesEVI
: Enhanced vegetation indexEVI_constant
: sets EVI as a constantEVI_forcing
: sets land.states.EVI from forcing
LAI
: Leaf area indexLAI_cVegLeaf
: sets land.states.LAI from the carbon in the leaves of the previous time stepLAI_constant
: sets LAI as a constantLAI_forcing
: sets land.states.LAI from forcing
NDVI
: Normalized difference vegetation indexNDVI_constant
: sets NDVI as a constantNDVI_forcing
: sets land.states.NDVI from forcing
NDWI
: Normalized difference water indexNDWI_constant
: sets NDWI as a constantNDWI_forcing
: sets land.states.NDWI from forcing
NIRv
: Near-infrared reflectance of terrestrial vegetationNIRv_constant
: sets NIRv as a constantNIRv_forcing
: sets land.states.NIRv from forcing
PET
: Set/get potential evapotranspirationPET_Lu2005
: Calculates land.fluxes.PET from the forcing variablesPET_PriestleyTaylor1972
: Calculates land.fluxes.PET from the forcing variablesPET_forcing
: sets land.fluxes.PET from the forcing
PFT
: Vegetation PFTPFT_constant
: sets a uniform PFT class
WUE
: Estimate wueWUE_Medlyn2011
: calculates the WUE/AOE ci/ca as a function of daytime mean VPD. calculates the WUE/AOE ci/ca as a function of daytime mean VPD & ambient co2WUE_VPDDay
: calculates the WUE/AOE as a function of WUE at 1hpa daily mean VPDWUE_VPDDayCo2
: calculates the WUE/AOE as a function of WUE at 1hpa daily mean VPDWUE_constant
: calculates the WUE/AOE as a constant in space & timeWUE_expVPDDayCo2
: calculates the WUE/AOE as a function of WUE at 1hpa daily mean VPD
ambientCO2
: sets/gets ambient CO2 concentrationambientCO2_constant
: sets ambient_CO2 to a constant valueambientCO2_forcing
: sets ambient_CO2 from forcing
autoRespiration
: estimates autotrophic respiration for growth and maintenanceautoRespiration_Thornley2000A
: estimates autotrophic respiration as maintenance + growth respiration according to Thornley & Cannell [2000]: MODEL A - maintenance respiration is given priority.autoRespiration_Thornley2000B
: estimates autotrophic respiration as maintenance + growth respiration according to Thornley & Cannell [2000]: MODEL B - growth respiration is given priority.autoRespiration_Thornley2000C
: estimates autotrophic respiration as maintenance + growth respiration according to Thornley & Cannell [2000]: MODEL C - growth, degradation & resynthesis view of respiration. Computes the km [maintenance [respiration] coefficient].autoRespiration_none
: sets the autotrophic respiration flux from all vegetation pools to zero.
autoRespirationAirT
: temperature effect on autotrophic respirationautoRespirationAirT_Q10
: temperature effect on autotrophic maintenance respiration following a Q10 response modelautoRespirationAirT_none
: sets the temperature effect on autotrophic respiration to one (i.e. no effect)
cAllocation
: Compute the allocation of C fixed by photosynthesis to the different vegetation pools (fraction of the net carbon fixation received by each vegetation carbon pool on every times step).cAllocation_Friedlingstein1999
: Compute the fraction of fixed C that is allocated to the different plant organs following the scheme of Friedlingstein et al., 1999 (section `Allocation response to multiple stresses``).cAllocation_GSI
: Compute the fraction of fixated C that is allocated to the different plant organs. The allocation is dynamic in time according to temperature, water & radiation stressors estimated following the GSI approach. Inspired by the work of Friedlingstein et al., 1999, based on Sharpe and Rykiel 1991, but here following the growing season index (GSI) as stress diagnostics, following Forkel et al 2014 and 2015, based on Jolly et al., 2005.cAllocation_fixed
: Compute the fraction of net primary production (NPP) allocated to different plant organs with fixed allocation parameters.
The allocation is adjusted based on the TreeFrac fraction (land.states.frac_tree). Root allocation is further divided into fine (cf2Root) and coarse roots (cf2RootCoarse) according to the frac_fine_to_coarse parameter.
- `cAllocation_none`: sets the carbon allocation to zero (nothing to allocated)
- `cAllocationLAI`: Estimates allocation to the leaf pool given light limitation constraints to photosynthesis. Estimation via dynamics in leaf area index (LAI). Dynamic allocation approach.
- `cAllocationLAI_Friedlingstein1999`: Estimate the effect of light limitation on carbon allocation via leaf area index (LAI) based on Friedlingstein et al., 1999.
- `cAllocationLAI_none`: sets the LAI effect on allocation to one (no effect)
- `cAllocationNutrients`: (pseudo)effect of nutrients on carbon allocation
- `cAllocationNutrients_Friedlingstein1999`: pseudo-nutrient limitation calculation based on Friedlingstein1999
- `cAllocationNutrients_none`: sets the pseudo-nutrient limitation to one (no effect)
- `cAllocationRadiation`: Effect of radiation on carbon allocation
- `cAllocationRadiation_GSI`: radiation effect on allocation using GSI method
- `cAllocationRadiation_RgPot`: radiation effect on allocation using potential radiation instead of actual one
- `cAllocationRadiation_gpp`: radiation effect on allocation = the same for GPP
- `cAllocationRadiation_none`: sets the radiation effect on allocation to one (no effect)
- `cAllocationSoilT`: Effect of soil temperature on carbon allocation
- `cAllocationSoilT_Friedlingstein1999`: partial temperature effect on decomposition/mineralization based on Friedlingstein1999
- `cAllocationSoilT_gpp`: temperature effect on allocation = the same as gpp
- `cAllocationSoilT_gppGSI`: temperature effect on allocation from same for GPP based on GSI approach
- `cAllocationSoilT_none`: sets the temperature effect on allocation to one (no effect)
- `cAllocationSoilW`: Effect of soil moisture on carbon allocation
- `cAllocationSoilW_Friedlingstein1999`: partial moisture effect on decomposition/mineralization based on Friedlingstein1999
- `cAllocationSoilW_gpp`: moisture effect on allocation = the same as gpp
- `cAllocationSoilW_gppGSI`: moisture effect on allocation from same for GPP based on GSI approach
- `cAllocationSoilW_none`: sets the moisture effect on allocation to one (no effect)
- `cAllocationTreeFraction`: Adjustment of carbon allocation according to tree cover
- `cAllocationTreeFraction_Friedlingstein1999`: adjust the allocation coefficients according to the fraction of trees to herbaceous & fine to coarse root partitioning
- `cBiomass`: Compute aboveground_biomass
- `cBiomass_simple`: calculates aboveground biomass as a sum of wood and leaf carbon pools.
- `cBiomass_treeGrass`: This serves the in situ optimization of eddy covariance sites when using AGB as a constraint. In locations where tree cover is not zero, AGB = leaf + wood. In locations where is only grass, there are no observational constraints for AGB. AGB from EO mostly refers to forested locations. To ensure that the parameter set that emerges from optimization does not generate wood, while not assuming any prior on mass of leafs, the aboveground biomass of grasses is set to the wood value, that will be constrained against a pseudo-observational value close to 0. One expects that after optimization, cVegWood_sum will be close to 0 in locations where frac_tree = 0.
- `cBiomass_treeGrass_cVegReserveScaling`: same as treeGrass, but includes scaling for relative fraction of cVegReserve pool
- `cCycle`: Allocate carbon to vegetation components
- `cCycle_CASA`: Calculate decay rates for the ecosystem C pools at appropriate time steps. Perform carbon cycle between pools
- `cCycle_GSI`: Calculate decay rates for the ecosystem C pools at appropriate time steps. Perform carbon cycle between pools
- `cCycle_simple`: Calculate decay rates for the ecosystem C pools at appropriate time steps. Perform carbon cycle between pools
- `cCycleBase`: Pool structure of the carbon cycle
- `cCycleBase_CASA`: Compute carbon to nitrogen ratio & base turnover rates
- `cCycleBase_GSI`: sets the basics for carbon cycle in the GSI approach
- `cCycleBase_GSI_PlantForm`: sets the basics for carbon cycle pools as in the GSI, but allows for scaling of turnover parameters based on plant forms
- `cCycleBase_GSI_PlantForm_LargeKReserve`: same as cCycleBase_GSI_PlantForm but with a larger turnover of reserve so that it respires and flows
- `cCycleBase_simple`: Compute carbon to nitrogen ratio & annual turnover rates
- `cCycleConsistency`: Consistency checks on the c allocation and transfers between pools
- `cCycleConsistency_simple`: check consistency in cCycle vector: c_allocation; cFlow
- `cCycleDisturbance`: Disturb the carbon cycle pools
- `cCycleDisturbance_WROASTED`: move all vegetation carbon pools except reserve to respective flow target when there is disturbance
- `cCycleDisturbance_cFlow`: move all vegetation carbon pools except reserve to respective flow target when there is disturbance
- `cFlow`: Actual transfers of c between pools (of diagonal components)
- `cFlow_CASA`: combine all the effects that change the transfers between carbon pools
- `cFlow_GSI`: compute the flow rates between the different pools. The flow rates are based on the GSI approach. The flow rates are computed based on the stressors (soil moisture, temperature, and light) and the slope of the stressors. The flow rates are computed for the following pools: leaf, root, reserve, and litter. The flow rates are computed for the following processes: leaf to reserve, root to reserve, reserve to leaf, reserve to root, shedding from leaf, and shedding from root.
- `cFlow_none`: set transfer between pools to 0 [i.e. nothing is transfered] set c*giver & c*taker matrices to [] get the transfer matrix transfers
- `cFlow_simple`: combine all the effects that change the transfers between carbon pools
- `cFlowSoilProperties`: Effect of soil properties on the c transfers between pools
- `cFlowSoilProperties_CASA`: effects of soil that change the transfers between carbon pools
- `cFlowSoilProperties_none`: set transfer between pools to 0 [i.e. nothing is transfered]
- `cFlowVegProperties`: Effect of vegetation properties on the c transfers between pools
- `cFlowVegProperties_CASA`: effects of vegetation that change the transfers between carbon pools
- `cFlowVegProperties_none`: set transfer between pools to 0 [i.e. nothing is transfered]
- `cTau`: Combine effects of different factors on decomposition rates
- `cTau_mult`: multiply all effects that change the turnover rates [k]
- `cTau_none`: set the actual τ to ones
- `cTauLAI`: Calculate litterfall scalars (that affect the changes in the vegetation k)
- `cTauLAI_CASA`: calc LAI stressor on τ. Compute the seasonal cycle of litter fall & root litterfall based on LAI variations. Necessarily in precomputation mode
- `cTauLAI_none`: set values to ones
- `cTauSoilProperties`: Effect of soil texture on soil decomposition rates
- `cTauSoilProperties_CASA`: Compute soil texture effects on turnover rates [k] of cMicSoil
- `cTauSoilProperties_none`: Set soil texture effects to ones (ineficient, should be pix zix_mic)
- `cTauSoilT`: Effect of soil temperature on decomposition rates
- `cTauSoilT_Q10`: Compute effect of temperature on psoil carbon fluxes
- `cTauSoilT_none`: set the outputs to ones
- `cTauSoilW`: Effect of soil moisture on decomposition rates
- `cTauSoilW_CASA`: Compute effect of soil moisture on soil decomposition as modelled in CASA [BGME - below grounf moisture effect]. The below ground moisture effect; taken directly from the century model; uses soil moisture from the previous month to determine a scalar that is then used to determine the moisture effect on below ground carbon fluxes. BGME is dependent on PET; Rainfall. This approach is designed to work for Rainfall & PET values at the monthly time step & it is necessary to scale it to meet that criterion.
- `cTauSoilW_GSI`: calculate the moisture stress for cTau based on temperature stressor function of CASA & Potter
- `cTauSoilW_none`: set the moisture stress for all carbon pools to ones
- `cTauVegProperties`: Effect of vegetation properties on soil decomposition rates
- `cTauVegProperties_CASA`: Compute effect of vegetation type on turnover rates [k]
- `cTauVegProperties_none`: set the outputs to ones
- `cVegetationDieOff`: Disturb the carbon cycle pools
- `cVegetationDieOff_forcing`: reads and passes along to the land diagnostics the fraction of vegetation pools that die off
- `capillaryFlow`: Flux of water from lower to upper soil layers (upward soil moisture movement)
- `capillaryFlow_VanDijk2010`: computes the upward water flow in the soil layers
- `deriveVariables`: Derive extra variables
- `deriveVariables_simple`: derives variables from other sindbad models and saves them into land.deriveVariables
- `drainage`: Recharge the soil
- `drainage_dos`: downward flow of moisture [drainage] in soil layers based on exponential function of soil moisture degree of saturation
- `drainage_kUnsat`: downward flow of moisture [drainage] in soil layers based on unsaturated hydraulic conductivity
- `drainage_wFC`: downward flow of moisture [drainage] in soil layers based on overflow over field capacity
- `evaporation`: Soil evaporation
- `evaporation_Snyder2000`: calculates the bare soil evaporation using relative drying rate of soil
- `evaporation_bareFraction`: calculates the bare soil evaporation from 1-frac*vegetation of the grid & PET*evaporation
- `evaporation_demandSupply`: calculates the bare soil evaporation from demand-supply limited approach.
- `evaporation_fAPAR`: calculates the bare soil evaporation from 1-fAPAR & PET soil
- `evaporation_none`: sets the soil evaporation to zero
- `evaporation_vegFraction`: calculates the bare soil evaporation from 1-frac_vegetation & PET soil
- `evapotranspiration`: Calculate the evapotranspiration as a sum of components
- `evapotranspiration_sum`: calculates evapotranspiration as a sum of all potential components
- `fAPAR`: Fraction of absorbed photosynthetically active radiation
- `fAPAR_EVI`: calculates fAPAR as a linear function of EVI
- `fAPAR_LAI`: sets fAPAR as a function of LAI
- `fAPAR_cVegLeaf`: Compute FAPAR based on carbon pool of the leave; SLA; kLAI
- `fAPAR_cVegLeafBareFrac`: Compute FAPAR based on carbon pool of the leaf, but only for the vegetation fraction
- `fAPAR_constant`: sets fAPAR as a constant
- `fAPAR_forcing`: sets land.states.fAPAR from forcing
- `fAPAR_vegFraction`: sets fAPAR as a linear function of vegetation fraction
- `getPools`: Get the amount of water at the beginning of timestep
- `getPools_simple`: gets the amount of water available for the current time step
- `gpp`: Combine effects as multiplicative or minimum; if coupled, uses transup
- `gpp_coupled`: calculate GPP based on transpiration supply & water use efficiency [coupled]
- `gpp_min`: compute the actual GPP with potential scaled by minimum stress scalar of demand & supply for uncoupled model structure [no coupling with transpiration]
- `gpp_mult`: compute the actual GPP with potential scaled by multiplicative stress scalar of demand & supply for uncoupled model structure [no coupling with transpiration]
- `gpp_none`: sets the actual GPP to zero
- `gpp_transpirationWUE`: calculate GPP based on transpiration & water use efficiency
- `gppAirT`: Effect of temperature
- `gppAirT_CASA`: temperature stress for gpp_potential based on CASA & Potter
- `gppAirT_GSI`: temperature stress on gpp_potential based on GSI implementation of LPJ
- `gppAirT_MOD17`: temperature stress on gpp_potential based on GPP - MOD17 model
- `gppAirT_Maekelae2008`: temperature stress on gpp_potential based on Maekelae2008 [eqn 3 & 4]
- `gppAirT_TEM`: temperature stress for gpp_potential based on TEM
- `gppAirT_Wang2014`: temperature stress on gpp_potential based on Wang2014
- `gppAirT_none`: sets the temperature stress on gpp_potential to one (no stress)
- `gppDemand`: Combine effects as multiplicative or minimum
- `gppDemand_min`: compute the demand GPP as minimum of all stress scalars [most limited]
- `gppDemand_mult`: compute the demand GPP as multipicative stress scalars
- `gppDemand_none`: sets the scalar for demand GPP to ones & demand GPP to zero
- `gppDiffRadiation`: Effect of diffuse radiation
- `gppDiffRadiation_GSI`: cloudiness scalar [radiation diffusion] on gpp_potential based on GSI implementation of LPJ
- `gppDiffRadiation_Turner2006`: cloudiness scalar [radiation diffusion] on gpp_potential based on Turner2006
- `gppDiffRadiation_Wang2015`: cloudiness scalar [radiation diffusion] on gpp_potential based on Wang2015
- `gppDiffRadiation_none`: sets the cloudiness scalar [radiation diffusion] for gpp_potential to one
- `gppDirRadiation`: Effect of direct radiation
- `gppDirRadiation_Maekelae2008`: light saturation scalar [light effect] on gpp_potential based on Maekelae2008
- `gppDirRadiation_none`: sets the light saturation scalar [light effect] on gpp_potential to one
- `gppPotential`: Maximum instantaneous radiation use efficiency
- `gppPotential_Monteith`: set the potential GPP based on radiation use efficiency
- `gppSoilW`: soil moisture stress on GPP
- `gppSoilW_CASA`: soil moisture stress on gpp_potential based on base stress and relative ratio of PET and PAW (CASA)
- `gppSoilW_GSI`: soil moisture stress on gpp_potential based on GSI implementation of LPJ
- `gppSoilW_Keenan2009`: soil moisture stress on gpp_potential based on Keenan2009
- `gppSoilW_Stocker2020`: soil moisture stress on gpp_potential based on Stocker2020
- `gppSoilW_none`: sets the soil moisture stress on gpp_potential to one (no stress)
- `gppVPD`: Vpd effect
- `gppVPD_MOD17`: VPD stress on gpp_potential based on MOD17 model
- `gppVPD_Maekelae2008`: calculate the VPD stress on gpp_potential based on Maekelae2008 [eqn 5]
- `gppVPD_PRELES`: VPD stress on gpp_potential based on Maekelae2008 and with co2 effect based on PRELES model
- `gppVPD_expco2`: VPD stress on gpp_potential based on Maekelae2008 and with co2 effect
- `gppVPD_none`: sets the VPD stress on gpp_potential to one (no stress)
- `groundWRecharge`: Recharge to the groundwater storage
- `groundWRecharge_dos`: GW recharge as a exponential functions of the degree of saturation of the lowermost soil layer
- `groundWRecharge_fraction`: GW recharge as a fraction of moisture of the lowermost soil layer
- `groundWRecharge_kUnsat`: GW recharge as the unsaturated hydraulic conductivity of the lowermost soil layer
- `groundWRecharge_none`: sets the GW recharge to zero
- `groundWSoilWInteraction`: Groundwater soil moisture interactions (e.g. capilary flux, water
- `groundWSoilWInteraction_VanDijk2010`: calculates the upward flow of water from groundwater to lowermost soil layer using VanDijk method
- `groundWSoilWInteraction_gradient`: calculates a buffer storage that gives water to the soil when the soil dries up; while the soil gives water to the buffer when the soil is wet but the buffer low
- `groundWSoilWInteraction_gradientNeg`: calculates a buffer storage that doesn't give water to the soil when the soil dries up; while the soil gives water to the groundW when the soil is wet but the groundW low; the groundW is only recharged by soil moisture
- `groundWSoilWInteraction_none`: sets the groundwater capillary flux to zero
- `groundWSurfaceWInteraction`: Water exchange between surface and groundwater
- `groundWSurfaceWInteraction_fracGradient`: calculates the moisture exchange between groundwater & surface water as a fraction of difference between the storages
- `groundWSurfaceWInteraction_fracGroundW`: calculates the depletion of groundwater to the surface water as a fraction of groundwater storage
- `interception`: Interception evaporation
- `interception_Miralles2010`: computes canopy interception evaporation according to the Gash model
- `interception_fAPAR`: computes canopy interception evaporation as a fraction of fAPAR
- `interception_none`: sets the interception evaporation to zero
- `interception_vegFraction`: computes canopy interception evaporation as a fraction of vegetation cover
- `percolation`: Calculate the soil percolation = wbp at this point
- `percolation_WBP`: computes the percolation into the soil after the surface runoff process
- `plantForm`: define the plant form of the ecosystem
- `plantForm_PFT`: get the plant form based on PFT
- `plantForm_fixed`: use a fixed plant form with 1: tree, 2: shrub, 3:herb
- `rainIntensity`: Set rainfall intensity
- `rainIntensity_forcing`: stores the time series of rainfall & snowfall from forcing
- `rainIntensity_simple`: stores the time series of rainfall intensity
- `rainSnow`: Set/get rain and snow
- `rainSnow_Tair`: separates the rain & snow based on temperature threshold
- `rainSnow_forcing`: stores the time series of rainfall and snowfall from forcing & scale snowfall if snowfall_scalar parameter is optimized
- `rainSnow_rain`: set all precip to rain
- `rootMaximumDepth`: Maximum rooting depth
- `rootMaximumDepth_fracSoilD`: sets the maximum rooting depth as a fraction of total soil depth. rootMaximumDepth_fracSoilD
- `rootWaterEfficiency`: Distribution of water uptake fraction/efficiency by root per soil layer
- `rootWaterEfficiency_constant`: sets the maximum fraction of water that root can uptake from soil layers as constant
- `rootWaterEfficiency_expCvegRoot`: maximum root water fraction that plants can uptake from soil layers according to total carbon in root [cVegRoot]. sets the maximum fraction of water that root can uptake from soil layers according to total carbon in root [cVegRoot]
- `rootWaterEfficiency_k2Layer`: sets the maximum fraction of water that root can uptake from soil layers as calibration parameter; hard coded for 2 soil layers
- `rootWaterEfficiency_k2fRD`: sets the maximum fraction of water that root can uptake from soil layers as function of vegetation fraction; & for the second soil layer additional as function of RD
- `rootWaterEfficiency_k2fvegFraction`: sets the maximum fraction of water that root can uptake from soil layers as function of vegetation fraction
- `rootWaterUptake`: Root water uptake (extract water from soil)
- `rootWaterUptake_proportion`: rootUptake from each soil layer proportional to the relative plant water availability in the layer
- `rootWaterUptake_topBottom`: rootUptake from each of the soil layer from top to bottom using all water in each layer
- `runoff`: Calculate the total runoff as a sum of components
- `runoff_sum`: calculates runoff as a sum of all potential components
- `runoffBase`: Baseflow
- `runoffBase_Zhang2008`: computes baseflow from a linear ground water storage
- `runoffBase_none`: sets the base runoff to zero
- `runoffInfiltrationExcess`: Infiltration excess runoff
- `runoffInfiltrationExcess_Jung`: infiltration excess runoff as a function of rainintensity and vegetated fraction
- `runoffInfiltrationExcess_kUnsat`: infiltration excess runoff based on unsaτurated hydraulic conductivity
- `runoffInfiltrationExcess_none`: sets infiltration excess runoff to zero
- `runoffInterflow`: Interflow
- `runoffInterflow_none`: sets interflow runoff to zero
- `runoffInterflow_residual`: interflow as a fraction of the available water balance pool
- `runoffOverland`: calculates total overland runoff that passes to the surface storage
- `runoffOverland_Inf`: ## assumes overland flow to be infiltration excess runoff
- `runoffOverland_InfIntSat`: assumes overland flow to be sum of infiltration excess, interflow, and saturation excess runoffs
- `runoffOverland_Sat`: assumes overland flow to be saturation excess runoff
- `runoffOverland_none`: sets overland runoff to zero
- `runoffSaturationExcess`: Saturation runoff
- `runoffSaturationExcess_Bergstroem1992`: saturation excess runoff using original Bergström method
- `runoffSaturationExcess_Bergstroem1992MixedVegFraction`: saturation excess runoff using Bergström method with separate berg parameters for vegetated and non-vegetated fractions
- `runoffSaturationExcess_Bergstroem1992VegFraction`: saturation excess runoff using Bergström method with parameter scaled by vegetation fraction
- `runoffSaturationExcess_Bergstroem1992VegFractionFroSoil`: saturation excess runoff using Bergström method with parameter scaled by vegetation fraction and frozen soil fraction
- `runoffSaturationExcess_Bergstroem1992VegFractionPFT`: saturation excess runoff using Bergström method with parameter scaled by vegetation fraction and PFT
- `runoffSaturationExcess_Zhang2008`: saturation excess runoff as a function of incoming water and PET
- `runoffSaturationExcess_none`: set the saturation excess runoff to zero
- `runoffSaturationExcess_satFraction`: saturation excess runoff as a fraction of saturated fraction of land
- `runoffSurface`: Surface runoff generation process
- `runoffSurface_Orth2013`: calculates the delay coefficient of first 60 days as a precomputation. calculates the base runoff
- `runoffSurface_Trautmann2018`: calculates the delay coefficient of first 60 days as a precomputation based on Orth et al. 2013 & as it is used in Trautmannet al. 2018. calculates the base runoff based on Orth et al. 2013 & as it is used in Trautmannet al. 2018
- `runoffSurface_all`: assumes all overland runoff is lost as surface runoff
- `runoffSurface_directIndirect`: assumes surface runoff is the sum of direct fraction of overland runoff and indirect fraction of surface water storage
- `runoffSurface_directIndirectFroSoil`: assumes surface runoff is the sum of direct fraction of overland runoff and indirect fraction of surface water storage. Direct fraction is additionally dependent on frozen fraction of the grid
- `runoffSurface_indirect`: assumes all overland runoff is recharged to surface water first, which then generates surface runoff
- `runoffSurface_none`: sets surface runoff [surface_runoff] from the storage to zero
- `saturatedFraction`: Saturated fraction of a grid cell
- `saturatedFraction_none`: sets the land.states.soilWSatFrac [saturated soil fraction] to zero
- `snowFraction`: Calculate snow cover fraction
- `snowFraction_HTESSEL`: computes the snow pack & fraction of snow cover following the HTESSEL approach
- `snowFraction_binary`: compute the fraction of snow cover.
- `snowFraction_none`: sets the snow fraction to zero
- `snowMelt`: Calculate snowmelt and update s.w.wsnow
- `snowMelt_Tair`: computes the snow melt term as function of air temperature
- `snowMelt_TairRn`: instantiate the potential snow melt based on temperature & net radiation on days with f*airT > 0.0°C. instantiate the potential snow melt based on temperature & net radiation on days with f*airT > 0.0 °C
- `soilProperties`: Soil properties (hydraulic properties)
- `soilProperties_Saxton1986`: assigns the soil hydraulic properties based on Saxton; 1986
- `soilProperties_Saxton2006`: assigns the soil hydraulic properties based on Saxton; 2006 to land.soilProperties.sp_
- `soilTexture`: Soil texture (sand,silt,clay, and organic matter fraction)
- `soilTexture_constant`: sets the soil texture properties as constant
- `soilTexture_forcing`: sets the soil texture properties from input
- `soilWBase`: Distribution of soil hydraulic properties over depth
- `soilWBase_smax1Layer`: defines the maximum soil water content of 1 soil layer as fraction of the soil depth defined in the model_structure.json based on the TWS model for the Northern Hemisphere
- `soilWBase_smax2Layer`: defines the maximum soil water content of 2 soil layers as fraction of the soil depth defined in the model_structure.json based on the older version of the Pre-Tokyo Model
- `soilWBase_smax2fRD4`: defines the maximum soil water content of 2 soil layers the first layer is a fraction [i.e. 1] of the soil depth the second layer is a linear combination of scaled rooting depth data from forcing
- `soilWBase_uniform`: distributes the soil hydraulic properties for different soil layers assuming an uniform vertical distribution of all soil properties
- `sublimation`: Calculate sublimation and update snow water equivalent
- `sublimation_GLEAM`: instantiates the Priestley-Taylor term for sublimation following GLEAM. computes sublimation following GLEAM
- `sublimation_none`: sets the snow sublimation to zero
- `transpiration`: calclulate the actual transpiration
- `transpiration_coupled`: calculate the actual transpiration as function of gpp & WUE
- `transpiration_demandSupply`: calculate the actual transpiration as the minimum of the supply & demand
- `transpiration_none`: sets the actual transpiration to zero
- `transpirationDemand`: Demand-driven transpiration
- `transpirationDemand_CASA`: calculate the supply limited transpiration as function of volumetric soil content & soil properties; as in the CASA model
- `transpirationDemand_PET`: calculate the climate driven demand for transpiration as a function of PET & α for vegetation
- `transpirationDemand_PETfAPAR`: calculate the climate driven demand for transpiration as a function of PET & fAPAR
- `transpirationDemand_PETvegFraction`: calculate the climate driven demand for transpiration as a function of PET & α for vegetation; & vegetation fraction
- `transpirationSupply`: Supply-limited transpiration
- `transpirationSupply_CASA`: calculate the supply limited transpiration as function of volumetric soil content & soil properties; as in the CASA model
- `transpirationSupply_Federer1982`: calculate the supply limited transpiration as a function of max rate parameter & avaialable water
- `transpirationSupply_wAWC`: calculate the supply limited transpiration as the minimum of fraction of total AWC & the actual available moisture
- `transpirationSupply_wAWCvegFraction`: calculate the supply limited transpiration as the minimum of fraction of total AWC & the actual available moisture; scaled by vegetated fractions
- `treeFraction`: Fractional coverage of trees
- `treeFraction_constant`: sets frac_tree as a constant
- `treeFraction_forcing`: sets land.states.frac_tree from forcing
- `vegAvailableWater`: Plant available water
- `vegAvailableWater_rootWaterEfficiency`: sets the maximum fraction of water that root can uptake from soil layers as constant. calculate the actual amount of water that is available for plants
- `vegAvailableWater_sigmoid`: calculate the actual amount of water that is available for plants
- `vegFraction`: Fractional coverage of vegetation
- `vegFraction_constant`: sets frac_vegetation as a constant
- `vegFraction_forcing`: sets land.states.frac_vegetation from forcing
- `vegFraction_scaledEVI`: sets frac_vegetation by scaling the EVI value
- `vegFraction_scaledLAI`: sets frac_vegetation by scaling the LAI value
- `vegFraction_scaledNDVI`: sets frac_vegetation by scaling the NDVI value
- `vegFraction_scaledNIRv`: sets frac_vegetation by scaling the NIRv value
- `vegFraction_scaledfAPAR`: sets frac_vegetation by scaling the fAPAR value
- `wCycle`: Apply the delta storage changes to storage variables
- `wCycle_combined`: computes the algebraic sum of storage and delta storage
- `wCycle_components`: update the water cycle pools per component
- `wCycleBase`: set the basics of the water cycle pools
- `wCycleBase_simple`: counts the number of layers in each water storage pools
- `waterBalance`: Calculate the water balance
- `waterBalance_simple`: check the water balance in every time step
Sindbad.Types.NAME1R Type
NAME1R
Normalized Absolute Mean Error with 1/R scaling: Measures the absolute difference between means normalized by the range of observations
Type Hierarchy
NAME1R <: PerfMetric <: MetricTypes <: SindbadTypes <: Any
Sindbad.Types.NMAE1R Type
NMAE1R
Normalized Mean Absolute Error with 1/R scaling: Measures the average absolute error normalized by the range of observations
Type Hierarchy
NMAE1R <: PerfMetric <: MetricTypes <: SindbadTypes <: Any
Sindbad.Types.NNSE Type
NNSE
Normalized Nash-Sutcliffe Efficiency: Measures model performance relative to the mean of observations, normalized to [0,1] range
Type Hierarchy
NNSE <: PerfMetric <: MetricTypes <: SindbadTypes <: Any
Sindbad.Types.NNSEInv Type
NNSEInv
Inverse Normalized Nash-Sutcliffe Efficiency: Inverse of NNSE for minimization problems, normalized to [0,1] range
Type Hierarchy
NNSEInv <: PerfMetric <: MetricTypes <: SindbadTypes <: Any
Sindbad.Types.NNSEσ Type
NNSEσ
Normalized Nash-Sutcliffe Efficiency with uncertainty: Incorporates observation uncertainty in the normalized performance measure
Type Hierarchy
NNSEσ <: PerfMetric <: MetricTypes <: SindbadTypes <: Any
Sindbad.Types.NNSEσInv Type
NNSEσInv
Inverse Normalized Nash-Sutcliffe Efficiency with uncertainty: Inverse of NNSEσ for minimization problems
Type Hierarchy
NNSEσInv <: PerfMetric <: MetricTypes <: SindbadTypes <: Any
Sindbad.Types.NPcor Type
NPcor
Normalized Pearson Correlation: Measures linear correlation between predictions and observations, normalized to [0,1] range
Type Hierarchy
NPcor <: PerfMetric <: MetricTypes <: SindbadTypes <: Any
Sindbad.Types.NPcorInv Type
NPcorInv
Inverse Normalized Pearson Correlation: Inverse of NPcor for minimization problems
Type Hierarchy
NPcorInv <: PerfMetric <: MetricTypes <: SindbadTypes <: Any
Sindbad.Types.NSE Type
NSE
Nash-Sutcliffe Efficiency: Measures model performance relative to the mean of observations
Type Hierarchy
NSE <: PerfMetric <: MetricTypes <: SindbadTypes <: Any
Sindbad.Types.NSEInv Type
NSEInv
Inverse Nash-Sutcliffe Efficiency: Inverse of NSE for minimization problems
Type Hierarchy
NSEInv <: PerfMetric <: MetricTypes <: SindbadTypes <: Any
Sindbad.Types.NSEσ Type
NSEσ
Nash-Sutcliffe Efficiency with uncertainty: Incorporates observation uncertainty in the performance measure
Type Hierarchy
NSEσ <: PerfMetric <: MetricTypes <: SindbadTypes <: Any
Sindbad.Types.NSEσInv Type
NSEσInv
Inverse Nash-Sutcliffe Efficiency with uncertainty: Inverse of NSEσ for minimization problems
Type Hierarchy
NSEσInv <: PerfMetric <: MetricTypes <: SindbadTypes <: Any
Sindbad.Types.NScor Type
NScor
Normalized Spearman Correlation: Measures monotonic relationship between predictions and observations, normalized to [0,1] range
Type Hierarchy
NScor <: PerfMetric <: MetricTypes <: SindbadTypes <: Any
Sindbad.Types.NScorInv Type
NScorInv
Inverse Normalized Spearman Correlation: Inverse of NScor for minimization problems
Type Hierarchy
NScorInv <: PerfMetric <: MetricTypes <: SindbadTypes <: Any
Sindbad.Types.NlsolveFixedpointTrustregionCEco Type
NlsolveFixedpointTrustregionCEco
use a fixed-point nonlinear solver with trust region for carbon pools (cEco)
Type Hierarchy
NlsolveFixedpointTrustregionCEco <: SpinupMode <: SpinupTypes <: SindbadTypes <: Any
Sindbad.Types.NlsolveFixedpointTrustregionCEcoTWS Type
NlsolveFixedpointTrustregionCEcoTWS
use a fixed-point nonlinear solver with trust region for both cEco and TWS
Type Hierarchy
NlsolveFixedpointTrustregionCEcoTWS <: SpinupMode <: SpinupTypes <: SindbadTypes <: Any
Sindbad.Types.NlsolveFixedpointTrustregionTWS Type
NlsolveFixedpointTrustregionTWS
use a fixed-point nonlinearsolver with trust region for Total Water Storage (TWS)
Type Hierarchy
NlsolveFixedpointTrustregionTWS <: SpinupMode <: SpinupTypes <: SindbadTypes <: Any
Sindbad.Types.ODEAutoTsit5Rodas5 Type
ODEAutoTsit5Rodas5
use the AutoVern7(Rodas5) method from DifferentialEquations.jl for solving ODEs
Type Hierarchy
ODEAutoTsit5Rodas5 <: SpinupMode <: SpinupTypes <: SindbadTypes <: Any
Sindbad.Types.ODEDP5 Type
ODEDP5
use the DP5 method from DifferentialEquations.jl for solving ODEs
Type Hierarchy
ODEDP5 <: SpinupMode <: SpinupTypes <: SindbadTypes <: Any
Sindbad.Types.ODETsit5 Type
ODETsit5
use the Tsit5 method from DifferentialEquations.jl for solving ODEs
Type Hierarchy
ODETsit5 <: SpinupMode <: SpinupTypes <: SindbadTypes <: Any
Sindbad.Types.OptimBFGS Type
OptimBFGS
Broyden-Fletcher-Goldfarb-Shanno (BFGS) from Optim.jl
Type Hierarchy
OptimBFGS <: OptimizationMethod <: OptimizationTypes <: SindbadTypes <: Any
Sindbad.Types.OptimLBFGS Type
OptimLBFGS
Limited-memory Broyden-Fletcher-Goldfarb-Shanno (L-BFGS) from Optim.jl
Type Hierarchy
OptimLBFGS <: OptimizationMethod <: OptimizationTypes <: SindbadTypes <: Any
Sindbad.Types.OptimisersAdam Type
OptimisersAdam
Use Optimisers.jl Adam optimizer for training ML models in SINDBAD
Type Hierarchy
OptimisersAdam <: MLOptimizerType <: MLTypes <: SindbadTypes <: Any
Sindbad.Types.OptimisersDescent Type
OptimisersDescent
Use Optimisers.jl Descent optimizer for training ML models in SINDBAD
Type Hierarchy
OptimisersDescent <: MLOptimizerType <: MLTypes <: SindbadTypes <: Any
Sindbad.Types.OptimizationBBOadaptive Type
OptimizationBBOadaptive
Black Box Optimization with adaptive parameters from Optimization.jl
Type Hierarchy
OptimizationBBOadaptive <: OptimizationMethod <: OptimizationTypes <: SindbadTypes <: Any
Sindbad.Types.OptimizationBBOxnes Type
OptimizationBBOxnes
Black Box Optimization using Natural Evolution Strategy (xNES) from Optimization.jl
Type Hierarchy
OptimizationBBOxnes <: OptimizationMethod <: OptimizationTypes <: SindbadTypes <: Any
Sindbad.Types.OptimizationBFGS Type
OptimizationBFGS
BFGS optimization with box constraints from Optimization.jl
Type Hierarchy
OptimizationBFGS <: OptimizationMethod <: OptimizationTypes <: SindbadTypes <: Any
Sindbad.Types.OptimizationFminboxGradientDescent Type
OptimizationFminboxGradientDescent
Gradient descent optimization with box constraints from Optimization.jl
Type Hierarchy
OptimizationFminboxGradientDescent <: OptimizationMethod <: OptimizationTypes <: SindbadTypes <: Any
Sindbad.Types.OptimizationFminboxGradientDescentFD Type
OptimizationFminboxGradientDescentFD
Gradient descent optimization with box constraints using forward differentiation from Optimization.jl
Type Hierarchy
OptimizationFminboxGradientDescentFD <: OptimizationMethod <: OptimizationTypes <: SindbadTypes <: Any
Sindbad.Types.OptimizationGCMAESDef Type
OptimizationGCMAESDef
Global CMA-ES optimization with default settings from Optimization.jl
Type Hierarchy
OptimizationGCMAESDef <: OptimizationMethod <: OptimizationTypes <: SindbadTypes <: Any
Sindbad.Types.OptimizationGCMAESFD Type
OptimizationGCMAESFD
Global CMA-ES optimization using forward differentiation from Optimization.jl
Type Hierarchy
OptimizationGCMAESFD <: OptimizationMethod <: OptimizationTypes <: SindbadTypes <: Any
Sindbad.Types.OptimizationMethod Type
OptimizationMethod
Abstract type for optimization methods in SINDBAD
Type Hierarchy
OptimizationMethod <: OptimizationTypes <: SindbadTypes <: Any
Extended help
Available methods/subtypes:
BayesOptKMaternARD5
: Bayesian Optimization using Matern 5/2 kernel with Automatic Relevance Determination from BayesOpt.jlCMAEvolutionStrategyCMAES
: Covariance Matrix Adaptation Evolution Strategy (CMA-ES) from CMAEvolutionStrategy.jlEvolutionaryCMAES
: Evolutionary version of CMA-ES optimization from Evolutionary.jlOptimBFGS
: Broyden-Fletcher-Goldfarb-Shanno (BFGS) from Optim.jlOptimLBFGS
: Limited-memory Broyden-Fletcher-Goldfarb-Shanno (L-BFGS) from Optim.jlOptimizationBBOadaptive
: Black Box Optimization with adaptive parameters from Optimization.jlOptimizationBBOxnes
: Black Box Optimization using Natural Evolution Strategy (xNES) from Optimization.jlOptimizationBFGS
: BFGS optimization with box constraints from Optimization.jlOptimizationFminboxGradientDescent
: Gradient descent optimization with box constraints from Optimization.jlOptimizationFminboxGradientDescentFD
: Gradient descent optimization with box constraints using forward differentiation from Optimization.jlOptimizationGCMAESDef
: Global CMA-ES optimization with default settings from Optimization.jlOptimizationGCMAESFD
: Global CMA-ES optimization using forward differentiation from Optimization.jlOptimizationMultistartOptimization
: Multi-start optimization to find global optimum from Optimization.jlOptimizationNelderMead
: Nelder-Mead simplex optimization method from Optimization.jlOptimizationQuadDirect
: Quadratic Direct optimization method from Optimization.jl
Sindbad.Types.OptimizationMultistartOptimization Type
OptimizationMultistartOptimization
Multi-start optimization to find global optimum from Optimization.jl
Type Hierarchy
OptimizationMultistartOptimization <: OptimizationMethod <: OptimizationTypes <: SindbadTypes <: Any
Sindbad.Types.OptimizationNelderMead Type
OptimizationNelderMead
Nelder-Mead simplex optimization method from Optimization.jl
Type Hierarchy
OptimizationNelderMead <: OptimizationMethod <: OptimizationTypes <: SindbadTypes <: Any
Sindbad.Types.OptimizationQuadDirect Type
OptimizationQuadDirect
Quadratic Direct optimization method from Optimization.jl
Type Hierarchy
OptimizationQuadDirect <: OptimizationMethod <: OptimizationTypes <: SindbadTypes <: Any
Sindbad.Types.OptimizationTypes Type
OptimizationTypes
Abstract type for optimization related functions and methods in SINDBAD
Type Hierarchy
OptimizationTypes <: SindbadTypes <: Any
Extended help
Available methods/subtypes:
CostMethod
: Abstract type for cost calculation methods in SINDBADCostModelObs
: cost calculation between model output and observationsCostModelObsLandTS
: cost calculation between land model output and time series observationsCostModelObsMT
: multi-threaded cost calculation between model output and observationsCostModelObsPriors
: cost calculation between model output, observations, and priors. NOTE THAT THIS METHOD IS JUST A PLACEHOLDER AND DOES NOT CALCULATE PRIOR COST PROPERLY YET
GSAMethod
: Abstract type for global sensitivity analysis methods in SINDBADGSAMorris
: Morris method for global sensitivity analysisGSASobol
: Sobol method for global sensitivity analysisGSASobolDM
: Sobol method with derivative-based measures for global sensitivity analysis
OptimizationMethod
: Abstract type for optimization methods in SINDBADBayesOptKMaternARD5
: Bayesian Optimization using Matern 5/2 kernel with Automatic Relevance Determination from BayesOpt.jlCMAEvolutionStrategyCMAES
: Covariance Matrix Adaptation Evolution Strategy (CMA-ES) from CMAEvolutionStrategy.jlEvolutionaryCMAES
: Evolutionary version of CMA-ES optimization from Evolutionary.jlOptimBFGS
: Broyden-Fletcher-Goldfarb-Shanno (BFGS) from Optim.jlOptimLBFGS
: Limited-memory Broyden-Fletcher-Goldfarb-Shanno (L-BFGS) from Optim.jlOptimizationBBOadaptive
: Black Box Optimization with adaptive parameters from Optimization.jlOptimizationBBOxnes
: Black Box Optimization using Natural Evolution Strategy (xNES) from Optimization.jlOptimizationBFGS
: BFGS optimization with box constraints from Optimization.jlOptimizationFminboxGradientDescent
: Gradient descent optimization with box constraints from Optimization.jlOptimizationFminboxGradientDescentFD
: Gradient descent optimization with box constraints using forward differentiation from Optimization.jlOptimizationGCMAESDef
: Global CMA-ES optimization with default settings from Optimization.jlOptimizationGCMAESFD
: Global CMA-ES optimization using forward differentiation from Optimization.jlOptimizationMultistartOptimization
: Multi-start optimization to find global optimum from Optimization.jlOptimizationNelderMead
: Nelder-Mead simplex optimization method from Optimization.jlOptimizationQuadDirect
: Quadratic Direct optimization method from Optimization.jl
ParameterScaling
: Abstract type for parameter scaling methods in SINDBADScaleBounds
: Scale parameters relative to their boundsScaleDefault
: Scale parameters relative to default valuesScaleNone
: No parameter scaling applied
Sindbad.Types.OutputArray Type
OutputArray
Use standard Julia arrays for output
Type Hierarchy
OutputArray <: OutputArrayType <: ArrayTypes <: SindbadTypes <: Any
Sindbad.Types.OutputArrayType Type
OutputArrayType
Abstract type for output array types in SINDBAD
Type Hierarchy
OutputArrayType <: ArrayTypes <: SindbadTypes <: Any
Extended help
Available methods/subtypes:
OutputArray
: Use standard Julia arrays for outputOutputMArray
: Use MArray for outputOutputSizedArray
: Use SizedArray for outputOutputYAXArray
: Use YAXArray for output
Sindbad.Types.OutputMArray Type
OutputMArray
Use MArray for output
Type Hierarchy
OutputMArray <: OutputArrayType <: ArrayTypes <: SindbadTypes <: Any
Sindbad.Types.OutputSizedArray Type
OutputSizedArray
Use SizedArray for output
Type Hierarchy
OutputSizedArray <: OutputArrayType <: ArrayTypes <: SindbadTypes <: Any
Sindbad.Types.OutputStrategy Type
OutputStrategy
Abstract type for model output strategies in SINDBAD
Type Hierarchy
OutputStrategy <: ExperimentTypes <: SindbadTypes <: Any
Extended help
Available methods/subtypes:
DoNotOutputAll
: Disable output of all model variablesDoNotSaveSingleFile
: Save output variables in separate filesDoOutputAll
: Enable output of all model variablesDoSaveSingleFile
: Save all output variables in a single file
Sindbad.Types.OutputYAXArray Type
OutputYAXArray
Use YAXArray for output
Type Hierarchy
OutputYAXArray <: OutputArrayType <: ArrayTypes <: SindbadTypes <: Any
Sindbad.Types.ParallelizationPackage Type
ParallelizationPackage
Abstract type for using different parallelization packages in SINDBAD
Type Hierarchy
ParallelizationPackage <: ExperimentTypes <: SindbadTypes <: Any
Extended help
Available methods/subtypes:
QbmapParallelization
: Use Qbmap for parallelizationThreadsParallelization
: Use Julia threads for parallelization
Sindbad.Types.ParameterScaling Type
ParameterScaling
Abstract type for parameter scaling methods in SINDBAD
Type Hierarchy
ParameterScaling <: OptimizationTypes <: SindbadTypes <: Any
Extended help
Available methods/subtypes:
ScaleBounds
: Scale parameters relative to their boundsScaleDefault
: Scale parameters relative to default valuesScaleNone
: No parameter scaling applied
Sindbad.Types.Pcor Type
Pcor
Pearson Correlation: Measures linear correlation between predictions and observations
Type Hierarchy
Pcor <: PerfMetric <: MetricTypes <: SindbadTypes <: Any
Sindbad.Types.Pcor2 Type
Pcor2
Squared Pearson Correlation: Measures the strength of linear relationship between predictions and observations
Type Hierarchy
Pcor2 <: PerfMetric <: MetricTypes <: SindbadTypes <: Any
Sindbad.Types.Pcor2Inv Type
Pcor2Inv
Inverse Squared Pearson Correlation: Inverse of Pcor2 for minimization problems
Type Hierarchy
Pcor2Inv <: PerfMetric <: MetricTypes <: SindbadTypes <: Any
Sindbad.Types.PcorInv Type
PcorInv
Inverse Pearson Correlation: Inverse of Pcor for minimization problems
Type Hierarchy
PcorInv <: PerfMetric <: MetricTypes <: SindbadTypes <: Any
Sindbad.Types.PerfMetric Type
PerfMetric
Abstract type for performance metrics in SINDBAD
Type Hierarchy
PerfMetric <: MetricTypes <: SindbadTypes <: Any
Extended help
Available methods/subtypes:
MSE
: Mean Squared Error: Measures the average squared difference between predicted and observed valuesNAME1R
: Normalized Absolute Mean Error with 1/R scaling: Measures the absolute difference between means normalized by the range of observationsNMAE1R
: Normalized Mean Absolute Error with 1/R scaling: Measures the average absolute error normalized by the range of observationsNNSE
: Normalized Nash-Sutcliffe Efficiency: Measures model performance relative to the mean of observations, normalized to [0,1] rangeNNSEInv
: Inverse Normalized Nash-Sutcliffe Efficiency: Inverse of NNSE for minimization problems, normalized to [0,1] rangeNNSEσ
: Normalized Nash-Sutcliffe Efficiency with uncertainty: Incorporates observation uncertainty in the normalized performance measureNNSEσInv
: Inverse Normalized Nash-Sutcliffe Efficiency with uncertainty: Inverse of NNSEσ for minimization problemsNPcor
: Normalized Pearson Correlation: Measures linear correlation between predictions and observations, normalized to [0,1] rangeNPcorInv
: Inverse Normalized Pearson Correlation: Inverse of NPcor for minimization problemsNSE
: Nash-Sutcliffe Efficiency: Measures model performance relative to the mean of observationsNSEInv
: Inverse Nash-Sutcliffe Efficiency: Inverse of NSE for minimization problemsNSEσ
: Nash-Sutcliffe Efficiency with uncertainty: Incorporates observation uncertainty in the performance measureNSEσInv
: Inverse Nash-Sutcliffe Efficiency with uncertainty: Inverse of NSEσ for minimization problemsNScor
: Normalized Spearman Correlation: Measures monotonic relationship between predictions and observations, normalized to [0,1] rangeNScorInv
: Inverse Normalized Spearman Correlation: Inverse of NScor for minimization problemsPcor
: Pearson Correlation: Measures linear correlation between predictions and observationsPcor2
: Squared Pearson Correlation: Measures the strength of linear relationship between predictions and observationsPcor2Inv
: Inverse Squared Pearson Correlation: Inverse of Pcor2 for minimization problemsPcorInv
: Inverse Pearson Correlation: Inverse of Pcor for minimization problemsScor
: Spearman Correlation: Measures monotonic relationship between predictions and observationsScor2
: Squared Spearman Correlation: Measures the strength of monotonic relationship between predictions and observationsScor2Inv
: Inverse Squared Spearman Correlation: Inverse of Scor2 for minimization problemsScorInv
: Inverse Spearman Correlation: Inverse of Scor for minimization problems
Sindbad.Types.PolyesterForwardDiffGrad Type
PolyesterForwardDiffGrad
Use PolyesterForwardDiff.jl for automatic differentiation
Type Hierarchy
PolyesterForwardDiffGrad <: MLGradType <: MLTypes <: SindbadTypes <: Any
Sindbad.Types.PreAlloc Type
PreAlloc
Abstract type for preallocated land helpers types in prepTEM of SINDBAD
Type Hierarchy
PreAlloc <: LandTypes <: SindbadTypes <: Any
Extended help
Available methods/subtypes:
PreAllocArray
: use a preallocated array for model outputPreAllocArrayAll
: use a preallocated array to output all land variablesPreAllocArrayFD
: use a preallocated array for finite difference (FD) hybrid experimentsPreAllocArrayMT
: use arrays of nThreads size for land model output for replicates of multiple threadsPreAllocStacked
: save output as a stacked vector of land using map over temporal dimensionPreAllocTimeseries
: save land output as a preallocated vector for time series of landPreAllocYAXArray
: use YAX arrays for model output
Sindbad.Types.PreAllocArray Type
PreAllocArray
use a preallocated array for model output
Type Hierarchy
PreAllocArray <: PreAlloc <: LandTypes <: SindbadTypes <: Any
Sindbad.Types.PreAllocArrayAll Type
PreAllocArrayAll
use a preallocated array to output all land variables
Type Hierarchy
PreAllocArrayAll <: PreAlloc <: LandTypes <: SindbadTypes <: Any
Sindbad.Types.PreAllocArrayFD Type
PreAllocArrayFD
use a preallocated array for finite difference (FD) hybrid experiments
Type Hierarchy
PreAllocArrayFD <: PreAlloc <: LandTypes <: SindbadTypes <: Any
Sindbad.Types.PreAllocArrayMT Type
PreAllocArrayMT
use arrays of nThreads size for land model output for replicates of multiple threads
Type Hierarchy
PreAllocArrayMT <: PreAlloc <: LandTypes <: SindbadTypes <: Any
Sindbad.Types.PreAllocStacked Type
PreAllocStacked
save output as a stacked vector of land using map over temporal dimension
Type Hierarchy
PreAllocStacked <: PreAlloc <: LandTypes <: SindbadTypes <: Any
Sindbad.Types.PreAllocTimeseries Type
PreAllocTimeseries
save land output as a preallocated vector for time series of land
Type Hierarchy
PreAllocTimeseries <: PreAlloc <: LandTypes <: SindbadTypes <: Any
Sindbad.Types.PreAllocYAXArray Type
PreAllocYAXArray
use YAX arrays for model output
Type Hierarchy
PreAllocYAXArray <: PreAlloc <: LandTypes <: SindbadTypes <: Any
Sindbad.Types.QbmapParallelization Type
QbmapParallelization
Use Qbmap for parallelization
Type Hierarchy
QbmapParallelization <: ParallelizationPackage <: ExperimentTypes <: SindbadTypes <: Any
Sindbad.Types.RunFlag Type
RunFlag
Abstract type for model run configuration flags in SINDBAD
Type Hierarchy
RunFlag <: ExperimentTypes <: SindbadTypes <: Any
Extended help
Available methods/subtypes:
DoCalcCost
: Enable cost calculation between model output and observationsDoDebugModel
: Enable model debugging modeDoFilterNanPixels
: Enable filtering of NaN values in spatial dataDoInlineUpdate
: Enable inline updates of model stateDoNotCalcCost
: Disable cost calculation between model output and observationsDoNotDebugModel
: Disable model debugging modeDoNotFilterNanPixels
: Disable filtering of NaN values in spatial dataDoNotInlineUpdate
: Disable inline updates of model stateDoNotRunForward
: Disable forward model runDoNotRunOptimization
: Disable model parameter optimizationDoNotSaveInfo
: Disable saving of model informationDoNotSpinupTEM
: Disable terrestrial ecosystem model spinupDoNotStoreSpinup
: Disable storing of spinup resultsDoNotUseForwardDiff
: Disable forward mode automatic differentiationDoRunForward
: Enable forward model runDoRunOptimization
: Enable model parameter optimizationDoSaveInfo
: Enable saving of model informationDoSpinupTEM
: Enable terrestrial ecosystem model spinupDoStoreSpinup
: Enable storing of spinup resultsDoUseForwardDiff
: Enable forward mode automatic differentiation
Sindbad.Types.SSPDynamicSSTsit5 Type
SSPDynamicSSTsit5
use the SteadyState solver with DynamicSS and Tsit5 methods
Type Hierarchy
SSPDynamicSSTsit5 <: SpinupMode <: SpinupTypes <: SindbadTypes <: Any
Sindbad.Types.SSPSSRootfind Type
SSPSSRootfind
use the SteadyState solver with SSRootfind method
Type Hierarchy
SSPSSRootfind <: SpinupMode <: SpinupTypes <: SindbadTypes <: Any
Sindbad.Types.ScaleBounds Type
ScaleBounds
Scale parameters relative to their bounds
Type Hierarchy
ScaleBounds <: ParameterScaling <: OptimizationTypes <: SindbadTypes <: Any
Sindbad.Types.ScaleDefault Type
ScaleDefault
Scale parameters relative to default values
Type Hierarchy
ScaleDefault <: ParameterScaling <: OptimizationTypes <: SindbadTypes <: Any
Sindbad.Types.ScaleNone Type
ScaleNone
No parameter scaling applied
Type Hierarchy
ScaleNone <: ParameterScaling <: OptimizationTypes <: SindbadTypes <: Any
Sindbad.Types.Scor Type
Scor
Spearman Correlation: Measures monotonic relationship between predictions and observations
Type Hierarchy
Scor <: PerfMetric <: MetricTypes <: SindbadTypes <: Any
Sindbad.Types.Scor2 Type
Scor2
Squared Spearman Correlation: Measures the strength of monotonic relationship between predictions and observations
Type Hierarchy
Scor2 <: PerfMetric <: MetricTypes <: SindbadTypes <: Any
Sindbad.Types.Scor2Inv Type
Scor2Inv
Inverse Squared Spearman Correlation: Inverse of Scor2 for minimization problems
Type Hierarchy
Scor2Inv <: PerfMetric <: MetricTypes <: SindbadTypes <: Any
Sindbad.Types.ScorInv Type
ScorInv
Inverse Spearman Correlation: Inverse of Scor for minimization problems
Type Hierarchy
ScorInv <: PerfMetric <: MetricTypes <: SindbadTypes <: Any
Sindbad.Types.SelSpinupModels Type
SelSpinupModels
run only the models selected for spinup in the model structure
Type Hierarchy
SelSpinupModels <: SpinupMode <: SpinupTypes <: SindbadTypes <: Any
Sindbad.Types.SpaceID Type
SpaceID
Use site ID (all caps) for spatial subsetting
Type Hierarchy
SpaceID <: SpatialSubsetter <: InputTypes <: SindbadTypes <: Any
Sindbad.Types.SpaceId Type
SpaceId
Use site ID (capitalized) for spatial subsetting
Type Hierarchy
SpaceId <: SpatialSubsetter <: InputTypes <: SindbadTypes <: Any
Sindbad.Types.SpaceTime Type
SpaceTime
Aggregate data first over space, then over time
Type Hierarchy
SpaceTime <: DataAggrOrder <: MetricTypes <: SindbadTypes <: Any
Sindbad.Types.Spaceid Type
Spaceid
Use site ID for spatial subsetting
Type Hierarchy
Spaceid <: SpatialSubsetter <: InputTypes <: SindbadTypes <: Any
Sindbad.Types.Spacelat Type
Spacelat
Use latitude for spatial subsetting
Type Hierarchy
Spacelat <: SpatialSubsetter <: InputTypes <: SindbadTypes <: Any
Sindbad.Types.Spacelatitude Type
Spacelatitude
Use full latitude for spatial subsetting
Type Hierarchy
Spacelatitude <: SpatialSubsetter <: InputTypes <: SindbadTypes <: Any
Sindbad.Types.Spacelon Type
Spacelon
Use longitude for spatial subsetting
Type Hierarchy
Spacelon <: SpatialSubsetter <: InputTypes <: SindbadTypes <: Any
Sindbad.Types.Spacelongitude Type
Spacelongitude
Use full longitude for spatial subsetting
Type Hierarchy
Spacelongitude <: SpatialSubsetter <: InputTypes <: SindbadTypes <: Any
Sindbad.Types.Spacesite Type
Spacesite
Use site location for spatial subsetting
Type Hierarchy
Spacesite <: SpatialSubsetter <: InputTypes <: SindbadTypes <: Any
Sindbad.Types.SpatialDataAggr Type
SpatialDataAggr
Abstract type for spatial data aggregation methods in SINDBAD
Type Hierarchy
SpatialDataAggr <: MetricTypes <: SindbadTypes <: Any
Sindbad.Types.SpatialMetricAggr Type
SpatialMetricAggr
Abstract type for spatial metric aggregation methods in SINDBAD
Type Hierarchy
SpatialMetricAggr <: MetricTypes <: SindbadTypes <: Any
Extended help
Available methods/subtypes:
MetricMaximum
: Take maximum value across spatial dimensionsMetricMinimum
: Take minimum value across spatial dimensionsMetricSpatial
: Apply spatial aggregation to metricsMetricSum
: Sum values across spatial dimensions
Sindbad.Types.SpatialSubsetter Type
SpatialSubsetter
Abstract type for spatial subsetting methods in SINDBAD
Type Hierarchy
SpatialSubsetter <: InputTypes <: SindbadTypes <: Any
Extended help
Available methods/subtypes:
SpaceID
: Use site ID (all caps) for spatial subsettingSpaceId
: Use site ID (capitalized) for spatial subsettingSpaceid
: Use site ID for spatial subsettingSpacelat
: Use latitude for spatial subsettingSpacelatitude
: Use full latitude for spatial subsettingSpacelon
: Use longitude for spatial subsettingSpacelongitude
: Use full longitude for spatial subsettingSpacesite
: Use site location for spatial subsetting
Sindbad.Types.SpinupMode Type
SpinupMode
Abstract type for model spinup modes in SINDBAD
Type Hierarchy
SpinupMode <: SpinupTypes <: SindbadTypes <: Any
Extended help
Available methods/subtypes:
AllForwardModels
: Use all forward models for spinupEtaScaleA0H
: scale carbon pools using diagnostic scalars for ηH and c_remainEtaScaleA0HCWD
: scale carbon pools of CWD (cLitSlow) using ηH and set vegetation pools to c_remainEtaScaleAH
: scale carbon pools using diagnostic scalars for ηH and ηAEtaScaleAHCWD
: scale carbon pools of CWD (cLitSlow) using ηH and scale vegetation pools by ηANlsolveFixedpointTrustregionCEco
: use a fixed-point nonlinear solver with trust region for carbon pools (cEco)NlsolveFixedpointTrustregionCEcoTWS
: use a fixed-point nonlinear solver with trust region for both cEco and TWSNlsolveFixedpointTrustregionTWS
: use a fixed-point nonlinearsolver with trust region for Total Water Storage (TWS)ODEAutoTsit5Rodas5
: use the AutoVern7(Rodas5) method from DifferentialEquations.jl for solving ODEsODEDP5
: use the DP5 method from DifferentialEquations.jl for solving ODEsODETsit5
: use the Tsit5 method from DifferentialEquations.jl for solving ODEsSSPDynamicSSTsit5
: use the SteadyState solver with DynamicSS and Tsit5 methodsSSPSSRootfind
: use the SteadyState solver with SSRootfind methodSelSpinupModels
: run only the models selected for spinup in the model structureSpinup_TWS
: Spinup spinup_mode for Total Water Storage (TWS)Spinup_cEco
: Spinup spinup_mode for cEcoSpinup_cEco_TWS
: Spinup spinup_mode for cEco and TWS
Sindbad.Types.SpinupSequence Type
SpinupSequence
Basic Spinup sequence without time aggregation
Type Hierarchy
SpinupSequence <: SpinupTypes <: SindbadTypes <: Any
Sindbad.Types.SpinupSequenceWithAggregator Type
SpinupSequenceWithAggregator
Spinup sequence with time aggregation for corresponding forcingtime series
Type Hierarchy
SpinupSequenceWithAggregator <: SpinupTypes <: SindbadTypes <: Any
Sindbad.Types.SpinupTypes Type
SpinupTypes
Abstract type for model spinup related functions and methods in SINDBAD
Type Hierarchy
SpinupTypes <: SindbadTypes <: Any
Extended help
Available methods/subtypes:
SpinupMode
: Abstract type for model spinup modes in SINDBADAllForwardModels
: Use all forward models for spinupEtaScaleA0H
: scale carbon pools using diagnostic scalars for ηH and c_remainEtaScaleA0HCWD
: scale carbon pools of CWD (cLitSlow) using ηH and set vegetation pools to c_remainEtaScaleAH
: scale carbon pools using diagnostic scalars for ηH and ηAEtaScaleAHCWD
: scale carbon pools of CWD (cLitSlow) using ηH and scale vegetation pools by ηANlsolveFixedpointTrustregionCEco
: use a fixed-point nonlinear solver with trust region for carbon pools (cEco)NlsolveFixedpointTrustregionCEcoTWS
: use a fixed-point nonlinear solver with trust region for both cEco and TWSNlsolveFixedpointTrustregionTWS
: use a fixed-point nonlinearsolver with trust region for Total Water Storage (TWS)ODEAutoTsit5Rodas5
: use the AutoVern7(Rodas5) method from DifferentialEquations.jl for solving ODEsODEDP5
: use the DP5 method from DifferentialEquations.jl for solving ODEsODETsit5
: use the Tsit5 method from DifferentialEquations.jl for solving ODEsSSPDynamicSSTsit5
: use the SteadyState solver with DynamicSS and Tsit5 methodsSSPSSRootfind
: use the SteadyState solver with SSRootfind methodSelSpinupModels
: run only the models selected for spinup in the model structureSpinup_TWS
: Spinup spinup_mode for Total Water Storage (TWS)Spinup_cEco
: Spinup spinup_mode for cEcoSpinup_cEco_TWS
: Spinup spinup_mode for cEco and TWS
SpinupSequence
: Basic Spinup sequence without time aggregationSpinupSequenceWithAggregator
: Spinup sequence with time aggregation for corresponding forcingtime series
Sindbad.Types.Spinup_TWS Type
Spinup_TWS
Spinup spinup_mode for Total Water Storage (TWS)
Type Hierarchy
Spinup_TWS <: SpinupMode <: SpinupTypes <: SindbadTypes <: Any
Sindbad.Types.Spinup_cEco Type
Spinup_cEco
Spinup spinup_mode for cEco
Type Hierarchy
Spinup_cEco <: SpinupMode <: SpinupTypes <: SindbadTypes <: Any
Sindbad.Types.Spinup_cEco_TWS Type
Spinup_cEco_TWS
Spinup spinup_mode for cEco and TWS
Type Hierarchy
Spinup_cEco_TWS <: SpinupMode <: SpinupTypes <: SindbadTypes <: Any
Sindbad.Types.ThreadsParallelization Type
ThreadsParallelization
Use Julia threads for parallelization
Type Hierarchy
ThreadsParallelization <: ParallelizationPackage <: ExperimentTypes <: SindbadTypes <: Any
Sindbad.Types.TimeAggregation Type
TimeAggregation
Abstract type for time aggregation methods in SINDBAD
Type Hierarchy
TimeAggregation <: TimeTypes <: SindbadTypes <: Any
Extended help
Available methods/subtypes:
TimeAllYears
: aggregation/slicing to include all yearsTimeArray
: use array-based time aggregationTimeDay
: aggregation to daily time stepsTimeDayAnomaly
: aggregation to daily anomaliesTimeDayIAV
: aggregation to daily IAVTimeDayMSC
: aggregation to daily MSCTimeDayMSCAnomaly
: aggregation to daily MSC anomaliesTimeDiff
: aggregation to time differences, e.g. monthly anomaliesTimeFirstYear
: aggregation/slicing of the first yearTimeHour
: aggregation to hourly time stepsTimeHourAnomaly
: aggregation to hourly anomaliesTimeHourDayMean
: aggregation to mean of hourly data over daysTimeIndexed
: aggregation using time indices, e.g., TimeFirstYearTimeMean
: aggregation to mean over all time stepsTimeMonth
: aggregation to monthly time stepsTimeMonthAnomaly
: aggregation to monthly anomaliesTimeMonthIAV
: aggregation to monthly IAVTimeMonthMSC
: aggregation to monthly MSCTimeMonthMSCAnomaly
: aggregation to monthly MSC anomaliesTimeNoDiff
: aggregation without time differencesTimeRandomYear
: aggregation/slicing of a random yearTimeShuffleYears
: aggregation/slicing/selection of shuffled yearsTimeSizedArray
: aggregation to a sized arrayTimeYear
: aggregation to yearly time stepsTimeYearAnomaly
: aggregation to yearly anomalies
Sindbad.Types.TimeAllYears Type
TimeAllYears
aggregation/slicing to include all years
Type Hierarchy
TimeAllYears <: TimeAggregation <: TimeTypes <: SindbadTypes <: Any
Sindbad.Types.TimeArray Type
TimeArray
use array-based time aggregation
Type Hierarchy
TimeArray <: TimeAggregation <: TimeTypes <: SindbadTypes <: Any
Sindbad.Types.TimeDay Type
TimeDay
aggregation to daily time steps
Type Hierarchy
TimeDay <: TimeAggregation <: TimeTypes <: SindbadTypes <: Any
Sindbad.Types.TimeDayAnomaly Type
TimeDayAnomaly
aggregation to daily anomalies
Type Hierarchy
TimeDayAnomaly <: TimeAggregation <: TimeTypes <: SindbadTypes <: Any
Sindbad.Types.TimeDayIAV Type
TimeDayIAV
aggregation to daily IAV
Type Hierarchy
TimeDayIAV <: TimeAggregation <: TimeTypes <: SindbadTypes <: Any
Sindbad.Types.TimeDayMSC Type
TimeDayMSC
aggregation to daily MSC
Type Hierarchy
TimeDayMSC <: TimeAggregation <: TimeTypes <: SindbadTypes <: Any
Sindbad.Types.TimeDayMSCAnomaly Type
TimeDayMSCAnomaly
aggregation to daily MSC anomalies
Type Hierarchy
TimeDayMSCAnomaly <: TimeAggregation <: TimeTypes <: SindbadTypes <: Any
Sindbad.Types.TimeDiff Type
TimeDiff
aggregation to time differences, e.g. monthly anomalies
Type Hierarchy
TimeDiff <: TimeAggregation <: TimeTypes <: SindbadTypes <: Any
Sindbad.Types.TimeFirstYear Type
TimeFirstYear
aggregation/slicing of the first year
Type Hierarchy
TimeFirstYear <: TimeAggregation <: TimeTypes <: SindbadTypes <: Any
Sindbad.Types.TimeHour Type
TimeHour
aggregation to hourly time steps
Type Hierarchy
TimeHour <: TimeAggregation <: TimeTypes <: SindbadTypes <: Any
Sindbad.Types.TimeHourAnomaly Type
TimeHourAnomaly
aggregation to hourly anomalies
Type Hierarchy
TimeHourAnomaly <: TimeAggregation <: TimeTypes <: SindbadTypes <: Any
Sindbad.Types.TimeHourDayMean Type
TimeHourDayMean
aggregation to mean of hourly data over days
Type Hierarchy
TimeHourDayMean <: TimeAggregation <: TimeTypes <: SindbadTypes <: Any
Sindbad.Types.TimeIndexed Type
TimeIndexed
aggregation using time indices, e.g., TimeFirstYear
Type Hierarchy
TimeIndexed <: TimeAggregation <: TimeTypes <: SindbadTypes <: Any
Sindbad.Types.TimeMean Type
TimeMean
aggregation to mean over all time steps
Type Hierarchy
TimeMean <: TimeAggregation <: TimeTypes <: SindbadTypes <: Any
Sindbad.Types.TimeMonth Type
TimeMonth
aggregation to monthly time steps
Type Hierarchy
TimeMonth <: TimeAggregation <: TimeTypes <: SindbadTypes <: Any
Sindbad.Types.TimeMonthAnomaly Type
TimeMonthAnomaly
aggregation to monthly anomalies
Type Hierarchy
TimeMonthAnomaly <: TimeAggregation <: TimeTypes <: SindbadTypes <: Any
Sindbad.Types.TimeMonthIAV Type
TimeMonthIAV
aggregation to monthly IAV
Type Hierarchy
TimeMonthIAV <: TimeAggregation <: TimeTypes <: SindbadTypes <: Any
Sindbad.Types.TimeMonthMSC Type
TimeMonthMSC
aggregation to monthly MSC
Type Hierarchy
TimeMonthMSC <: TimeAggregation <: TimeTypes <: SindbadTypes <: Any
Sindbad.Types.TimeMonthMSCAnomaly Type
TimeMonthMSCAnomaly
aggregation to monthly MSC anomalies
Type Hierarchy
TimeMonthMSCAnomaly <: TimeAggregation <: TimeTypes <: SindbadTypes <: Any
Sindbad.Types.TimeNoDiff Type
TimeNoDiff
aggregation without time differences
Type Hierarchy
TimeNoDiff <: TimeAggregation <: TimeTypes <: SindbadTypes <: Any
Sindbad.Types.TimeRandomYear Type
TimeRandomYear
aggregation/slicing of a random year
Type Hierarchy
TimeRandomYear <: TimeAggregation <: TimeTypes <: SindbadTypes <: Any
Sindbad.Types.TimeShuffleYears Type
TimeShuffleYears
aggregation/slicing/selection of shuffled years
Type Hierarchy
TimeShuffleYears <: TimeAggregation <: TimeTypes <: SindbadTypes <: Any
Sindbad.Types.TimeSizedArray Type
TimeSizedArray
aggregation to a sized array
Type Hierarchy
TimeSizedArray <: TimeAggregation <: TimeTypes <: SindbadTypes <: Any
Sindbad.Types.TimeSpace Type
TimeSpace
Aggregate data first over time, then over space
Type Hierarchy
TimeSpace <: DataAggrOrder <: MetricTypes <: SindbadTypes <: Any
Sindbad.Types.TimeTypes Type
TimeTypes
Abstract type for implementing time subset and aggregation types in SINDBAD
Type Hierarchy
TimeTypes <: SindbadTypes <: Any
Extended help
Available methods/subtypes:
TimeAggregation
: Abstract type for time aggregation methods in SINDBADTimeAllYears
: aggregation/slicing to include all yearsTimeArray
: use array-based time aggregationTimeDay
: aggregation to daily time stepsTimeDayAnomaly
: aggregation to daily anomaliesTimeDayIAV
: aggregation to daily IAVTimeDayMSC
: aggregation to daily MSCTimeDayMSCAnomaly
: aggregation to daily MSC anomaliesTimeDiff
: aggregation to time differences, e.g. monthly anomaliesTimeFirstYear
: aggregation/slicing of the first yearTimeHour
: aggregation to hourly time stepsTimeHourAnomaly
: aggregation to hourly anomaliesTimeHourDayMean
: aggregation to mean of hourly data over daysTimeIndexed
: aggregation using time indices, e.g., TimeFirstYearTimeMean
: aggregation to mean over all time stepsTimeMonth
: aggregation to monthly time stepsTimeMonthAnomaly
: aggregation to monthly anomaliesTimeMonthIAV
: aggregation to monthly IAVTimeMonthMSC
: aggregation to monthly MSCTimeMonthMSCAnomaly
: aggregation to monthly MSC anomaliesTimeNoDiff
: aggregation without time differencesTimeRandomYear
: aggregation/slicing of a random yearTimeShuffleYears
: aggregation/slicing/selection of shuffled yearsTimeSizedArray
: aggregation to a sized arrayTimeYear
: aggregation to yearly time stepsTimeYearAnomaly
: aggregation to yearly anomalies
TimeAggregator
: define a type for temporal aggregation of an array
Sindbad.Types.TimeYear Type
TimeYear
aggregation to yearly time steps
Type Hierarchy
TimeYear <: TimeAggregation <: TimeTypes <: SindbadTypes <: Any
Sindbad.Types.TimeYearAnomaly Type
TimeYearAnomaly
aggregation to yearly anomalies
Type Hierarchy
TimeYearAnomaly <: TimeAggregation <: TimeTypes <: SindbadTypes <: Any
Sindbad.Types.ZygoteGrad Type
ZygoteGrad
Use Zygote.jl for automatic differentiation
Type Hierarchy
ZygoteGrad <: MLGradType <: MLTypes <: SindbadTypes <: Any
SindbadSetup.checkInRange Function
checkInRange(name, value, lower_bound, upper_bound, show_info)
Checks whether a given value or array is within specified bounds.
Arguments:
name
: A string or symbol representing the name or identifier of the parameter being checked.value
: The value or array to be checked against the bounds.- Can be a scalar (
Real
) or an array (AbstractArray
).
- Can be a scalar (
lower_bound
: The lower bound for the value or array.upper_bound
: The upper bound for the value or array.show_info
: A boolean flag indicating whether to display detailed information about the check.
Returns:
true
: If the value or all elements of the array are within the specified bounds.false
: If the value or any element of the array violates the bounds.
Notes:
If
value
is an array andshow_info
istrue
, the function logs a message indicating that the check is skipped for arrays, as bounds are typically defined for scalar parameters.For scalar values, the function performs a direct comparison to ensure the value lies within
[lower_bound, upper_bound]
.If the bounds are violated, the function logs detailed information (if
show_info
istrue
) and returnsfalse
.
Examples:
- Checking a scalar value:
is_in_range = checkInRange("parameter1", 5.0, 0.0, 10.0, true)
# Output: true
- Checking an array (skipping bounds check):
is_in_range = checkInRange("parameter2", [1.0, 2.0, 3.0], 0.0, 10.0, true)
# Output: true (logs a message indicating the check is skipped)
- Checking a scalar value outside bounds:
is_in_range = checkInRange("parameter3", -1.0, 0.0, 10.0, true)
# Output: false (logs a message indicating the violation)
SindbadSetup.checkOptimizedParametersInModels Method
checkOptimizedParametersInModels(info::NamedTuple, parameter_table)
Checks if the parameters listed in model_parameters_to_optimize
from optimization.json
exist in the selected model structure from model_structure.json
.
Arguments:
info
: A NamedTuple containing the experiment configuration.parameter_table
: A table of parameters extracted from the model structure.
Notes:
- Issues a warning and throws an error if any parameter in
model_parameters_to_optimize
does not exist in the model structure.
SindbadSetup.checkSelectedModels Method
checkSelectedModels(sindbad_models::AbstractArray, selected_models::AbstractArray)
Validates that the selected models in model_structure.json
exist in the full list of standard_sindbad_models
.
Arguments:
sindbad_models
: An array of all available SINDBAD models.selected_models
: An array of selected models to validate.
Returns:
true
if all selected models are valid; otherwise, throws an error.
Notes:
- Ensures that the selected models are consistent with the available SINDBAD models.
SindbadSetup.convertToAbsolutePath Method
convertToAbsolutePath(; inputDict=inputDict)
Converts all relative paths in the input dictionary to absolute paths, assuming all non-absolute paths are relative to the SINDBAD root directory.
Arguments:
inputDict
: A dictionary containing paths as values.
Returns:
- A new dictionary with all paths converted to absolute paths.
Notes:
- This function is currently incomplete and does not perform the conversion yet.
SindbadSetup.getAggrFunc Method
getAggrFunc(func_name::String)
Returns an aggregation function corresponding to the given function name.
Arguments:
func_name
: A string specifying the name of the aggregation function (e.g., "mean", "sum").
Returns:
- The corresponding aggregation function (e.g.,
mean
,sum
).
Notes:
- Supports common aggregation functions such as
mean
,sum
,nanmean
, andnansum
.
SindbadSetup.getAllLandVars Method
getAllLandVars(land)
Collects model variable fields and subfields from the land
NamedTuple.
Arguments:
land
: A core SINDBAD NamedTuple containing all variables for a given time step, overwritten at every timestep.
Returns:
- A tuple of variable field and subfield pairs.
SindbadSetup.getAllSindbadModels Method
getAllSindbadModels(info; all_models_default=standard_sindbad_models)
Retrieves the list of all SINDBAD models, either from the provided info
object or a default list.
Arguments:
info
: A NamedTuple or object containing experiment configuration and metadata.all_models_default
: (Optional) The default list of SINDBAD models to use ifinfo
does not specify a custom list. Defaults tostandard_sindbad_models
.
Returns:
- A list of all SINDBAD models, either from
info.sindbad_models
(if available) orall_models_default
.
Notes:
If the
info
object has a propertysindbad_models
, it overrides the default list.This function ensures flexibility by allowing custom model lists to be specified in the experiment configuration.
SindbadSetup.getModelImplicitTRepeat Method
getModelImplicitTRepeat(info::NamedTuple, selected_models)
Retrieves the implicit_t_repeat
values for the specified models from the experiment configuration.
Arguments:
info::NamedTuple
: A SINDBAD NamedTuple containing the experiment configuration, including model structure details.selected_models
: A list of model names (symbols) for which theimplicit_t_repeat
values are to be retrieved.
Returns:
- A vector of
implicit_t_repeat
values corresponding to theselected_models
.
Notes:
If a model has an
implicit_t_repeat
property defined in its configuration, that value is used.If the property is not defined for a model, the default value from
info.settings.model_structure.default_model.implicit_t_repeat
is used.
SindbadSetup.getModelParameterIndices Function
getParameterIndices(selected_models::LongTuple, parameter_table::Table)
getParameterIndices(selected_models::Tuple, parameter_table::Table)
Retrieves indices for model parameters from a parameter table.
Arguments
selected_models
::LongTuple
: A long tuple of selected models::Tuple
: A tuple of selected models
parameter_table::Table
: Table containing parameter information
Returns
A Tuple of Pair of Name and Indices corresponding to the model parameters in the parameter table for selected models.
SindbadSetup.getModelParameterIndices Method
getModelParameterIndices(model, parameter_table::Table, r)
Retrieves indices for model parameters from a parameter table.
Arguments
model
: A model object for which parameters are being indexedparameter_table::Table
: Table containing parameter informationr
: Row index or identifier for the specific parameter set
Returns
Indices corresponding to the model parameters in the parameter table for a model.
SindbadSetup.getOrderedOutputList Method
getOrderedOutputList(varlist, var_o::Symbol)
Finds and returns the corresponding variable from the full list of variables.
Arguments:
varlist
: The full list of variables.var_o
: The variable to find.
Returns:
- The corresponding variable from the list.
SindbadSetup.getParamModelIDVal Method
getParamModelIDVal(parameter_table)
Generates a Val
object containing tuples of parameter names and their corresponding model IDs.
Arguments:
parameter_table
: A table of parameters with their names and model IDs.
Returns:
- A
Val
object containing tuples of parameter names and model IDs.
Notes:
- Parameter names are transformed to a unique format by replacing dots with underscores.
SindbadSetup.getPoolInformation Method
getPoolInformation(main_pools, pool_info, layer_thicknesses, nlayers, layer, inits, sub_pool_name, main_pool_name; prename="")
A helper function to get the information of each pools from info.settings.model_structure.pools and puts them into arrays of information needed to instantiate pool variables.
Arguments:
main_pools
: A list of main pool configurations.pool_info
: A NamedTuple containing pool information details.layer_thicknesses
: An array of layer thicknesses in the pools.nlayers
: An array representing the number of layers per pool in the model.layer
: An array representing the current layer number being processed.inits
: An array of initial values to be set in the pool.sub_pool_name
: An array of sub-pool component names for a given pool.main_pool_name
: An array of main pool names containing the sub-pool components.prename
: (Optional) A prefix for naming conventions (default:""
).
Returns:
- Updated list of information specific to the requested pool configuration.
Notes:
- Processes hierarchical pool structures and extracts relevant details for initialization.
SindbadSetup.getPoolSize Method
getPoolSize(info_pools::NamedTuple, pool_name::Symbol)
Retrieves the size of a pool variable from the model structure settings.
Arguments:
info_pools
: A NamedTuple containing information about the pools in the selected model structure.pool_name
: The name of the pool.
Returns:
- The size of the specified pool.
Notes:
- Throws an error if the pool does not exist in the model structure.
SindbadSetup.getRootDirs Method
getRootDirs(local_root, sindbad_experiment)
Determines the root directories for the SINDBAD framework and the experiment.
Arguments:
local_root
: The local root directory of the SINDBAD project.sindbad_experiment
: The path to the experiment configuration file.
Returns:
- A NamedTuple containing the root directories for the experiment, SINDBAD, and settings.
SindbadSetup.getVariableGroups Method
getVariableGroups(var_list::AbstractArray)
Groups variables into a NamedTuple based on their field and subfield structure.
Arguments:
var_list
: A list of variables in thefield.subfield
format.
Returns:
- A NamedTuple containing grouped variables by field.
SindbadSetup.getVariablePair Function
getVariablePair(out_var)
Splits a variable name into a pair of field and subfield.
Arguments:
out_var
: The variable name, provided as either aString
or aSymbol
, in the formatfield.subfield
.
Returns:
- A tuple containing the field and subfield as
Symbol
values.
Notes:
If the variable name contains a comma (
,
), it is used as the separator instead of a dot (.
).This function is used to parse variable names into their hierarchical components for further processing.
SindbadSetup.getVariableString Function
getVariableString(var_pair)
Converts a variable pair into a string representation.
Arguments:
var_pair
: A tuple containing the field and subfield.sep
: The separator to use between the field and subfield (default: ".").
Returns:
- A string representation of the variable pair.
SindbadSetup.parseSaveCode Method
parseSaveCode(info)
Parses and saves the code and structs of the selected model structure for the given experiment.
Arguments:
info
: The experiment configuration NamedTuple containing model and output information.
Notes:
Writes the
define
,precompute
, andcompute
functions for the selected models to separate files.Also writes the parameter structs for the models.
SindbadSetup.removeComments Method
removeComments(inputDict::AbstractDict)
Removes unnecessary comment fields from a dictionary.
Arguments:
inputDict
: The input dictionary.
Returns:
- A new dictionary with comment fields removed.
SindbadSetup.replaceCommaSeparatedParams Method
replaceCommaSeparatedParams(p_names_list)
get a list/vector of parameters in which each parameter string is split with comma to separate model name and parameter name
SindbadSetup.replaceInfoFields Method
replaceInfoFields(info::AbstractDict, replace_dict::AbstractDict)
Replaces fields in the info
dictionary with values from the replace_dict
.
Arguments:
info::AbstractDict
: The original dictionary.replace_dict::AbstractDict
: The dictionary containing replacement values.
Returns:
- A new dictionary with the replaced fields.
SindbadSetup.replaceNumbersWithTypedValues Method
replaceNumbersWithTypedValues(merged_options, num_type)
Replaces non-integer numeric values in a NamedTuple with their corresponding typed values.
Arguments:
merged_options
: A NamedTuple containing merged options.num_type
: The numeric type to use for conversion.
Returns:
- The updated NamedTuple with numeric values converted to the specified numeric type.
SindbadSetup.replaceOptionsWithType Method
replaceOptionsWithType(merged_options, field_name)
Replaces the options in a NamedTuple with their corresponding type instances based on the field name.
Arguments:
merged_options
: A NamedTuple containing merged options.field_name
: The name of the field to be replaced.
Returns:
- The updated NamedTuple with the specified field replaced by its corresponding type instance.
SindbadSetup.saveExperimentSettings Method
saveExperimentSettings(info)
Saves a copy of the experiment settings to the output folder.
Arguments:
info
: A NamedTuple containing the experiment configuration.
Notes:
- Copies the JSON settings and configuration files to the output directory.
SindbadSetup.saveInfo Function
saveInfo(info, to_save::DoSaveInfo | ::DoNotSaveInfo)
Saves or skips saving the experiment configuration to a file.
Arguments:
info
: A NamedTuple containing the experiment configuration.::DoSaveInfo
: A type dispatch indicating that the information should be saved.::DoNotSaveInfo
: A type dispatch indicating that the information should not be saved.
Returns:
nothing
.
Notes:
- When saving, the experiment configuration is saved as a
.jld2
file in thesettings
directory.
SindbadSetup.setAlgorithmOptions Method
setAlgorithmOptions(info::NamedTuple, which_algorithm)
Set up algorithm-specific options for optimization.
Arguments:
info
: A NamedTuple containing the experiment configuration.which_algorithm
: A symbol indicating which algorithm to set up (e.g.,:algorithm_optimization
,:algorithm_sensitivity_analysis
).
Returns:
- The updated
info
NamedTuple with algorithm options set.
Notes:
Reads algorithm settings from the experiment configuration.
If the algorithm is specified as a JSON file, it parses the file and merges the options with default settings.
SindbadSetup.setDatesInfo Method
setDatesInfo(info::NamedTuple)
Fills info.temp.helpers.dates
with date and time-related fields needed in the models.
Arguments:
info
: A NamedTuple containing the experiment configuration.
Returns:
- The updated
info
NamedTuple with date-related fields added.
SindbadSetup.setDebugErrorCatcher Function
setDebugErrorCatcher(::DoCatchModelErrors | ::DoNotCatchModelErrors)
Enables/Disables a debug error catcher for the SINDBAD framework. When enabled, a variable error_catcher
is enabled and can be written to from within SINDBAD models and functions. This can then be accessed from any scope with Sindbad.error_catcher
Arguments:
::DoCatchModelErrors
: A type dispatch indicating that model errors should be caught.::DoNotCatchModelErrors
: A type dispatch indicating that model errors should not be caught.
Returns:
nothing
.
Notes:
- When enabled, sets up an empty error catcher using
Sindbad.eval
.
SindbadSetup.setExperimentBasics Method
setExperimentBasics(info::NamedTuple)
Copies basic experiment information into the temporary experiment configuration.
Arguments:
info
: A NamedTuple containing the experiment configuration.
Returns:
- The updated
info
NamedTuple with basic experiment information added.
SindbadSetup.setExperimentOutput Method
setExperimentOutput(info)
Sets up and creates the output directory for the experiment.
Arguments:
info
: A NamedTuple containing the experiment configuration.
Returns:
- The updated
info
NamedTuple with output directory information added.
Notes:
Creates subdirectories for code, data, figures, and settings.
Validates the output path and ensures it is not within the SINDBAD root directory.
SindbadSetup.setHybridOptions Method
setHybridOptions(info::NamedTuple, which_option)
Processes and sets the machine learning options for hybrid experiments.
Arguments:
info
: A NamedTuple containing the experiment configuration.which_option
: The name of the option to process ("ml_model", "ml_training", etc.).
Returns:
- The updated
info
NamedTuple with the specified machine learning option added.
SindbadSetup.setInputParameters Method
setInputParameters(original_table::Table, input_table::Table)
Updates input parameters by comparing an original table with an updated table from params.json.
Arguments
original_table::Table
: The reference table containing original parametersinput_table::Table
: The table containing updated parameters to be compared with original
Returns
a merged table with updated parameters
SindbadSetup.setModelRunInfo Method
setModelRunInfo(info::NamedTuple)
Sets up model run flags and output array types for the experiment.
Arguments:
info
: A NamedTuple containing the experiment configuration.
Returns:
- The updated
info
NamedTuple with model run flags and output array types added.
SindbadSetup.setNumericHelpers Function
setNumericHelpers(info::NamedTuple, ttype)
Prepares numeric helpers for maintaining consistent data types across models.
Arguments:
info
: A NamedTuple containing the experiment configuration.ttype
: The numeric type to use (default:info.settings.experiment.exe_rules.model_number_type
).
Returns:
- The updated
info
NamedTuple with numeric helpers added.
SindbadSetup.setRestartFilePath Method
setRestartFilePath(info::NamedTuple)
Validates and sets the absolute path for the restart file used in spinup.
Arguments:
info
: A NamedTuple containing the experiment configuration.
Returns:
- The updated
info
NamedTuple with the absolute restart file path set.
SindbadSetup.setSpinupInfo Method
setSpinupInfo(info::NamedTuple)
Processes the spinup configuration and prepares the spinup sequence.
Arguments:
info
: A NamedTuple containing the experiment configuration.
Returns:
- The updated
info
NamedTuple with spinup-related fields added.
SindbadSetup.splitRenameParam Function
splitRenameParam(p_string::String, _splitter)
splitRenameParam(_p::Symbol, _splitter)
Splits and renames a parameter based on a specified splitter.
Arguments
p_string
: The input parameter to be split and renamed::String
: The parameter string to be split::Symbol
: The parameter symbol to be split
_splitter
: The delimiter used to split the parameter string
Returns
A tuple containing the split and renamed parameter components.