Allometry
Agate.Library.Allometry.allometric_palatability_unimodal
— Methodallometric_palatability_unimodal(prey_data::Dict, predator_data::Dict)
Calculates the unimodal allometric palatability of prey based on predator-prey diameters.
0 if $e_{pred}$ = 0
1 / (1 + ($d_{ratio}$- $d_{opt}$)²)$^σ$ otherwise
where:
- $e_{pred}$ = binary ability of predator to eat prey
- $d_{ratio}$ = ratio between predator and prey diameters
- $d_{opt}$ = optimum ratio between predator and prey diameter
- σ = how sharply the palatability decreases away from the optimal ratio.
This formulation differs from the operational MITgcm-DARWIN model as it is is structurally different and diameters are used instead of volumes. However, both formulations result in a unimodal response where the width and optima are modulated by the optimum-predator-prey ratio and the specificity.
Arguments
prey_data
: A dictionary containing prey-specific data:diameters
: Diameter of the prey.
predator_data
: A dictionary containing predator-specific data:can_eat
: A binary value (1 or 0) indicating if the predator can consume prey. If this is set to 0, palatability is set to 0.diameters
: Diameter of the predator.optimum_predator_prey_ratio
: The optimal predator-prey diameter ratio for the predator.specificity
: A parameter controlling how sharply the palatability decreases away from the optimal ratio.
Returns
palatability
: A number between 0 and 1 representing the palatability.
Agate.Library.Allometry.allometric_palatability_unimodal_protection
— Methodallometric_palatability_unimodal_protection(prey_data::Dict, predator_data::Dict)
Calculates the unimodal allometric palatability of prey, accounting for additional prey protection mechanisms.
0 if $e_{pred}$ = 0
(1 - η) / (1 + ($d_{ratio}$- $d_{opt}$)^2)$^σ$ otherwise
where:
- $e_{pred}$ = binary ability of predator to eat prey
- η = prey-protection
- $d_{ratio}$ = ratio between predator and prey diameters
- $d_{opt}$ = optimum ratio between predator and prey diameter
- σ = how sharply the palatability decreases away from the optimal ratio.
Arguments
prey_data
: A dictionary containing prey-specific data:diameters
: Diameter of the prey.protection
: A scaling factor between 0 and 1 representing additional protection mechanisms of the prey.
predator_data
: A dictionary containing predator-specific data:can_eat
: A binary value (1 or 0) indicating if the predator can consume prey. If this is set to 0, palatability is set to 0.diameters
: Diameter of the predator.optimum_predator_prey_ratio
: The optimal predator-prey diameter ratio for the predator.specificity
: A parameter controlling how sharply the palatability decreases away from the optimal ratio.
Returns
palatability
: A number between 0 andprey_protection
representing the palatability.
Agate.Library.Allometry.allometric_scaling_power
— Methodallometric_scaling_power(a::Number, b::Number, diameter::Number)
Allometric scaling function using the power law for cell volume.
$a$$V$$ᵇ$
where:
- $V$ = (4 / 3) * π * ($d$ / 2)³
- $a$ = scale
- $b$ = exponent
- $d$ = cell equivalent spherical diameter (ESD)
Arguments
a
: scaleb
: exponentdiameter
: cell equivalent spherical diameter (ESD)
Mortality
Agate.Library.Mortality.linear_loss
— Methodlinear_loss(P, mortality)
Linear mortality rate.
$l$ * $P$
where:
- $P$ = plankton concentration
- $l$ = mortality rate
In this formulation mortality is linear, and can be interpreted as a "closure term" for low density predation and and other death terms.
Arguments
P
: plankton concentrationmortality
: mortality rate
Agate.Library.Mortality.quadratic_loss
— Methodquadratic_loss(P, mortality)
Quadratic mortality rate.
$l$ * $P$²
where:
- $P$ = plankton concentration
- $l$ = mortality rate
In this formulation mortality increases exponentially with plankton biomass and is often interpreted to represent viral processes and non-represented density-dependent predation effects.
Arguments
P
: plankton concentrationmortality
: mortality rate
Nutrients
Agate.Library.Nutrients.liebig_minimum
— Methodliebig_minimum(nutrient_limitations)
Liebig's law of the minimum, which states that growth is limited by the scarcest (most limiting) resource.
minimum(nutrient_limitations)
where:
- nutrient_limitations = an array of nutrient limitation values (e.g. [N, P, Si])
Arguments
nutrient_limitations
: an array of nutrient limitation values
Returns the minimum value among the given nutrient limitations.
Agate.Library.Nutrients.monod_limitation
— Methodmonod_limitation(nutrient_concentration, nutrient_half_saturation)
Monod formulation of nutrient limitation, which is based on Michaelis-Menten enzyme kinetics.
$R$ / ($kᵣ$ + $R$)
where:
- $R$ = nutrient concentration (e.g. N, P, Si)
- $kᵣ$ = nutrient half saturation constant
Arguments
nutrient_concentration
: nutrient (e.g. N, P, Si)nutrient_half_saturation
: nutrient half saturation constant
Sometimes this formulation is also used for predation (≈'Holling type 2').
Photosynthesis
Agate.Library.Photosynthesis.light_limitation_geider
— Methodlight_limitation_geider(PAR, photosynthetic_slope, maximum_growth_rate,
chlorophyll_to_carbon_ratio)
A light limitation function which depends on the cellular ratio of chlorophyll to carbon. This formulation is based on equation (4) from Geider et al., 1998.
Pᶜₘₐₓ[1-exp((-αᶜʰˡθᶜPAR)/Pᶜₘₐₓ)]
where:
- Pᶜₘₐₓ = maximum_growth rate
- αᶜʰˡ = photosynthetic slope
- PAR = photosynthetic active radiation
- θᶜ = chlorophyll to carbon ratio
Arguments
PAR
: photosynthetic active radiationmaximum_growth_rate
: maximum growth rate before nutrient limitationphotosynthetic_slope
: initial photosynthetic slopechlorophyll_to_carbon_ratio
: ratio between cellular chlorophyll and carbon
Agate.Library.Photosynthesis.light_limitation_smith
— Methodlight_limitation_smith(PAR, initial_slope, maximum_growth_0C)
Smith 1936 formulation of light limitation (also see Evans and Parslow, 1985).
α * PAR / √(μ₀² + α² * PAR²)
where:
- PAR = photosynthetic active radiation
- α = initial photosynthetic slope
- μ₀ = maximum growth rate at 0 °C
Arguments
PAR
: photosynthetic active radiationinitial_slope
: initial photosynthetic slopemaximum_growth_0C
: maximum growth rate at T = 0 °C
Agate.Library.Photosynthesis.photosynthetic_growth_single_nutrient
— Methodphotosynthetic_growth_single_nutrient(N, P, PAR, maximum_growth_0C,
nutrient_half_saturation, initial_slope)
Single nutrient monod smith photosynthetic growth (used, for example, in Kuhn 2015).
μ₀ * γᴿ * γᴾᴬᴿ * $P$
where:
- μ₀ = maximum growth rate at 0 °C
- γᴿ =
monod_limitation(R, kᵣ)
- R = nutrient concentration
- kᵣ = nutrient half saturation
- γᴾᴬᴿ =
light_limitation_smith(PAR, α, μ₀)
- PAR = photosynthetic active radiation
- α = initial photosynthetic slope
- P = plankton concentration
Arguments
R
: nutrient concentrationP
: plankton concentrationPAR
: photosynthetic active radiationmaximum_growth_0C
: maximum growth rate at T = 0 °Cnutrient_half_saturation
: nutrient half saturationinitial_slope
: initial photosynthetic slope
Agate.Library.Photosynthesis.photosynthetic_growth_single_nutrient_geider_light
— Methodphotosynthetic_growth_single_nutrient_geider_light(N, P, PAR, maximum_growth_rate,
nutrient_half_saturation, photosynthetic_slope, chlorophyll_to_carbon_ratio)
Single nutrient geider photosynthetic growth.
γᴿ * γᴾᴬᴿ * P
where:
- γᴿ =
monod_limitation(R, kᵣ)
- R = nutrient concentration
- kᵣ = nutrient half saturation
- γᴾᴬᴿ =
light_limitation_geider(PAR, α, Pᶜₘₐₓ, θᶜ)
- PAR = photosynthetic active radiation
- Pᶜₘₐₓ = maximum growth rate
- θᶜ = chlorophyll to carbon ratio
- α = initial photosynthetic slope
- P = plankton concentration
Arguments
N
: nutrient concentrationP
: phytoplankton concentrationPAR
: photosynthetic active radiationmaximum_growth_rate
: maximum growth rate before nutrient limitationnutrient_half_saturation
: nutrient half saturationphotosynthetic_slope
: initial photosynthetic slopechlorophyll_to_carbon_ratio
: ratio between cellular chlorophyll and carbon
Agate.Library.Photosynthesis.photosynthetic_growth_two_nutrients_geider_light
— Methodphotosynthetic_growth_two_nutrients_geider_light(
DIN,
PO4,
P,
PAR,
maximum_growth_rate,
half_saturation_DIN,
half_saturation_PO4,
photosynthetic_slope,
chlorophyll_to_carbon_ratio,
)
Two nutrient geider photosynthetic growth.
Pᶜₘ * γᴾᴬᴿ * P
where:
- Pᶜₘ =
liebig_minimum([γᴺ, γᴾ])
* Pᶜₘₐₓ - γᴾᴬᴿ =
light_limitation_geider(PAR, α, Pᶜₘ, θᶜ)
- γᴺ =
monod_limitation(DIN, Kₙ)
- γᴾ =
monod_limitation(PO₄, Kₚ)
- DIN = dissolved inorganic nitrogen concentration
- PO₄ = phosphate concentration
- Kₙ = nitrogen half saturation constant
- Kₚ = phosphate half saturation constant
- Pᶜₘₐₓ = maximum growth rate
- θᶜ = chlorophyll to carbon ratio
- α = initial photosynthetic slope
- P = plankton concentration
Unlike the MITgcm-DARWIN formulation this function does not include light inhibition
Arguments
DIN
: dissolved inorganic nitrogen concentrationPO4
: phosphate concentrationP
: phytoplankton concentrationPAR
: photosynthetic active radiationmaximum_growth_rate
: maximum growth rate before nutrient limitationhalf_saturation_DIN
: nitrogen half saturationhalf_saturation_PO4
: phosphate half saturationphotosynthetic_slope
: initial photosynthetic slopechlorophyll_to_carbon_ratio
: ratio between cellular chlorophyll and carbon
Predation
Agate.Library.Predation.assimilation_efficiency_emergent_binary
— Methodassimilation_efficiency_emergent_binary(prey_data, predator_data)
Determines the assimilation efficiency of a predator consuming prey, based on binary conditions of edibility. The function evaluates whether the predator can eat the prey and whether the prey can be consumed, and assigns the assimilation efficiency accordingly.
β if $e_{prey}$ = 1 & $e_{pred}$ = 1
0 otherwise
where:
- β = assimilation efficiency of prey to the predator
- $e_{prey}$ = whether prey can be eaten (binary value)
- $e_{pred}$ = whether predator can eat (binary value)
Arguments
prey_data
: A dictionary containing prey-specific data:can_be_eaten
: A binary value (1 or 0) indicating if the prey can be consumed by the predator.
predator_data
: A dictionary containing predator-specific data:can_eat
: A binary value (1 or 0) indicating if the predator can consume prey.assimilation_efficiency
: The efficiency with which the predator assimilates nutrients from the prey if the conditions are met.
Returns
assimilation_efficiency
:- If
can_eat
is 1 andcan_be_eaten
is 1, returns the predator'sassimilation_efficiency
. - Otherwise, returns 0.
- If
Agate.Library.Predation.holling_type_2
— Methodholling_type_2(prey_concentration::Real, prey_half_saturation::Real)
Holling's "type II" functional response as describe in Holling 1959.
R / (kᵣ + R)
where:
- $R$ = prey concentration
- $kᵣ$ = prey half saturation constant
The function is similar to the Monod equation and Michaelis-Menten equation of for enzyme kinetics. The formulation is characterized by decelerating predation as prey concentrations increase.
Arguments
prey_concentration
: prey densityprey_half_saturation
: prey density at which predation is half it's maximum rate
Agate.Library.Predation.predation_assimilation_loss_idealized
— Methodpredation_assimilation_loss_idealized(P, Z, assimilation_efficiency,
maximum_grazing_rate, prey_half_saturation)
Estimates the rate at which plankton predation gain is lost to the environment due to inefficient assimilation efficiency (e.g. 'sloppy feeding').
(1 - β) * $g$
where:
- β = assimilation efficiency of prey to the predator
- $g$ =
predation_loss_idealized(P, Z, gₘₐₓ, kₚ)
- P = phytoplankton concentration
- Z = zooplankton concentration
- gₘₐₓ = maximum grazing rate of the predator
- kₚ = prey half saturation
This functino differs from predation_gain_idealized
as it represents the transfer of biomass from the prey to the environment rather than the transfer of biomass from the prey to the predator.
Arguments
P
: phytoplankton concentrationZ
: zooplankton concentrationassimilation_efficiency
: assimilation efficiency of prey to the predatormaximum_grazing_rate
: maximum grazing rate of the predatorprey_half_saturation
: prey half saturation
Agate.Library.Predation.predation_assimilation_loss_preferential
— Methodpredation_assimilation_loss_preferential(P, Z, assimilation_efficiency,
maximum_grazing_rate, prey_half_saturation, palatability)
Estimates the rate at which plankton predation gain is lost to the environment due to inefficient assimilation efficiency (e.g. 'sloppy feeding').
(1-β) * $g$
where:
- β = assimilation efficiency of prey to the predator
- $g$ =
predation_loss_preferential(P, Z, gₘₐₓ, kₚ, η)
- P = phytoplankton concentration
- Z = zooplankton concentration
- gₘₐₓ = maximum grazing rate of the predator
- kₚ = prey half saturation
- η = palatability
This function differs from predation_gain_preferential
as it represents the transfer of biomass from the prey to the environment rather than the transfer of biomass from the prey to the predator.
Arguments
P
: phytoplankton concentrationZ
: zooplankton concentrationassimilation_efficiency
: assimilation efficiencymaximum_grazing_rate
: maximum grazing rateprey_half_saturation
: prey density at which predation is half it's maximum ratepalatability
: the likelihood at which the predator feeds on the prey
Agate.Library.Predation.predation_gain_idealized
— Methodpredation_gain_idealized(P, Z, assimilation_efficiency, maximum_grazing_rate,
prey_half_saturation)
Estimates the gain rate of Z (predator) feeding on P (prey). In this formulation predation rate is multiplied by an assimilation efficiency (β) which represents 'sloppy feeding'.
β * $g$
where:
- β = assimilation efficiency of prey to the predator
- $g$ =
predation_loss_idealized(P, Z, gₘₐₓ, kₚ)
- P = phytoplankton concentration
- Z = zooplankton concentration
- gₘₐₓ = maximum grazing rate of the predator
- kₚ = prey half saturation
Arguments
P
: phytoplankton concentrationZ
: zooplankton concentrationassimilation_efficiency
: assimilation efficiency of the predatormaximum_grazing_rate
: maximum grazing rate of the predatorprey_half_saturation
: prey half saturation
Agate.Library.Predation.predation_gain_preferential
— Methodpredation_gain_preferential(P, Z, assimilation_efficiency, maximum_grazing_rate,
prey_half_saturation, palatability)
Estimates the gain rate of Z (predator) feeding on P (prey). In this formulation predation rate is multiplied by an assimilation efficiency (β) which represents 'sloppy feeding'.
β * $g$
where:
- β = assimilation efficiency of prey to the predator
- $g$ =
predation_loss_preferential(P, Z, gₘₐₓ, kₚ, η)
- P = phytoplankton concentration
- Z = zooplankton concentration
- gₘₐₓ = maximum grazing rate of the predator
- kₚ = prey half saturation
- η = palatability
Arguments
P
: phytoplankton concentrationZ
: zooplankton concentrationassimilation_efficiency
: assimilation efficiencymaximum_grazing_rate
: maximum grazing rateprey_half_saturation
: prey density at which predation is half it's maximum ratepalatability
: the likelihood at which the predator feeds on the prey
Agate.Library.Predation.predation_loss_idealized
— Methodpredation_loss_idealized(P, Z, maximum_grazing_rate, prey_half_saturation)
Estimates the loss rate of P (prey), to Z (predator).
gₘₐₓ * γᴾᴿᴱᴰ * Z
where:
- gₘₐₓ = maximum grazing rate of the predator
- γᴾᴿᴱᴰ =
holling_type_2(P², kₚ²)
- P = prey concentration
- kₚ = prey half saturation
- Z = predator concentration
In this formulation predator-prey interactions are modulated both by their density (Holling type 2) and the prey-predator palatability.
Arguments
P
: phytoplankton concentrationZ
: zooplankton concentrationmaximum_grazing_rate
: maximum grazing rate of the predatorprey_half_saturation
: prey density at which predation is half it's maximum rate
Agate.Library.Predation.predation_loss_preferential
— Methodpredation_loss_preferential(P, Z, maximum_grazing_rate, prey_half_saturation,
palatability)
Estimates the loss rate of P (prey), to Z (predator). In this formulation predator-prey interactions are modulated both by their density (Holling type 2) and the prey-predator palatability.
gₘₐₓ * η * γᴾᴿᴱᴰ * Z
where:
- gₘₐₓ = maximum grazing rate
- η = palatability
- γᴾᴿᴱᴰ =
holling_type_2(P², kₚ²)
- P = phytoplankton concentration
- kₚ = prey half saturation
- Z: zooplankton concentration
Arguments
P
: phytoplankton concentrationZ
: zooplankton concentrationmaximum_grazing_rate
: maximum grazing rateprey_half_saturation
: prey density at which predation is half it's maximum ratepalatability
: the likelihood at which the predator feeds on the prey
Remineralization
Agate.Library.Remineralization.remineralization_idealized
— Methodremineralization_idealized(D, remineralization_rate)
Idealized remineralization of detritus into dissolved nutrients.
r * D
where:
- D = detritus concentration
- r = remineralization rate
Arguments
D
: detritus concentrationremineralization_rate
: remineralization rate