Diagnostics
CryoGrid.Diagnostics.active_layer_thickness
— Methodactive_layer_thickness(T::AbstractDimArray{<:TempQuantity})
Computes active layer thickness annually. The active layer thickness is defined here as the maximum thaw depth throughout the calendar year. Assumes T
to have dimensions Ti
(time) and Z
(depth) in any order.
CryoGrid.Diagnostics.computejac
— Methodcomputejac(tile::Tile, u, p, t)
Helper function that computes the Jacobian of the given tile
at u
with parameters p
and time t
.
CryoGrid.Diagnostics.integrate
— Methodintegrate(X::AbstractDimArray, grid::Grid{Edges}; upper_limit=0u"m", lower_limit=10u"m")
Integrates the quantity X
over the given grid
, which is assumed to be spatially alligned, i.e. length(grid) == length(dims(X,Z)) + 1
and cells(grid) .≈ dims(X,Z)
are necessary preconditions.
CryoGrid.Diagnostics.mean_annual_ground_temperature
— Methodmean_annual_ground_temperature(T::AbstractDimArray; upper_limit=0u"m", lower_limit=10u"m")
Computes mean annual ground temperature between upper_limit
and lower_limit
. Assumes T
to have dimensions Ti
(time) and Z
(depth) in any order.
CryoGrid.Diagnostics.permafrostbase
— Methodpermafrostbase(T::AbstractDimArray{<:TempQuantity})
Computes depth of permafrost base for all years, i.e. the closest depth to the "bottom" at which the maximum annual temperature is strictly < 0°C
. Assumes T
to have dimensions Ti
(time) and Z
(depth) in any order.
CryoGrid.Diagnostics.permafrosttable
— Methodpermafrosttable(T::AbstractDimArray{<:TempQuantity})
Computes depth of permafrost table for all years, i.e. the closest depth to the surface at which the maximum annual temperature is strictly less than Tmelt
. Assumes T
to have dimensions Ti
(time) and Z
(depth) in any order.
CryoGrid.Diagnostics.spinup
— Methodspinup(setup::Tile, tspan::NTuple{2,DateTime}, p, tol, layername; kwargs...)
Implements a simple, iterative spin-up procedure. Runs the model specified by setup
over tspan
until the profile mean up to maxdepth
over the whole time span changes only within the given tolerance tol
. Returns the ODESolution
generated by the final iteration.
CryoGrid.Diagnostics.thawdepth
— Methodthawdepth(T::AbstractDimArray{<:TempQuantity}; Tmelt=0.0u"°C")
Computes sub-grid thaw depth (a.k.a freezing front) from temperature at all time steps. The sub-grid depth of the zero degree isotherm is determined by linearly interpolating between grid cell temperatures in T
. Note that T
is assumed to have units °C and dimensions Ti
(time) and Z
(depth) in any order.
CryoGrid.Diagnostics.zero_annual_amplitude
— Methodzero_annual_amplitude(T::AbstractDimArray{<:TempQuantity}; threshold=0.5u"K")
Computes annual depth of zero amplitude (where |max - min| < threshold
) and returns the result for each year. Assumes T
to have dimensions Ti
(time) and Z
(depth) in any order.