Albedo and emissivity
This page is a work in progress. If you have any questions or notice any errors, please raise an issue.
Overview
Albedo is the fraction of incident shortwave radiation reflected back to space:
\[\begin{equation} \alpha = \frac{\text{SW}_{\uparrow}}{\text{SW}_{\downarrow}} \end{equation}\]
where $S_{\uparrow}$ is the reflected (upwelling) shortwave and $\text{SW}_{\downarrow}$ is the incident (downwelling) shortwave. Albedo ranges from 0 (perfectly absorbing) to 1 (perfectly reflecting).
Variability of albedo and emissivity
Albedo can depend on multiple factors:
- Surface type: Snow (0.7–0.9, highly reflective), vegetation (0.1–0.3), bare soil (0.2–0.4), water (0.05–0.15)
- Soil moisture: Darker, wetter soils have lower albedo
- Vegetation density: Denser vegetation lowers albedo
- Snow age: Fresh snow is bright; aging snow darkens with deposition of impurities and increases in grain size
Emissivity is the efficiency with which the surface emits thermal (longwave) radiation:
\[\begin{equation} \epsilon = \frac{L_{\uparrow}}{\sigma T_0^4} \end{equation}\]
where $L_{\uparrow}$ is the total upwelling longwave radiation (including both surface emission and reflection of incident longwave), and $\sigma T_0^4$ is the blackbody emission at skin temperature $T_0$.
Most natural surfaces behave fairly similarly to black bodies with emissivity ~0.9. However, snow and water covered surfaces tend to have higher emissivity (>0.95) while certain types of rock and manmade surfaces are known to have lower emissivities.
The total upwelling longwave includes both surface emission and reflection: $L_{\uparrow} = \epsilon \sigma T_0^4 + (1-\epsilon) L_{\downarrow}$
Implementations
Terrarium currently provides three simple formulations of albedo and emissivity. The simplest scheme is ConstantAlbedo which treats both albedo and emissivity as spatially and temporally constants parameters:
Terrarium.ConstantAlbedo — Type
struct ConstantAlbedo{NF} <: Terrarium.AbstractAlbedo{NF}Properties:
albedo::Any: Surface albedo, i.e. ratio of outgoing to incoming shortwave radiationemissivity::Any: Surface emissivity, i.e. fraction of thermal radiation emitted from the surface
Alternative, they can be prescribed as user-specified input fields via PrescribedAlbedo:
Terrarium.PrescribedAlbedo — Type
struct PrescribedAlbedo{NF} <: Terrarium.AbstractAlbedo{NF}Properties:
In the case where they are prescribed, they are permitted to vary in time and/or space at the discretion of the user and/or the corresponding InputSource. However, their values will not be derived from the model state and thus could lead to inconsistencies.
Finally, DiagnosticAlbedo, the default scheme of SurfaceEnergyBalance, diagnoses albedo and emissivity from the model state as an area-weighted blend of bare ground, vegetation, and snow: $\alpha = (1 - f_{\text{snow}})(1 - f_{\text{veg}}) \alpha_{\text{bg}} + (1 - f_{\text{snow}}) f_{\text{veg}} \alpha_{\text{veg}} + f_{\text{snow}} \alpha_{\text{snow}}$ and likewise for the emissivity $\epsilon$. Here $f_{\text{veg}}$ is the vegetated area fraction given by the vegetation component, which is either diagnosed from the leaf area index relative to its maximum, $\min(\text{LAI} / \text{LAI}_{\max}, 1)$, or taken from the prognostic vegetation coverage fraction when vegetation dynamics are enabled. $f_{\text{snow}}$ is the snow-covered area fraction of the snow component; snow-covered bare and vegetated areas are assumed to share the same snow albedo and emissivity. Without a vegetation or snow component, the corresponding fraction is zero.
Terrarium.DiagnosticAlbedo — Type
struct DiagnosticAlbedo{NF} <: Terrarium.AbstractAlbedo{NF}Diagnosed surface albedo and emissivity. The values are computed in compute_auxiliary! as an area-weighted blend of bare ground, vegetation, and snow, α = (1 − f_snow)·(1 − f_veg)·α_bg + (1 − f_snow)·f_veg·α_veg + f_snow·α_snow (and likewise for emissivity), where f_veg is the vegetated area fraction of the optional vegetation component and f_snow the snow-covered area fraction of the optional snow component passed to compute_auxiliary!. Snow-covered bare and vegetated areas are assumed to share the same snow albedo and emissivity. Without a vegetation or snow component (nothing), the corresponding fraction is zero.
Properties:
background_albedo::Any: Snow- and vegetation-free (background) albedo of bare groundbackground_emissivity::Any: Snow- and vegetation-free (background) emissivity of bare ground
Methods
Terrarium.albedo — Function
albedo(i, j, grid, fields, ::AbstractAlbedo)Return the current albedo at the given indices.
albedo(i, j, grid, fields, albedo::ConstantAlbedo)Return the surface albedo at grid point i, j.
Terrarium.emissivity — Function
emissivity(i, j, grid, fields, ::AbstractAlbedo)Return the current emissivity at the given indices.
emissivity(i, j, grid, fields, albedo::ConstantAlbedo)Return the surface emissivity at grid point i, j.
Kernel functions
Terrarium.compute_albedo! — Function
compute_albedo!(
out,
i,
j,
grid,
fields,
albedo::DiagnosticAlbedo,
vegetation::Union{Nothing, Terrarium.AbstractVegetation},
snow::Union{Nothing, Terrarium.AbstractSnow},
args...
)