Boundary Layer Conductance
Bigleaf.Gb_Choudhury
Bigleaf.Gb_Su
Bigleaf.Gb_Thom
Bigleaf.Gb_constant_kB1
Bigleaf.add_Gb!
Bigleaf.compute_Gb!
Bigleaf.compute_Gb_quantities
Bigleaf.compute_Gb!
— Functioncompute_Gb!(df::AbstractDataFrame, approach; kwargs...)
Estimate boundary layer conductance.
Arguments
df
: DataFrame with required variables (depend on approach)approach
: one ofThom1972()
: seeGb_Thom
Choudhury1988()
: seeGb_Choudhury
Su2001()
: seeGb_Su
ConstantKB1()
: seeGb_constant_kB1
The different approaches require different variables to be present in df
and different keyword arguments.
Value
updated DataFrame df
with the following columns:
Gb_h
: Boundary layer conductance for heat transfer (m s-1)
To subsequently derived quantities see
compute_Gb_quantities
for Resistance, kB^(-1) constant, and CO2 conductanceadd_Gb!
for conductances of other species given their Schmidt numbers.
See also
Gb_Thom
, Gb_Choudhury
, Gb_Su
, Gb_constant_kB1
, aerodynamic_conductance!
using DataFrames
df = DataFrame(wind=[3,4,5], ustar=[0.5,0.6,0.65])
compute_Gb!(df, Thom1972())
≈(df.Gb_h[1], 0.102, rtol=1e-2)
Bigleaf.add_Gb!
— Functionadd_Gb(Gb_h::Union{Missing,Number}, Sc::Vararg{Pair,N}; constants)
add_Gb!(df::AbstractDataFrame, Sc::Vararg{Pair,N}; Gb_h = df.Gb_h, kwargs...)
compute boundary layer conductance for additional quantities for given Schmidt-numbers
Arguments
Gb_h
: Boundary layer conductance for heat transfer (m s-1)Sc
: severalPair{Symbol,Number}
Output name and Schmidt number of additional conductances to be calculateddf
: DataFrame to add output columns
optional
constants=
BigleafConstants
()
: Dictionary with entriesPr
- Prandtl number
Details
Boundary layer conductance for other quantities x is calculated based on boundary layer for heat transfer as (Hicks et al. 1987):
$Gb_x = Gb_h / (Sc_x / Pr)^{0.67}$
where Sc_x
is the Schmidt number of quantity x, and Pr is the Prandtl number (0.71).
Value
a NameTuple or df
with keys Gb_x
where x
are the keys in Sc
and corresponding boundary layer conductances (m s-1).
Examples
using DataFrames
df = DataFrame(Gb_h=[0.02, missing, 0.055])
add_Gb!(df, :O2 => 0.84, :CH4 => 0.99)
propertynames(df)[2:3] == [:Gb_O2, :Gb_CH4]
Bigleaf.Gb_Thom
— FunctionGb_Thom(ustar; constants)
compute_Gb!(df, ::Thom1972)
Boundary Layer Conductance according to Thom 1972, an empirical formulation for the for heat transfer based on a simple ustar (friction velocity) dependency.
Arguments
ustar
: Friction velocity (m s-1)df
: DataFrame with above variablesconstants=
BigleafConstants
()
Details
The empirical equation for Rb suggested by Thom 1972 is:
$Rb = 6.2 {u^*}^{-0.67}$
Gb (=1/Rb) for water vapor and heat are assumed to be equal in this package.
Value
see compute_Gb!
References
- Thom, A., 1972: Momentum, mass and heat exchange of vegetation. Quarterly Journal of the Royal Meteorological Society 98, 124-134.
- Hicks, BB., Baldocchi, DD., Meyers, TP., Hosker, JR., Matt, D_R., 1987: A preliminary multiple resistance routine for deriving dry deposition velocities from measured quantities. Water, Air, and Soil Pollution 36, 311-330.
using DataFrames
df = DataFrame(ustar = SA[0.1,missing,0.3])
compute_Gb!(df, Thom1972())
propertynames(df) == [:ustar, :Gb_h]
Bigleaf.Gb_Choudhury
— FunctionGb_Choudhury(; leafwidth, LAI, wind_zh, constants)
Gb_Choudhury!(df; leafwidth, LAI, wind_zh, constants)
Estimate the canopy boundary layer conductance for heat transfer according to Choudhury & Monteith 1988.
Arguments
df
: DataFrame whereGb_h
is to be added/updatedleafwidth
: Leaf width (m)LAI
: One-sided leaf area indexwind_zh
: Wind speed at canopy heihgt (m s-1), seewind_profile
constants=
BigleafConstants
()
Value
see compute_Gb!
Details
Boundary layer conductance according to Choudhury & Monteith 1988 is given by:
$Gb_h = LAI \left( 2a/\alpha \sqrt{u(z_h)/w} (1-e^{-\alpha/2})\right)$
where $\alpha$ is modeled as an empirical relation to LAI (McNaughton & van den Hurk 1995):
$\alpha = 4.39 - 3.97 e^{-0.258 \, LAI}$
$w$ is leafwidth and $u(zh)$ is the wind speed at the canopy surface.
It can be approximated from measured wind speed at sensor height zr and a wind extinction coefficient $\alpha$: $u(z_h) = u(z_r) / e^{\alpha(z_r/z_h -1)}$. However, here (if not explicitly given) it is estimated by wind_profile
References
- Choudhury, B. J., Monteith J_L., 1988: A four-layer model for the heat budget of homogeneous land surfaces. Q. J. R. Meteorol. Soc. 114, 373-398.
- McNaughton, K. G., Van den Hurk, BJJ_M., 1995: A 'Lagrangian' revision of the resistors in the two-layer model for calculating the energy budget of a plant canopy. Boundary-Layer Meteorology 74, 261-288.
- Hicks, BB., Baldocchi, DD., Meyers, TP., Hosker, JR., Matt, D_R., 1987: A preliminary multiple resistance routine for deriving dry deposition velocities from measured quantities. Water, Air, and Soil Pollution 36, 311-330.
Bigleaf.Gb_Su
— FunctionGb_Su(Tair,pressure,ustar; wind_zh, Dl, fc, N=2, Cd=0.2, hs=0.01, constants)
Gb_Su!(df; wind_zh, Dl, fc=nothing, N=2, Cd=0.2, hs=0.01, LAI, constants)
Estimate Boundary Layer Conductance to heat transfer using the physically based formulation according to Su et al. 2001.
Arguments
Tair
: Air temperature (degC)pressure
: Atmospheric pressure (kPa)ustar
: Friction velocity (m s-1)df
: DataFrame or matrix containing the above variablesDl
: Leaf characteristic dimension (m)fc
: Fractional vegetation cover (0-1), if not provided, calculated from LAILAI
: One-sided leaf area index (-) - alternative tofc
.N
: Number of leaf sides participating in heat exchange (defaults to 2)Cd
: Foliage drag coefficient (-)hs
: Roughness height of the soil (m)constants=
BigleafConstants
()
Value
see compute_Gb!
Details
The formulation is based on the kB^(-1) model developed by Massman 1999. Su et al. 2001 derived the following approximation:
$k_{B1} = (k C_d f_c^2) / (4C_t u^*/u(z_h)) + k_{Bs-1}(1 - f_c)^2$
If $f_c$ (fractional vegetation cover) is missing, it is estimated from LAI: $f_c = 1 - e^{-LAI/2}$
The wind speed at the top of the canopy is calculated using function wind_profile
.
Ct is the heat transfer coefficient of the leaf (Massman 1999):
$C_t = P_r^{-2/3} R_{eh}^{-1/2} N$
where $P_r$ is the Prandtl number (set to 0.71), and $R_{eh}$ is the Reynolds number for leaves:
$R_{eh} = D_l \, wind(z_h) / v$
k{Bs-1}, the k{B-1} value for bare soil surface, is calculated according to Su et al. 2001:
$k_{Bs-1} = 2.46(Re)^{0.25} - ln(7.4)$
References
- Su, Z., Schmugge, T., Kustas, W. & Massman, W., 2001: An evaluation of two models for estimation of the roughness height for heat transfer between the land surface and the atmosphere. Journal of Applied Meteorology 40, 1933-1951.
- Massman, W., 1999: A model study of kB H- 1 for vegetated surfaces using localized near-field' Lagrangian theory. Journal of Hydrology 223, 27-43.
- Hicks, BB., Baldocchi, DD., Meyers, TP., Hosker, JR., Matt, D_R., 1987: A preliminary multiple resistance routine for deriving dry deposition velocities from measured quantities. Water, Air, and Soil Pollution 36, 311-330.
using DataFrames
df = DataFrame(
Tair=25.0,pressure=100.0,wind=[3.0,4,5],ustar=[0.5,0.6,0.65],H=[200.0,230,250])
zh = 25; zr = 40
z0m = roughness_parameters(
Roughness_wind_profile(), df.ustar, df.wind, df.Tair, df.pressure, df.H; zh, zr).z0m
wind_zh = wind_profile(zh, df, 0.7*zh, z0m)
compute_Gb!(df,Su2001(); wind_zh, Dl=0.01, LAI=5)
# the same meteorological conditions, but larger leaves
compute_Gb!(df,Su2001(); wind_zh, Dl=0.1,LAI=5)
# same conditions, large leaves, and sparse canopy cover (LAI = 1.5)
compute_Gb!(df,Su2001(); wind_zh, Dl=0.1,LAI=1.5)
≈(df.Gb_h[1], 0.0638, rtol=1e-3)
Bigleaf.Gb_constant_kB1
— FunctionGb_constant_kB1(ustar, kB_h; constants)
compute_Gb!(df, ::ConstantKB1})
Boundary Layer Conductance using constant kB^(-1) value for heat transfer.
Arguments
ustar
: Friction velocity (m s-1)df
: DataFrame with above variableskB_h
: kB^(-1) value for heat transferconstants=
BigleafConstants
()
Details
Rbh computed by ``kBh/(k * ustar)``, where k is the von Karman constant.
Bigleaf.compute_Gb_quantities
— Functioncompute_Gb_quantities(Gb_h)
compute_Gb_quantities!(df:::AbstractDataFrame)
Based on boundary layer conductance for heat, compute derived quantities.
Arguments
Gb_h
: Boundary layer conductance for heat transfer (m s-1)df
: DataFrame with above columnsconstants=
BigleafConstants
()
: entriesSc_CO2
andPr
Value
NamedTuple with entries
Gb_h
: Boundary layer conductance for heat transfer (m s-1)Rb_h
: Boundary layer resistance for heat transfer (s m-1)kB_h
: kB^(-1) parameter for heat transferGb_CO2
: Boundary layer conductance for CO2 (m s-1).