Canopy
Canopy Model and Parameters
ClimaLand.Canopy.CanopyModel
— Type CanopyModel{FT, AR, RM, PM, SM, PHM, EM, SM, A, R, S, PS, D} <: ClimaLand.AbstractImExModel{FT}
The model struct for the canopy, which contains
- the canopy model domain (a point for site-level simulations, or
an extended surface (plane/spherical surface) for regional or global simulations.
- subcomponent model type for radiative transfer. This is of type
AbstractRadiationModel
.
- subcomponent model type for photosynthesis. This is of type
AbstractPhotosynthesisModel
, and currently only the FarquharModel
is supported.
- subcomponent model type for stomatal conductance. This is of type
AbstractStomatalConductanceModel
and currently only the MedlynModel
is supported
- subcomponent model type for plant hydraulics. This is of type
AbstractPlantHydraulicsModel
and currently only a version which prognostically solves Richards equation in the plant is available.
- subcomponent model type for canopy energy. This is of type
AbstractCanopyEnergyModel
and currently we support a version where the canopy temperature is prescribed, and one where it is solved for prognostically.
- subcomponent model type for canopy SIF. prognostically.
- canopy model parameters, which include parameters that are shared
between canopy model components or those needed to compute boundary fluxes.
- The boundary conditions, which contain:
- The atmospheric conditions, which are either prescribed (of type
PrescribedAtmosphere
) or computed via a coupled simulation (of typeCoupledAtmosphere
). - The radiative flux conditions, which are either prescribed (of type
PrescribedRadiativeFluxes
) or computed via a coupled simulation (of typeCoupledRadiativeFluxes
). - The ground conditions, which are either prescribed or prognostic
- The atmospheric conditions, which are either prescribed (of type
Note that the canopy height is specified as part of the PlantHydraulicsModel, along with the area indices of the leaves, roots, and stems. Eventually, when plant biomass becomes a prognostic variable (by integrating with a carbon model), some parameters specified here will be treated differently.
autotrophic_respiration
: Autotrophic respiration model, a canopy component modelradiative_transfer
: Radiative transfer model, a canopy component modelphotosynthesis
: Photosynthesis model, a canopy component modelconductance
: Stomatal conductance model, a canopy component modelhydraulics
: Plant hydraulics model, a canopy component modelenergy
: Energy balance model, a canopy component modelsif
: SIF model, a canopy component modelboundary_conditions
: Boundary Conditionsparameters
: Shared canopy parameters between component modelsdomain
: Canopy model domain
ClimaLand.Canopy.CanopyModel
— MethodCanopyModel{FT}(;
autotrophic_respiration::AbstractAutotrophicRespirationModel{FT},
radiative_transfer::AbstractRadiationModel{FT},
photosynthesis::AbstractPhotosynthesisModel{FT},
conductance::AbstractStomatalConductanceModel{FT},
hydraulics::AbstractPlantHydraulicsModel{FT},
energy::AbstractCanopyEnergyModel{FT},
sif::AbstractSIFModel{FT},
boundary_conditions::B,
parameters::SharedCanopyParameters{FT, PSE},
domain::Union{
ClimaLand.Domains.Point,
ClimaLand.Domains.Plane,
ClimaLand.Domains.SphericalSurface,
},
energy = PrescribedCanopyTempModel{FT}(),
) where {FT, PSE}
An outer constructor for the CanopyModel
. The primary constraints this applies are (1) ensuring that the domain is 1d or 2d (a ``surface" domain of a column, box, or sphere) and (2) ensuring consistency between the PlantHydraulics model and the general canopy model, since these are built separately.
ClimaLand.Canopy.CanopyModel
— Methodfunction CanopyModel{FT}(
domain::Union{
ClimaLand.Domains.Point,
ClimaLand.Domains.Plane,
ClimaLand.Domains.SphericalSurface,
},
forcing::NamedTuple,
LAI::AbstractTimeVaryingInput,
toml_dict::CP.AbstractTOMLDict;
z_0m = toml_dict["canopy_momentum_roughness_length"],
z_0b = toml_dict["canopy_scalar_roughness_length"],
prognostic_land_components = (:canopy,),
autotrophic_respiration = AutotrophicRespirationModel{FT}(),
radiative_transfer = TwoStreamModel{FT}(domain),
photosynthesis = FarquharModel{FT}(domain),
conductance = MedlynConductanceModel{FT}(domain),
hydraulics = PlantHydraulicsModel{FT}(domain, LAI, toml_dict),
energy = BigLeafEnergyModel{FT}(),
sif = Lee2015SIFModel{FT}(),
) where {FT, PSE}
Creates a CanopyModel with the provided domain, forcing, and parameters.
Defaults are provided for each canopy component model, which can be overridden by passing in a different instance of that type of model. Default parameters are also provided for each canopy component, and can be changed with keyword arguments. Please see the documentation of each component model for details on the default parameters.
The required argument forcing
should be a NamedTuple with the following field:
atmos
: a PrescribedAtmosphere or CoupledAtmosphere objectradiation
: a PrescribedRadiativeFluxes or CoupledRadiativeFluxes objectground
: a PrescribedGroundConditions, PrognosticGroundConditions, or PrognosticSoilConditions object
The required argument LAI
should be a ClimaUtilities TimeVaryingInput for leaf area index.
When running the canopy model in standalone mode, set prognostic_land_components = (:canopy,)
, while for running integrated land models, this should be a list of the individual models. This value of this argument must be the same across all components in the land model.
ClimaLand.Canopy.SharedCanopyParameters
— TypeSharedCanopyParameters{FT <: AbstractFloat, PSE}
A place to store shared parameters that are required by multiple canopy components.
z_0m
: Roughness length for momentum (m)z_0b
: Roughness length for scalars (m)earth_param_set
: Earth param set
ClimaLand.Canopy.AbstractCanopyComponent
— TypeAbstractCanopyComponent{FT <: AbstractFloat}
An abstract type for canopy component parameterizations.
Canopy component parameterizations do not run in standalone mode, but only as part of a CanopyModel
. As such, they do not require all of the functionality of AbstractModel
s, and they are not AbstractModel
s themselves. The CanopyModel
is an AbstractModel
.
However, some of the same functionality is nice to have for canopy components, especially when defining the variables, which is why we introduce the AbstractCanopyComponent
type and extend many of the methods for ClimaLand.AbstractModel
s for the canopy component parameterizations.
Canopy Model Boundary Fluxes
ClimaLand.Canopy.AbstractCanopyBC
— TypeAbstractCanopyBC <: ClimaLand.AbstractBC
An abstract type for boundary conditions for the canopy model.
ClimaLand.Canopy.AtmosDrivenCanopyBC
— TypeAtmosDrivenCanopyBC{
A <: AbstractAtmosphericDrivers,
B <: AbstractRadiativeDrivers,
G <: AbstractGroundConditions,
C::Tuple
} <: AbstractCanopyBC
A struct used to specify the canopy fluxes, referred to as ``boundary conditions", at the surface and bottom of the canopy, for water and energy.
These fluxes include turbulent surface fluxes computed with Monin-Obukhov theory, radiative fluxes, and root extraction.
atmos
: The atmospheric conditions driving the modelradiation
: The radiative fluxes driving the modelground
: Ground conditionsprognostic_land_components
: Prognostic land components present