Repository navigation
Tutorials and Workflows Build a New Configuration manually 4.3.3
The main objective of this tutorial is to help users develop their own configuration script(s) to run the Osmose model.
The Osmose model requires a main configuration file that gather and implement all parameters and other needed commands to run any simulation. This configuration file can be either a unique R script if it lists all the needed parameters, or can be decomposed into multiple scripts. The Osmose model requires a lengthy number of parameters that quickly increase according to the number of species involved in the model, module implemented, and other specificity. For this reason, we recommend you to use the later approach and divide your configuration file into a main and auxiliaries configuration files. In the following, and for a matter of simplicity, we use this approach and structure the tutorial into multiple sections that are dedicated to the submodels and modules. Each section consist into set of block of parameters that can be easily copy pasted with the html version to easily build your scripts. You are free to reproduce the following structure or adapt it to your needs.
For a matter of simplicity, the different chunks of parameter leave out specific details related to species, fisheries, etc. We left them out in order to ease the possibility of copy-pasting the different chunks without trouble. These specific details will need to be added by hand after building the structure of your script:
-
parameters finishing by
.spdo reference to each given species. Each species is attributed a number, fromto
species and you will need to attribute this number at the end of the parameter (as in
species.egg.weight.sp0forspecies 0), and attributed it to its parameter value (e.g.species.egg.weight.sp0 = 0.001). -
the same applies for parameters finishing by
.fshthat are specific to fisheries type,.mapthat are specific to maps, etc.
Caution
This tutorial was developed in 2025 for Osmose v4.3.3. Users should be aware of the differences with the latest Osmose versions and note that the parameter calls might have changed since. An updated version for Osmose v4.4 is currently under development.
Note
We are currently developing an automatised workflow to build a new configuration from the parameterization process. This will enable users to the tedious task of manually editing the configuration.
The main configuration is the configuration file that is read by the
model. It is either a unique script containing all the parameters and
commands needed, or a script that will call other auxiliaries
configuration files. In the newly created osm_config_main.R file, add
these commands:
- Auxiliaries configuration scripts linked to Osmose model, submodels and outputs
# Configuration file of the core submodels of Osmose
osmose.configuration.submodels = osm_config_submodels.R
# Configuration file of the core model of Osmose
osmose.configuration.models = osm_config_model.R
# Configuration file of the model outputs
osmose.configuration.init = osm_config_initialization.R- Auxiliaries configuration scripts linked to Osmose modules
# Configuration file of the core submodels of Osmose
osmose.configuration.submodels = osm_config_bioen.R
# Configuration specific to EV-OSMOSE module
osmose.configuration.models = osm_config_ev.R
# Configuration file specific to Fisheries, in development
osmose.configuration.init = osm_config_fisheries.R
# Configuration file specific to Eco-Osmose, in development
osmose.configuration.init = osm_config_eco.RThis section corresponds to the Osmose model, linked to state variables and initial processes.
Create the osm_config_models.R file and copy-paste the different
chunks in the following subsections.
# Used model Version
osmose.version = 4.3.3
# Number of cpu used for the simulations
simulation.ncpu
# Number of simulations to run
simulation.nsimulation
# Number of simulation year
simulation.time.nyear
# Number of time step within years
simulation.time.ndtPerYear # Number of species
simulation.nspecies
# Number of background species
simulation.nbackground
# Number of species
simulation.nresource - Using Netcdf file
grid.java.classname = fr.ird.osmose.grid.NcGrid
# Name of the NetCDF file
grid.netcdf.file
# Name of the latitude variable
grid.var.lat
# Name of the longitude variable
grid.var.lon
# Name of the mask variable
grid.var.mask
# Name of the cell surface variable, defined in m^2
grid.var.surf - Using original file
grid.java.classname = fr.ird.osmose.grid.OriginalGrid
# Number of longitude
grid.nlon
# Number of latitude
grid.nlat
# Lower right latitude
grid.lowright.lat
# Lower right longitude
grid.lowright.lon
# Upper left latitude
grid.upleft.lat
# Upper right latitude
grid.upleft.lon
# CSV containing the land-sea mask, with ncolumn & nline, values = -99 or NaN (land) and 0 (ocean/sea)
grid.mask.file The model can implements three group types: focal, background, and
resource species.
Focal species are species whose full life history is accounted in the
model. Background species are intermediate group, between focal
species and resource species: similar to resources, they are not
spatially modeled, but can prey on or be preyed upon focal species,
while also be targeted by fisheries. Biotic resource species (various
phytoplankton and zooplankton groups) are not explicitly modeled in
Osmose but are accounted as basal trophic levels that influence the
dynamics of the whole food web. They are considered as model inputs,
spatially explicit and vary with time.
- Common to all species groups (focal, background and resource groups)
We recommended here to respect the arrangement order between groups as follow: focal species first, background species after, and resource species at the end.
# Species name
species.name.sp
# Group type
species.type.sp = focal / background / resource -
Species to focal species: described in other sections and modules (Section 4, Section 5 and Section 6).
-
Specific to background species:
# alpha
species.length2weight.allometric.power.sp
# k
species.length2weight.condition.factor.sp
# C_S_R
predation.efficiency.critical.sp
# I_max
predation.ingestion.rate.max.sp
# Rmin
predation.predPrey.sizeRatio.max.sp
# Rmax
predation.predPrey.sizeRatio.min.sp
# Number of size class
species.nclass.sp
# Size of species school (1 value per size class)
species.length.sp
# Age of species school (1 value per size class)
species.age.sp
# Trophic level(s) of the background species (1 value per size class)
species.trophic.level.sp
# Size proportion (1 value per size class)
species.size.proportion.sp
# OR
species.size.proportion.file.sp- Specific to resource:
# Trophic level of the planktonic groups
species.TL.sp
# Minimum size of the organisms in the plankton group (centimeters)
species.size.min.sp
# Maximum size of the organisms in the plankton group (centimeters)
species.size.max.sp
# Fraction of the Resource biomass that is accessible to fish species, ranging from zero to one
species.accessibility2fish.sp# Class name of LTL forcing variable
ltl.java.classname = fr.ird.osmose.ltl.LTLFastForcing
# species Netcdf file
species.file.sp
# Total biomass for the given resource (will be distributed over the whole domain)
species.biomass.total.sp
# Species catching method: either 'none', 'incremental', or 'all' (last one by default)
species.file.caching.sp = none / incremental / all Not developed in v4.3.3
# File of Observed biomass
observed.biomass.file.sp
# Yearly frequency of observed biomass
observed.biomass.ndtPerYear.sp
# cut off size for the given species
observed.biomass.cutoff.size.sp When the biomass guess is provided, it takes precedence to the time series. The cutoff still needs to be provided.
# a priory expectation of the species observed biomass
observed.biomass.guess.sp
# cut off size for the given species
observed.biomass.cutoff.size.sp Fisheries landings by species for all the model domain need to be provided. If a species is targeted by multiple fisheries, the addition of all landings is what is needed as input. In this case, only time series are allowed
# File of fisheries yield
fisheries.yield.file.sp
# Yearly frequency of yield
fisheries.yield.ndtPerYear.sp # File of fisheries catch at length
fisheries.catchatlength.file.sp
# Yearly frequency of catch at length
fisheries.catchatlength.ndtPerYear.sp The selectivity type for each fishery must be attributed to a number
that refer to the given type:
for
Knife-edge selectivity,
for
sigmoid,
for
gaussian, and
for a
log-normal selectivity.
# Selectivities values below which selectivity if forced to 0
fisheries.selectivity.tiny.fsh
# File containing the selectivity types
fisheries.selectivity.type.file.fsh
# Array containing the selectivity shift periods
fisheries.selectivity.type.shift.fsh
# selectivity types
fisheries.selectivity.type.fsh
# File containing the A_50 selectivity
fisheries.selectivity.a50.file.fsh
# Array containing the A_50 shift periods
fisheries.selectivity.a50.shift.fsh
#
fisheries.selectivity.a50.fsh
# File containing the L_50 selectivity
fisheries.selectivity.l50.file.fsh
# Array containing the L_50 shift periods
fisheries.selectivity.l50.shift.fsh
#
fisheries.selectivity.l50.fsh
# File containing the L_75 selectivity
fisheries.selectivity.l75.file.fsh
# Array containing the L_75 shift periods
fisheries.selectivity.l75.shift.fsh
#
fisheries.selectivity.l75.fsh#Three different approaches are used to initialize the system: a seeding biomass approach, netcdf-based approach or a relative biomass-based approach. In opposition to the Seeding biomass approach, the three other approaches will
# Number of schools to create during reproduction (only if simulation.nschool.sp is not used)
simulation.nschool
# Species-specific number of schools to create during reproduction
simulation.nschool.sp
# B_seeding, Seeding biomass
population.seeding.biomass.sp
# Maximal year of the population seeding
population.seeding.year.maxThis approach is activated if one of the following commands is set
population.initialization.file
# OR
# netcdf file for each restart #=0,...,n
simulation.restart.fileThis approach is activated with the toggle command
population.initialization.relativebiomass.enabled
population.initialization.relativebiomass.enabled = TRUE / FALSE
# B_init, species initialization biomass
population.initialization.biomass.sp
# Size-boundaries Nclass+1
population.initialization.size.sp
#n_s,k
population.initialization.nschool.sp
#P_s,k
population.initialization.relativebiomass.sp
# Trophic level for each size-class tl_s,k
population.initialization.tl.sp
# a_s,k
population.initialization.age.sp This section corresponds to the Osmose submodels. You can find more
information about this section:
https://documentation.osmose-model.org/odd_des/submodel.html. Create
the osm_config_submodels.R file for the following subsections.
The chunk below is to use if you have species that complete their full
life cycle outside the simulated domain. The model implements a biomass
flow of schools per species and time units that is either discretized by
age or size. Choose one of the desired flow type and direct it to the
paths containing the .csv file of the flow.
flux.incoming.byDt.byAge.file.sp
flux.incoming.byDt.bySize.file.spSpecies spatial distributions randomly change at each time-step based on
either random walk processes or distribution maps. The following command
need to indicate whether the movement distribution (for each species) is
either random (for random walk) or induced by their predicted niche
distribution map.
movement.distribution.method.sp = random / map# Number of cells in which the species is allowed to move. If undefined, the whole domain is used
movement.distribution.ncell.sp
# Number of adjacent cells a species can use during random walk (foraging)
movement.randomwalk.range.sp Add at least 1 map per species for a given age span, year span and season. Multiple maps can be added for the same species, notably to describe the ontogenetic changes, migrations, etc.
- with
.csvfile
# Name of the file that contains the distribution map. Enter Null for schools outside the simulated map
movement.file.map
# Name of the species associated with the map
movement.species.map
# Array of time-steps during when to use the map
movement.steps.map
# Minimum age (in years) when to use the map.
movement.initialAge.map
# Maximum age (in years) when to use the map.
movement.lastAge.map
# Minimum simulation time (in years) when to use the map.
movement.initialYear.map
# Maximum simulation time (in years) when to use the map
movement.lastYear.map
# Array of years during when to use the map. (instead of setting initial and final year)
movement.years.map
# Array of time-steps during when to use the map
movement.steps.map - or with
.netcdffile
Toggle commands required with nectcdf files
# TRUE if NetCDF maps are provided
movement.netcdf.enabled = TRUE
# TRUE if a school remains in the same map during all lifespan/seasons (FALSE for ontogenetic shift)
movement.checks.enabled = TRUE Species-specific commands similar to the commands when using .csv
files.
# Name of the file that contains the distribution map. Enter Null for schools outside the simulated map
movement.file.map
# Name of the species associated with the map.
movement.species.map
movement.nsteps.year.map
movement.initialAge.map
movement.lastAge.mapName of the netcdf variable that contains the spatial distribution file.
Specify whether the species occurrence data is binary with PresAbs or
probabilistic with prob.
movement.variable.mapThese two commands must either be defined as age or size regarding
the thresholds structuring predator-prey interactions.
# Threshold type for the accessibility matrix structure
predation.accessibility.stage.structure
# Predator/prey threshold type
predation.predPrey.stage.structure Note: if predation.accessibility.file is provided, Osmose assume a
constant predation accessibility matrix. Also note that the
accessibility matrix account for focal and background predator species
(in columns) and focal, background and LTL prey species (in rows).
# csv file for constant accessibility matrix over time
predation.accessibility.file
# csv files for the accessibility matrices over time (acc'#' require a number)
predation.accessibility.file.acc
# Initial year of the file
predation.accessibility.initialYear.acc
# Final year of the file
predation.accessibility.finalYear.acc
# Number of years of the file
predation.accessibility.years.acc
# frequency per year
predation.accessibility.steps.acc# Array of age or size thresholds
predation.predPrey.stage.threshold.sp
# R_min, min Pred-prey size threshold
predation.predPrey.sizeRatio.min.sp
# R_max, max Pred-prey size threshold
predation.predPrey.sizeRatio.max.sp
# I_max, Maximum ingestion rate
predation.ingestion.rate.max.sp
# c_Sr, Critical predation success rate
predation.efficiency.critical.sp The classic Osmose model implements either the von Bertalanffy growth model or the Gompertz growth model. Select the appropriate parameters chunk based on your decision, with the following parameter that is common to both models:
species.delta.lmax.factor.sp# Growth model
growth.java.classname.sp = fr.ird.osmose.process.growth.VonBertalanffyGrowth.java
# K, vB growth rate coefficient
species.K.sp
# L_mat
species.maturity.size.sp
# L_inf, Asymptotic size
species.lInf.sp
# a_max, Maximal age observed (species longevity)
species.lifespan.sp
# t_0, Null time at which L(0) is observed observed
species.t0.sp
# L_\ell, Size threshold marking the end of larval stage (default = 1)
species.vonbertalanffy.threshold.age.sp # Growth model
growth.java.classname.sp = fr.ird.osmose.process.growth.GompertzGrowth.java
# L_start (cm)
growth.exponential.lstart.sp
# L_inf (cm)
growth.gompertz.linf.sp
# K_e
growth.exponential.ke.sp
# K_g
growth.gompertz.kg.sp
# t_g (years)
growth.gompertz.tg.sp
# a_exp (years)
growth.exponential.thr.age.sp
# a_gom (years)
growth.gompertz.thr.age.sp # File providing the seeding distribution within a year
reproduction.season.file.sp
# Species female to male sex ratio
species.sexratio.sp
# Species relative fecundity
species.relativefecundity.sp
# duration in days before eggs hatching
species.egg.stage.duration.sp Fishing-induced mortality is either implemented following a mortality by species or by gear approach, each using different fishing types of mortality. The fishing-induced mortality by-species approach concerns mortality by rates, by catches, and marine protected areas. The fishing-induced mortality by-gear approach concerns bycatches and discards, through a catchability matrix, and also size-selectivity fishing.
Select the mortality type to be implemented (either rate or
catches). It must be the same type for all species.
mortality.fishing.type = rate / catchesPrecise for each species the recruitment age and/or size
# A_F, Age at which a species can be fished (year)
mortality.fishing.recruitment.age.sp
# L_F, Size at which a species can be fished (cm)
mortality.fishing.recruitment.size.sp Regarding the data you dispose, select the desired implementation of the mortality rate, i.e. by age or size classes, and either as interannual, constant, or seasonnal. The parameterization can differ between species.
# CSV file containing the fishing rates by age and by time-step
mortality.fishing.rate.byDt.byAge.file.sp
# CSV file containing the fishing rates by size and by time-step
mortality.fishing.rate.byDt.bySize.file.sp
# File containing the fishing rates by years
mortality.fishing.rate.byYear.file.sp
# Annual fishing rate
mortality.fishing.rate.sp
# File containing the seasonal distribution of fishing mortality.
mortality.fishing.season.distrib.file.sp The commands follow the same than by rate
mortality.fishing.catches.byDt.byAge.file.sp
mortality.fishing.catches.byDt.bySize.file.sp
mortality.fishing.catches.byYear.file.sp
mortality.fishing.catches.sp
mortality.fishing.season.distrib.file.spMPAs influence fishing-induced mortality rates outside MPAs by accounting for a uniform redistribution of the effort can be define by using 3 parameters
# Presence/Absence file with 1 where the MPA is defined
mpa.file.mpa
# First year of activity of the MPA
mpa.start.year.mpa
# Last year of activity of the MPA
mpa.end.year.mpa# command manager to monitor the values of the fishing components in outcome
fisheries.check.enabled = TRUE
the multiplicative coefficient; either constant through years or
changing between years.
fisheries.rate.base.shift.fsh is a time vector
(in years) marking the years of regime shifts;
fisheries.rate.base.log.enabled.fsh specifies whether
is in log scale or not.
# c_F, vector of multiplicative coefficients
fisheries.rate.base.fsh
# vector of years of regime shifts
fisheries.rate.base.shift.fsh
# whether c_F is in log scale or not
fisheries.rate.base.log.enabled.fsh = TRUE / FALSE # Number of fishing periods within one year
fisheries.period.number.fsh
# Start of the active fishing period (fraction of year, default = 0, )
fisheries.period.start.fsh
# vector (if Ystart=0, Nperiod*Nyear long, otherwise Nperiod*Nyear +1 possible) Fishing mortality rate. Must me in year^-1
fisheries.rate.byperiod.fsh
For the fishing seasonality, pick one of these commands regarding
# Array of fishing seasonality. Must contain (Nstep/year) per Nseason
fisheries.seasonality.fsh
# File containing the fishing seasonalities (must contain Nstep values)
fisheries.seasonality.file.fsh Approach similar to when using predation accessibility matrix. The catchability matrix consist of a csv file with fisheries in columns (like predators) and (focal & background) species in rows (like preys). Regarding to your data, pick one in the following:
# File of the catchability matrix that remain constant over time
fisheries.catchability.file
# OR
# Name of the catchability files in case catchability matrices vary over time
fisheries.catchability.file.cat
# List of years when the catchability should be used.
fisheries.catchability.years.cat
# First year when the catchability matrix should be used (if year list not provided)
fisheries.catchability.initialYear.cat
# Last year when the catchability matrix should be used (if year list not provided)
fisheries.catchability.finalYear.cat
# List of steps within a year when the catchability should be used.
fisheries.catchability.steps.cat Similar to the approach using with the catchability. Pick one in the following:
fisheries.discards.file
# OR
fisheries.discards.file.dis
fisheries.discards.initialYear.dis
fisheries.discards.finalYear.dis
fisheries.discards.years.dis
fisheries.discards.steps.disAt any time step
, a
cohort
is subjected to multiple source of mortality, i.e. induced by predation,
starvation (food deprivation), fisheries, natural causes… The different
mortality processes that a given cohort is subjected to are implemented
randomly to not interfere with each other, iterated within a time step
over a fixed number of sub-time step
.
movement.randomseed.fixed = TRUE / FALSE
mortality.algorithm = stochastic
# Integer to fix the random number generator.
stochastic.mortality.seed
# Number of mortality processes to account, later defined as Delta t_mortality
mortality.subdt - Linked to Predation (biomass loss, induced by predation (see also Section Section 4.3)
# maximal starvation mortality rate
mortality.starvation.rate.max.sp - Linked to migration (i.e. any mortality source that intervene outside the simulated domain)
#out mortality rate
mortality.out.rate.sp -
Linked to fisheries
-
Linked to other causes
mortality.natural.rate.sp
mortality.natural.larva.rate.sp
mortality.additional.rate.sp
mortality.additional.larva.rate.spIn the newly created R script osm_config_bioen.R, copy-paste the
following commands and parameters to implement the BioEn-Osmose.
The following TRUE / FALSE toggles commands are by default set to
TRUE for the different implementation.
# implements the Bioen-Osmose module
simulation.bioen.enabled = TRUE
# implements temperature-dependent process f(T)
simulation.bioen.phit.enabled = TRUE
# implements oxygen-dependent process f(O2)
simulation.bioen.fo2.enabled = TRUE Select between TRUE / FALSE if you want to activate or deactivate the
given toggle command.
This set is to account the given parameter in the record when creating the output.
## Account the following parameters in output
# Age at maturity (year)
output.bioen.mature.age.enabled = TRUE / FALSE
# Size at maturity (cm)
output.bioen.mature.size.enabled = TRUE / FALSE
# Asymptotic size (cm)
output.bioen.sizeInf.enabled = TRUE / FALSE
# Ingestion rate (grams.grams^-alpha)
output.bioen.ingest.enabled = TRUE / FALSE
# Cumulative biomass ingested (grams)
output.bioen.ingest.tot.enabled = TRUE / FALSE
# Maintenance rate (grams.grams^-alpha)
output.bioen.maint.enabled = TRUE / FALSE
# Mean energy net rate (grams.grams^-beta) (grams net usable per gram of predator)
output.bioen.enet.enabled = TRUE / FALSE
output.bioen.meanGonadweight.enabled = TRUE / FALSE
# Rho (rate [0-1])
output.bioen.rho.enabled = TRUE / FALSE
output.bioen.kappa.enabled = TRUE / FALSEThis set is to structure the output distribution by age- and/or size- classes for a given parameter. Note: Be sure that the toggle command for the wanted parameter is activated.
**Note: misspell found in the parameter: output.fecondity... to
replace by ...fecundity... **
## Output distribution are structured by...
# for Mean ingestion per g.g^-beta.y-1
# by age (year)
output.ingest.byAge.enabled = TRUE / FALSE
# by size (cm)
output.ingest.bySize.enabled = TRUE / FALSE
# for rho
output.rho.byAge.enabled = TRUE / FALSE
output.rho.bySize.enabled = TRUE / FALSE
# for net energy
output.enet.byAge.enabled = TRUE / FALSE
output.enet.bySize.enabled = TRUE / FALSE
# for maintenance rate
output.maintenance.byAge.enabled = TRUE / FALSE
output.maintenance.bySize.enabled = TRUE / FALSE
# for Mean somatic weight
output.meanSomaticWeight.byAge.enabled = TRUE / FALSE
output.meanGonadWeight.byAge.enabled = TRUE / FALSE
# Number of eggs by species and by size class
output.fecondity.byage.enabled = TRUE / FALSE
output.fecondity.bysize.enabled = TRUE / FALSE
output.kappa.byAge.enabled
output.kappa.bySize.enabled# Path and name of the file (NCDF file or else)
temperature.filename =
# variable name from the file
temperature.varname = sst
#
temperature.factor = 1
#
temperature.offset = 0
# Number of measure taken per year (example: once a month)
temperature.nsteps.year = 12
# Path and name of the file (NCDF file or else)
oxygen.filename =
# variable name from the file
oxygen.varname = sso
#
oxygen.factor = 1
#
oxygen.offset = 0
# Number of measure taken per year (example: once a month)
oxygen.nsteps.year = 12 Note: Each of the following parameter need to be attributed its species rank (starting from 0 for the first species) and estimated value. We only list here the parameters without rank and values so the user is free to directly copy paste all the block and arrange it per species, or copy each line to arrange it per set of parameters.
To do maybe: develop a R function that automatically copy/paste the set of code given the number of species (easily done with bloc of .txt
## Process from Ingestion to Mobilization
# I_max, Maximum mass-specific ingestion rate (g.g^-beta.Delta_t^-1)
predation.ingestion.rate.max.bioen.sp
# beta, mass scaling exponent of I_max and c_m
species.beta.sp
# depth layer of the species (0=surface, 1 mean surface-bottom, 2?)
species.zlayer.sp
# $\overline{e_p}$
predation.c.bioen.sp
# theta_l,
predation.coef.ingestion.rate.max.larvae.bioen.sp
# a_l age threshold of larval period (default = 1 year old)
species.larvae.growth.threshold.age.sp
# xi, Assimilation efficiency
species.bioen.assimilation.sp
# Dose-response function to dissolve oxygen saturation f(O2)
# c_O,1, Asymptotic of energy mobilization to dissolved oxygen saturation
species.oxygen.c1.sp
# c_O,2, Slope of energy mobilization to dissolved oxygen saturation
species.oxygen.c2.sp
# fM(T): Temperature-dependence of mobilized energy
# e_M, Activation energy of mobilized energy (eV)
species.bioen.mobilized.e.mobi.sp
# e_D, Deactivation energy of mobilized energy (eV)
species.bioen.mobilized.e.D.sp
# T_pk, Peak temperature of energy mobilization (K)
species.bioen.mobilized.Tp.sp
# c_m: mass-specific maintenance rate (g.g^-beta.Delta_t^-1)
species.bioen.maint.energy.c_m.sp
# fm(T): Temperature-dependence of maintenance
# e_m, Activation energy of maintenance costs (eV)
species.bioen.maint.e.maint.sp ## Maturation process: LMRN (Length Maturation Reaction Norm)
# m0, Intercept of the maturity reaction norm (cm)
species.bioen.maturity.m0.sp
# m1, Slope of the maturity reaction norm (cm.y^-1)
species.bioen.maturity.m1.sp
## Reproduction
# r, Gonado-Somatic Index
species.bioen.maturity.r.sp
# eta, Energy allocated to tissue growth (somatic or gonadic)
species.bioen.maturity.eta.sp
# Conversion coefficient of the trade-off linked to foraging mortality. Note, if Ev-Osmose is implemented, this parameter is replaced
species.bioen.forage.k_for.spIn the newly created osm_config_ev.R script, copy-paste the following
commands to implement the Ev-Osmose.
Input toggle commands to implement the *Ev-*module:
# EV-OSMOSE On
simulation.genetic.enabled = TRUE - Additive parameters to the inputs
# Year in which the evolution starts
population.genotype.transmission.year.start = 0 Select between TRUE / FALSE if you want to activate or deactivate the
given toggle command.
# Evolving traits accounted in the output record
output.evolvingtraits.enabled = TRUE / FALSE
# Mean traits of newborn schools
output.meanTraits.newborn.enabled = TRUE / FALSE
# Mean traits of parent schools, ponderated by number of eggs
output.meanTraits.parents.enabled = TRUE / FALSE This section concerns the following evolving traits: the mass-specific
ingestion rate
,
the intercept
and slope
of the maturation norm, and gonado-somatic index
. The
chunk using species 0 (“sp0”) as example below needs to be duplicated
for each focal species in the system.
Each evolving trait of individuals from school
requires the definition of four parameters: the initial mean of
genotypic value
,
the initial additive genetic variance
,
the expression noise variance
,
the number of functional loci
,
and the number of allelic values
for each of them.
In addition, each evolving trait may influence the instantaneous
foraging mortality rate of schools
,
defined as
with
the foraging mortality of an individual with Imax(i) =
and
the exponential slope of the change in foraging activity.
## Imax
# Initial mean of genotypic value
imax.trait.mean.sp
# Initial additive genetic variance
imax.trait.var.sp
# number of functional locus
imax.trait.nlocus.sp
# Number of values per fonctional locus
imax.trait.nval.sp
# Expression noise variance
imax.trait.envvar.sp
## m0
m0.trait.mean.sp
m0.trait.var.sp
m0.trait.nlocus.sp
m0.trait.nval.sp
m0.trait.envvar.sp
## m1
m1.trait.mean.sp
m1.trait.var.sp
m1.trait.nlocus.sp
m1.trait.nval.sp
m1.trait.envvar.sp
## r
r.trait.mean.sp
r.trait.var.sp
r.trait.nlocus.sp
r.trait.nval.sp
r.trait.envvar.sp
## Foraging-induced mortality rate
# k1, foraging mortality rate at mean G_Imax(0)
species.bioen.forage.k1_for.sp
# k2, exponential slope
species.bioen.forage.k2_for.sp Module in development
commands not included yet in the online documentation - Characteristic
# Number of fisheries involved
simulation.nfisheries
#Name of the fisherie
fisheries.name.fsh - Fisheries movement
# Name of the fishery map
fisheries.movement.fishery.map
fisheries.movement.file.map
fisheries.movement.season.map
fisheries.movement.year.min.map
fisheries.movement.year.max.map- Survey-specific
Example for Survey 0
# Account/not for the given survey
surveys.enabled.sr0 = TRUE / FALSE
# Name of the given survey
surveys.name.sr0
# Species targeted by the survey (refer to species by their attributed number, example 0,2,5,7)
fisheries.targetspecies.sr0
# Netcdf file of the survey movement
surveys.movement.file.map0
# Name of the survey map in the Netcdf file
surveys.movement.survey.map0
# Name of the variable survey of the movement
surveys.movement.variable.map0
# Yearly frequency of survey occurrence
surveys.movement.nsteps.year.map0 Each parameter in the following chunks is a TRUE/FALSE switch
command that enable to record/not a particular output in the wanted
manner. This allows for a great way to personalize the model outcomes.
For simplicity, the different code chunks below group output types that
are either similar or belong to the same module (e.g. Bioen, EV, or
the Economic module).
It is possible to set multiple outputs commands as TRUE within the
same chunk without issue.
- Schools abundance outputs
# To record school abundance
output.nschool.enabled
# School abundance distribution by age class
output.nschool.byage.enabled
# School abundance distribution by size class
output.nschool.bysize.enabled
# To record the number of dead school
output.ndeadschool.enabled
# Abundance of dead school distribution by age class
output.ndeadschool.byage.enabled
# School abundance distribution by age class
output.ndeadschool.bysize.enabled - Biomass outputs
output.biomass.enabled
# Biomass distribution (in tons) by age, size or weight
output.biomass.bysize.enabled
output.biomass.byage.enabled
output.biomass.byweight.enabled
output.biomass.bytl.enabled
output.biomass.netcdf.enabled
output.biomass.bytl.netcdf.enabled
output.biomass.bysize.netcdf.enabled
output.biomass.byage.netcdf.enabled
# Record the Spawning Stock Biomass (tons)
output.ssb.enabled - Abundance outputs
output.abundance.enabled
output.abundance.age1.enabled
# Distribution of fish abundance (number of fish) by age, size, weight or trophic level
output.abundance.byage.enabled
output.abundance.bysize.enabled
output.abundance.byweight.enabled
output.abundance.bytl.enabled
output.abundance.netcdf.enabled
output.abundance.bysize.netcdf.enabled
output.abundance.byage.netcdf.enabled- Diet outputs
output.diet.pressure.enabled
output.diet.pressure.byage.enabled
output.diet.pressure.bysize.enabled
output.diet.success.enabled
output.diet.composition.enabled
output.diet.composition.byage.enabled
output.diet.composition.bysize.enabled
output.diet.pressure.netcdf.enabled
output.diet.composition.netcdf.enabled
output.diet.composition.byage.netcdf.enabled
output.diet.composition.bysize.netcdf.enabled- Yield outputs
# Cumulative catch (tons per time step of saving). ex: if time step of saving is the year, then annual catches are saved
output.yield.biomass.enabled
output.yield.biomass.byWeight.enabled
output.yield.biomass.bySize.enabled
output.yield.biomass.byAge.enabled
# Cumulative catch (number of fish caught per time step of saving).
output.yield.abundance.enabled
# Distribution of cumulative catch (number of fish per time step of saving) per size, weight or age class
output.yield.abundance.bySize.enabled
output.yield.abundance.byWeight.enabled
output.yield.abundance.byAge.enabled
output.yield.biomass.netcdf.enabled
output.yield.biomass.bySize.netcdf.enabled
output.yield.biomass.byage.netcdf.enabled
output.yield.abundance.netcdf.enabled
output.yield.abundance.bySize.netcdf.enabled
output.yield.abundance.byage.netcdf.enabled- Mortality outputs
output.mortality.enabled
# Record the Age at death
output.age.at.death.enabled
# Age of death (year)
output.age.death = TRUE / FALSE
output.mortality.perSpecies.byage.enabled
output.mortality.perSpecies.bysize.enabled
output.mortality.perSpecies.byage.netcdf.enabled
# Distribution of additional mortality biomass (tons of fish dead from unexplicited cause per time step of saving)
output.mortality.additional.bySize.enabled
output.mortality.additional.byAge.enabled
output.mortality.additionalN.bySize.enabled
output.mortality.additionalN.byAge.enabled- Averages
# Mean [trophic level, size or weight] of fish species [in 'no-unit', cm, or in kg], weighted by fish numbers or biomass
output.tl.enabled
output.size.enabled
output.weight.enabled
# Mean size of fish species in cm, weighted by fish numbers in the catches, and including first ages specified in input.
output.size.catch.enabled
output.tl.catch.enabled
output.meanSize.byAge.enabled
output.meanTL.bySize.enabled
output.meanTL.byAge.enabled
output.meanSize.byAge.netcdf.enabled
# Mean Weight of fish (kg) by age, size or weight
output.meanWeight.byAge.enabled
output.meanWeight.bySize.enabled
output.meanWeight.byWeight.enabled- Spatial distribution
output.spatial.enabled
output.spatialtl.enabled
output.spatial.ltl.enabled
output.spatial.abundance.enabled
output.spatial.biomass.enabled
output.spatial.yield.biomass.enabled
output.spatial.yield.abundance.enabled
output.spatial.size.enabled
output.spatial.enet.enabled
output.spatial.enet.larvae.enabled
output.spatial.enet.juv.enabled
output.spatial.mstarv.enabled
output.spatial.mpred.enabled
output.spatial.dg.enabled
output.spatial.egg.enabled
# To save spatial, age or size structured abundance
output.spatialsizespecies.enabled
output.spatialagespecies.enabled- Bio-energetic module BioEn-Osmose
Note: misspell found in the parameter: output.fecondity... to
replace by ...fecundity...
# Number of eggs by species and by size class
output.fecondity.bysize.enabled
output.fecondity.byage.enabled
# Age or/and size at maturity (year or cm)
output.bioen.mature.age.enabled
output.bioen.mature.size.enabled
#Ingestion rate (grams.grams^-alpha)
output.bioen.ingest.enabled
#Cumulated ingestion (grams)
output.bioen.ingest.tot.enabled
#Maintenance rate (grams.grams^-alpha)
output.bioen.maint.enabled
#Mean energy net rate (grams.grams^-beta) (grams net usable per gram of predator)
output.bioen.enet.enabled
# Linf
output.bioen.sizeInf.enabled
#Rho (rate [0-1])
output.bioen.rho.enabled
#Mean ingestion per g.g^-beta.y-1 of fish (centimeter)
output.ingest.byAge.enabled
#Mean ingestion per g.g^-beta.y-1 of fish (centimeter)
output.ingest.bySize.enabled
output.rho.byAge.enabled
output.rho.bySize.enabled
output.enet.byAge.enabled
output.enet.bySize.enabled
output.maintenance.byAge.enabled
output.maintenance.bySize.enabled
output.meanSomaticWeight.byAge.enabled
output.meanGonadWeight.byAge.enabled- Evolutive module Evo-Osmose
output.evolvingtraits.enabled
#Mean traits of child schools
output.meanTraits.newborn.enabled
#Mean traits of parent schools, ponderated by number of eggs
output.meanTraits.parents.enabled - Fisheries Module Enabled
output.spatial.fisheries.enabled
output.fisheries.enabled
output.fisheries.byage.enabled
output.fisheries.bysize.enabled- Economic module
output.fishing.accessible.biomass
output.fishing.harvested.biomass- Other outputs types
# Record the CPU Performance
output.cpu.performance.enabled
# output.individual.enabled ???