Juvenile Metrics
This section provides aggregation methods for summarizing juvenile coral abundance across different model output dimensions. These functions help reduce high-dimensional data on juvenile corals into simpler, more interpretable summary metrics.
ADRIAIndicators._max_juvenile_area — Method_max_juvenile_area(max_juv_colony_area::T, max_juv_density::T)::T where {T<:Real}Calculate the maximum possible area that can be covered by juveniles for a given m².
Arguments
max_juv_colony_area: Maximum colony area of a juvenile in m².max_juv_density: Maximum juvenile density in individuals/m².
ADRIAIndicators._maximum_colony_area — Method_maximum_colony_area(size_spec::AbstractArray{T,2})::T where {T<:AbstractFloat}Calculate the largest colony size given a range of size classes.
ADRIAIndicators.absolute_juveniles! — Methodabsolute_juveniles!(relative_cover::AbstractArray{T,4}, is_juvenile::AbstractVector{Bool}, location_area::AbstractVector{T}, out_absolute_juveniles::AbstractArray{T,2})::Nothing where {T<:AbstractFloat}Calculate the absolute coral cover composed of juveniles for each timestep and location.
Arguments
relative_cover: Relative cover with dimensions [timesteps ⋅ groups ⋅ sizes ⋅ locations].is_juvenile: A boolean vector indicating which size classes are juvenile.location_area: Habitable area for each location.out_absolute_juveniles: Output array buffer with dimensions [timesteps ⋅ locations].
ADRIAIndicators.absolute_juveniles! — Methodabsolute_juveniles!(relative_cover::AbstractArray{T,5}, is_juvenile::AbstractVector{Bool}, location_area::AbstractVector{T}, out_absolute_juveniles::AbstractArray{T,3})::Nothing where {T<:AbstractFloat}Calculate the absolute coral cover composed of juveniles for each timestep, location, and scenario.
Arguments
relative_cover: Relative cover with dimensions [timesteps ⋅ groups ⋅ sizes ⋅ locations ⋅ scenarios].is_juvenile: Boolean mask indicating juvenile size classes.location_area: Habitable area for each location.out_absolute_juveniles: Output array buffer with dimensions [timesteps ⋅ locations ⋅ scenarios].
ADRIAIndicators.absolute_juveniles — Methodabsolute_juveniles(relative_cover::AbstractArray{T,4}, is_juvenile::AbstractVector{Bool}, location_area::AbstractVector{T})::AbstractArray{T,2} where {T<:AbstractFloat}Calculate the absolute coral cover composed of juveniles for each timestep and location.
Arguments
relative_cover: Relative cover with dimensions [timesteps ⋅ groups ⋅ sizes ⋅ locations].is_juvenile: Boolean mask indicating juvenile size classes.location_area: Habitable area for each location.
Returns
A 2D array of absolute juvenile cover with dimensions [timesteps ⋅ locations].
ADRIAIndicators.absolute_juveniles — Methodabsolute_juveniles(relative_cover::AbstractArray{T,5}, is_juvenile::AbstractVector{Bool}, location_area::AbstractVector{T})::AbstractArray{T,3} where {T<:AbstractFloat}Calculate the absolute coral cover composed of juveniles for each timestep, location, and scenario.
Arguments
relative_cover: Relative cover with dimensions [timesteps ⋅ groups ⋅ sizes ⋅ locations ⋅ scenarios].is_juvenile: Boolean mask indicating juvenile size classes.location_area: Habitable area for each location.
Returns
A 3D array of absolute juvenile cover with dimensions [timesteps ⋅ locations ⋅ scenarios].
ADRIAIndicators.absolute_loc_taxa_juveniles! — Methodabsolute_loc_taxa_juveniles!(relative_cover::AbstractArray{T,4}, is_juvenile::AbstractVector{Bool}, location_area::AbstractVector{T}, out_absolute_loc_taxa_juveniles::AbstractArray{T,3})::NothingCalculate the coral cover occupied by juveniles in absolute units over timesteps, functional groups and locations. Write results into a preallocated buffer.
Arguments
relative_cover: Relative cover with dimensions [timesteps ⋅ groups ⋅ sizes ⋅ locations].is_juvenile: Boolean mask indicating juvenile size classes.location_area: Habitable area for each location.out_absolute_loc_taxa_juveniles: Out array buffer with dimensions [timesteps ⋅ groups ⋅ locations]
ADRIAIndicators.absolute_loc_taxa_juveniles — Methodabsolute_loc_taxa_juveniles(relative_cover::AbstractArray{T,4}, is_juvenile::AbstractVector{Bool}, location_area::AbstractVector{T})::Array{T,3} where {T<:AbstractFloat}Calculate the coral cover occupied by juveniles in absolute units over timesteps, functional groups and locations.
Arguments
relative_cover: Relative cover with dimensions [timesteps ⋅ groups ⋅ sizes ⋅ locations].is_juvenile: Boolean mask indicating juvenile size classes.location_area: Habitable area for each location.
Returns
A 2D array of absolute juvenile cover with dimensions [timesteps ⋅ locations].
ADRIAIndicators.absolute_taxa_juveniles! — Methodabsolute_taxa_juveniles!(relative_cover::AbstractArray{T,4}, is_juvenile::AbstractVector{Bool}, location_area::AbstractVector{T}, out_absolute_taxa_juveniles::AbstractArray{T,2})::NothingCalculate the coral cover occupied by juveniles over timesteps and functional groups. Write results in a preallocated buffer.
Arguments
relative_cover: Relative cover with dimensions [timesteps ⋅ groups ⋅ sizes ⋅ locations].is_juvenile: Boolean mask indicating juvenile size classes.location_area: Habitable area for each location.out_absolute_taxa_juveniles: Out array buffer with dimensions [timesteps ⋅ groups ⋅ locations]
ADRIAIndicators.absolute_taxa_juveniles — Methodabsolute_taxa_juveniles(relative_cover::AbstractArray{T,4}, is_juvenile::AbstractVector{Bool}, location_area::AbstractVector{T})::Array{T,2} where {T<:AbstractFloat}Calculate the coral cover occupied by juveniles in absolute units over timesteps, functional groups and locations.
Arguments
relative_cover: Relative cover with dimensions [timesteps ⋅ groups ⋅ sizes ⋅ locations].is_juvenile: Boolean mask indicating juvenile size classes.location_area: Habitable area for each location.
Returns
A 2D array with dimensions [timesteps ⋅ groups]
ADRIAIndicators.juvenile_indicator! — Methodjuvenile_indicator!(relative_cover::AbstractArray{T,4}, is_juvenile::AbstractVector{Bool}, location_area::AbstractVector{T}, max_juv_colony_area::T, max_juv_density::T)::NothingIndicator for juvenile density (0 - 1) where 1 indicates the maximum theoretical density for juveniles have been achieved.
Arguments
relative_cover: Relative cover with dimensions [timesteps ⋅ groups ⋅ sizes ⋅ locations]is_juvenile: Boolean mask indicating juvenile size classes.habitable_area: Available area habitable by coral for each location.mean_colony_diameters: Mean colony diameter for each group and size class with dimensions [groups ⋅ size classes]max_juv_density: Maximum density juveniles can occur in.out_juvenile_indicator: Output array buffer for the juvenile indicator metrics with dimensions [timesteps ⋅ locations]
ADRIAIndicators.juvenile_indicator! — Methodjuvenile_indicator!(relative_cover::AbstractArray{T,5}, is_juvenile::AbstractVector{Bool}, habitable_area::AbstractVector{T}, mean_colony_diameters::AbstractArray{T,2}, max_juv_density::T, out_juvenile_indicator::AbstractArray{T,3})::Nothing where {T<:AbstractFloat}Indicator for juvenile density (0 - 1) where 1 indicates the maximum theoretical density for juveniles have been achieved.
Arguments
relative_cover: Relative cover with dimensions [timesteps ⋅ groups ⋅ sizes ⋅ locations ⋅ scenarios]is_juvenile: Boolean mask indicating juvenile size classes.habitable_area: Available area habitable by coral for each location.mean_colony_diameters: Mean colony diameter for each group and size class with dimensions [groups ⋅ size classes]max_juv_density: Maximum density juveniles can occur in.out_juvenile_indicator: Output array buffer for the juvenile indicator metrics with dimensions [timesteps ⋅ locations ⋅ scenarios]
ADRIAIndicators.juvenile_indicator — Methodjuvenile_indicator(relative_cover::AbstractArray{T,4}, is_juvenile::AbstractVector{Bool}, habitable_area::AbstractVector{T}, mean_colony_diameters::AbstractArray{T,2}, max_juv_density::T)::AbstractArray{T,2} where {T<:AbstractFloat}Indicator for juvenile density (0 - 1) where 1 indicates the maximum theoretical density for juveniles have been achieved. The juvenile indicator is defined as follows.
The maximum juvenile colony area $J_A$ refers to the maximum mean colony area over all juvenile size classes and all functional groups. Maximum juvenile density $J_D$refers to the maximum density juvenile can occur at over all juvenile size classes and functional groups. Then Juvenile Indicator (I) is given as,
\[\begin{align*} I(x; J_A, J_D, H_A) = \frac{A(x; H_A)}{J_A \cdot J_D \cdot H_A}, \end{align*}\]
where $H_A$ refers to habitable area and $A(x; H_A)$ refers to absolute juvenile cover.
Arguments
relative_cover: Relative cover with dimensions [timesteps ⋅ groups ⋅ sizes ⋅ locations]is_juvenile: Boolean mask indicating which sizes are juveniles.habitable_area: Available area habitable by coral for each location.mean_colony_diameters: Mean colony diameter for each group and size class with dimensions [groups ⋅ size classes]max_juv_density: Maximum juvenile density for all juvenile size classes and functional groups.
Returns
A 2D array of juvenile indicators with dimensions [timesteps ⋅ locations]
ADRIAIndicators.juvenile_indicator — Methodjuvenile_indicator(relative_cover::AbstractArray{T,5}, is_juvenile::AbstractVector{Bool}, habitable_area::AbstractVector{T}, mean_colony_diameters::AbstractArray{T,2}, max_juv_density::T)::AbstractArray{T,3} where {T<:AbstractFloat}Indicator for juvenile density (0 - 1) where 1 indicates the maximum theoretical density for juveniles have been achieved. The juvenile indicator is defined as follows.
The maximum juvenile colony area $J_A$ refers to the maximum mean colony area over all juvenile size classes and all functional groups. Maximum juvenile density $J_D$refers to the maximum density juvenile can occur at over all juvenile size classes and functional groups. Then Juvenile Indicator (I) is given as,
\[\begin{align*} I(x; J_A, J_D, H_A) = \frac{A(x; H_A)}{J_A \cdot J_D \cdot H_A}, \end{align*}\]
where $H_A$ refers to habitable area and $A(x; H_A)$ refers to absolute juvenile cover.
Arguments
relative_cover: Relative cover with dimensions [timesteps ⋅ groups ⋅ sizes ⋅ locations ⋅ scenarios]is_juvenile: Boolean mask indicating which sizes are juveniles.habitable_area: Available area habitable by coral for each location.mean_colony_diameters: Mean colony diameter for each group and size class with dimensions [groups ⋅ size classes]max_juv_density: Maximum juvenile density for all juvenile size classes and functional groups.
Returns
A 3D array of juvenile indicators with dimensions [timesteps ⋅ locations ⋅ scenarios]
ADRIAIndicators.relative_juveniles! — Methodrelative_juveniles!(relative_cover::AbstractArray{T,4}, is_juvenile::AbstractVector{Bool}, out_relative_juveniles::AbstractArray{T,2})::Nothing where {T<:Real}Calculate the relative coral cover composed of juveniles.
Arguments
relative_cover: Relative cover with dimensions [timesteps ⋅ groups ⋅ sizes ⋅ locations].is_juvenile: A boolean vector indicating which size classes are juvenile.out_relative_juveniles: Output array buffer with dimensions [timesteps ⋅ locations].
ADRIAIndicators.relative_juveniles! — Methodrelative_juveniles!(relative_cover::AbstractArray{T,5}, is_juvenile::AbstractVector{Bool}, out_relative_juveniles::AbstractArray{T,3})::Nothing where {T<:Real}Calculate the relative coral cover composed of juveniles for a 5-dimensional array of relative cover.
Arguments
relative_cover: Relative cover with dimensions [timesteps ⋅ groups ⋅ sizes ⋅ locations ⋅ scenarios].is_juvenile: A boolean vector indicating which size classes are juvenile.out_relative_juveniles: Output array buffer with dimensions [timesteps ⋅ locations ⋅ scenarios].
ADRIAIndicators.relative_juveniles — Methodrelative_juveniles(relative_cover::AbstractArray{T,4}, is_juvenile::AbstractVector{Bool})::AbstractArray{T,2} where {T<:Real}Calculate the relative coral cover composed of juveniles.
Arguments
relative_cover: Relative cover with dimensions [timesteps ⋅ groups ⋅ sizes ⋅ locations].is_juvenile: A boolean vector indicating which size classes are juvenile.
Returns
A 2D array of relative juvenile cover with dimensions [timesteps ⋅ locations].
ADRIAIndicators.relative_juveniles — Methodrelative_juveniles(relative_cover::AbstractArray{T,5}, is_juvenile::AbstractVector{Bool})::AbstractArray{T,3} where {T<:Real}Calculate the relative coral cover composed of juveniles for a 5-dimensional array of relative cover.
Arguments
relative_cover: Relative cover with dimensions [timesteps ⋅ groups ⋅ sizes ⋅ locations ⋅ scenarios].is_juvenile: A boolean vector indicating which size classes are juvenile.
Returns
A 3D array of relative juvenile cover with dimensions [timesteps ⋅ locations ⋅ scenarios].
ADRIAIndicators.relative_loc_taxa_juveniles! — Methodrelative_loc_taxa_juveniles!(relative_cover::AbstractArray{T,4}, is_juvenile::AbstractVector{Bool}, location_area::AbstractVector{T}, out_relative_loc_taxa_juveniles::AbstractArray{T,2})::Nothing where {T<:AbstractFloat}Calculate the relative coral cover copmosed of juveniles over time, functional group and location. Returns the output into a preallocated buffer
Arguments
relative_cover: Relative cover with dimensions [timesteps ⋅ groups ⋅ sizes ⋅ locations].is_juvenile: A boolean vector indicating which size classes are juvenile.out_relative_taxa_juveniles: Output array buffer with dimensions [timesteps ⋅ groups ⋅ locations].
ADRIAIndicators.relative_loc_taxa_juveniles — Methodrelative_loc_taxa_juveniles(relative_cover::AbstractArray{T,4}, is_juvenile::AbstractVector{Bool},)::Array{T,3} where {T<:AbstractFloat}Calculate the relative coral cover composed of juveniles over time, functional group and location.
Arguments
relative_cover: Relative cover with dimensions [timesteps ⋅ groups ⋅ sizes ⋅ locations].is_juvenile: A boolean vector indicating which size classes are juvenile.
Returns
Array with dimensions [timesteps ⋅ groups ⋅ locations].
ADRIAIndicators.relative_taxa_juveniles! — Methodrelative_taxa_juveniles!(relative_cover::AbstractArray{T,4}, is_juvenile::AbstractArray{Bool}, location_area::AbstractVector{T}, out_relative_taxa_juveniles::AbstractArray{T,2})::Nothing where {T<:AbstractFloat}Calculate the relative coral cover composed of juveniles over time and functional group. Returns the output into a preallocated buffer.
Arguments
relative_cover: Relative cover with dimensions [timesteps ⋅ groups ⋅ sizes ⋅ locations].is_juvenile: A boolean vector indicating which size classes are juvenile.location_area: Vector containing the area of each location with dimensions [locations].out_relative_taxa_juveniles: Output array buffer with dimensions [timesteps ⋅ groups].
ADRIAIndicators.relative_taxa_juveniles — MethodCalculate the relative coral cover composed of juveniles over time and functional group.
Arguments
relative_cover: Relative cover with dimensions [timesteps ⋅ groups ⋅ sizes ⋅ locations].is_juvenile: A boolean vector indicating which size classes are juvenile.location_area: Vector containing the area of each location with dimensions [locations].
Returns
Array with dimensions [timesteps ⋅ groups].