Configuration parameters - jpmattern/ROMSEnsemble.jl GitHub Wiki

List of configuration parameters:

executable: String

The filename of a ROMS executable to use for the ensemble simulations.


file_prefix: String, optional (default: "romsensemble")

A prefix that is appended to the filename of ROMS output files.


initial_conditions: String or Vector{String}

The initial conditions used for the ROMSEnsemble.jl ensemble run. These can be specified as a single file name (all ensemble members start with the same initial conditions), a glob-expression to be expanded (e.g. "initial_conditions/ini*.nc"), or an array containing the individual file names (e.g. ["ic/ini01.nc", "ic/ini02.nc", "ic/ini03.nc"]). Note that in the latter two cases, the number of files must match the size of the ensemble n_ens (below).


iterconstini: bool, optional (default based on cycle_setup)

Keep initial conditions constant during data assimilation (typically used for parameter estimation). This is an advanced option for manually tuning the assimilation setup that is only used if cycle_setup is specified using a vector.


modfile: String, optional

Use the entries from this ROMS mod file, instead of an observation file, as (synthetic) observations. Only used if use_modforobs is active.


negative_parameter_response: "warn", "error", or "adjust" (default: "adjust")

Selects how to deal with negative parameter values; only active if estimationtype is set to "bioparameter". Adjust values to make them positive ("adjust"), exit with an error ("error"), or simply create a warning message ("warn").


negative_parameter_minval: Float, optional (default: 0.0)

The value to set negative parameters to if negative_parameter_response is set to "adjust".


n_ens: Int

The number of ensemble members.


num_cycles: Int

The number of data assimilation cycle to run.


obsfile: String

The ROMS observation file, which includes observations for the length of the full data assimilation run. ROMSEnsemble.jl slices this file and provides only the observations belonging to the current data assimilation cycle to the assimilation function. The original file will be copied and not modified by ROMSEnsemble.jl.


obsfile_variables: Vector{string}, optional (default: ["obs_time", "obs_value", "obs_error", "obs_type", "obs_provenance"])

The variables to pass from the observation file to the assimilation function. These provide additional information about the observations, for example, the observation errors or observations locations, useful for implementing localization.


ocean_in: String

ROMS main text-based input file (previously referred to as the "ocean.in" file). Note that this is a template file that will be copied, the original will remain unchanged by ROMSEnsemble.jl. The paramchanges_ocean parameter (below) can be used to make changes to the ROMS parameters in all copies.


paramchanges_ocean: Dict{String, Any}, optional (default: no changes, empty dictionary)

Changes to the template ocean_in file (optional). Each key must correspond to a parameter in the file specified by ocean_in. These modifications are only applied to copies of the file specified by ocean_in, the original file will remain unchanged.


refillensemble: bool, optional (default based on cycle_setup)

Set to true to refill the ensemble with old members if only one or a subset of ensemble members were modified in the assimilation. This is an advanced option for manually tuning the assimilation setup that is only used if cycle_setup is specified using a vector.


ROMSParameterInfo: ROMSEnsemble.ROMSParameterInfo, optional (only required for parameter estimation)

If estimationtype is set to "bioparameter", this instance of type ROMSEnsemble.ROMSParameterInfo provides the names of the parameters that are estimated and provides the means to sample (prior) parameter values.


ROMSStarter: String, ROMSEnsemble.ROMSStarter

The way to start each ROMS simulation of the ensemble. The strings "sbatch" and "srun" indicate the use of Slurm's sbatch and srun commands (see https://slurm.schedmd.com/). Alternatively, an instance of type ROMSEnsemble.ROMSStarter can be added to a compiled configuration dictionary in order to use a custom ROMSStarter.


rundir: String

The ROMSEnsemble.jl run directory, used to temporarily store copies of ROMS input files and ROMS output files. Relevant output files will be copied to storagedir at the end of each assimilation cycle. Unless it is specified as an absolute path, rundir is considered to be relative to Julia's current working directory. This directory will be created if it does not exist, and ROMSEnsemble.jl may delete and overwrite files in this directory!


s4dvar_in: String

ROMS data assimilation input file containing parameters for configuring data assimilation, including the observation file. Note that this is a template file that will be copied, the original will remain unchanged by ROMSEnsemble.jl.


spinup_days: Int, optional (default: 0)

The length of a spin-up in units of days, set to 0 for no spin-up.


startfrom1: bool, optional (default based on cycle_setup)

Set to true to use the first ensemble member's initial conditions as the initial conditions for the full ensemble. This is an advanced option for manually tuning the assimilation setup that is only used if cycle_setup is specified using a vector.


stopdates: Vector{String}, optional (alternative to cycle_length and num_cycles)

A vector of date strings (later parsed using Dates.DateTime) specifying the dates at which to stop ROMS and perform an assimilation. Note that instead of specifying the stop dates explicitly, cycle_length and num_cycles are used by default.


templatedir String, optional (default .template subdirectory of rundir)

A temporary directory used to store template files (copies of ocean_in, bio_in, etc.) in.


storagedir: String

The ROMSEnsemble.jl storage directory, used to store ROMS output files. Relevant output files will be copied from rundir at the end of each assimilation cycle. This directory will be created if it does not exist, and ROMSEnsemble.jl may delete and overwrite files in this directory!


timestep_threshold Int, optional (default: 10)

If stop dates are specified using stopdates, timestep_threshold is the minimum number of model time steps permitted between stop dates. If two stop dates are less than timestep_threshold time steps removed from each other, the later date will be eliminated.


use_modforobs: bool, optional (default: false)

If set to true, use model-generated observations from modfile instead of observations from obsfile.