Nothing
## ----setup, include=FALSE-----------------------------------------------------
knitr::opts_chunk$set(echo = TRUE)
## -----------------------------------------------------------------------------
# Load TrenchR package
library(TrenchR)
## -----------------------------------------------------------------------------
Qnet_Gates(Qabs = 500,
Qemit = 10,
Qconv = 100,
Qcond = 100,
Qmet = 10,
Qevap = 5)
## ---- fig.height = 4, fig.width = 6-------------------------------------------
plot(x = seq(100, 1000, 100),
y = Qradiation_absorbed(a = 0.9,
A = 1,
psa_dir = 0.4,
psa_dif = 0.4,
psa_ref = 0.4,
S_dir = seq(100, 1000, 100),
S_dif = 200,
rho = 0.5),
type = "l",
xlab = expression("direct solar radiation" ~ (W/m^{2})),
ylab = "solar radiation absorbed (W)")
points(x = seq(100, 1000, 100),
y = Qradiation_absorbed(a = 0.9,
A = 1,
psa_dir = 0.2,
psa_dif = 0.4,
psa_ref = 0.4,
S_dir = seq(100, 1000, 100),
S_dif = 200,
rho = 0.5),
type = "l",
lty = "dashed")
points(x = seq(100, 1000, 100),
y = Qradiation_absorbed(a = 0.45,
A = 1,
psa_dir = 0.4,
psa_dif = 0.4,
psa_ref = 0.4,
S_dir = seq(100, 1000, 100),
S_dif = 200,
rho = 0.5),
type = "l",
lty = "dotted")
points(x = seq(100, 1000, 100),
y = Qradiation_absorbed(a = 0.9,
A = 1,
psa_dir = 0.4,
psa_dif = 0.4,
psa_ref = 0.4,
S_dir = seq(100, 1000, 100),
S_dif = 200,
rho = 0.2),
type = "l",
lty = "dotdash")
legend(x = "topleft",
title = "parameters",
legend = c("a = 0.9, psa_dir = 0.4, rho = 0.5", "a = 0.9, sa_dir = 0.2, rho = 0.5", "a = 0.45, psa_dir = 0.4, rho = 0.5", "a = 0.9, psa_dir = 0.4, rho = 0.2"),
lty = c("solid", "dashed", "dotted", "dotdash"))
## -----------------------------------------------------------------------------
T_sky(T_a=293, formula="Swinbank")
## ---- fig.height = 4, fig.width = 6-------------------------------------------
plot(x = 293:313,
y = Qemitted_thermal_radiation(epsilon = 0.96,
A = 1,
psa_dir = 0.4,
psa_ref = 0.5,
T_b = 293:313,
T_g = 293,
T_a = 298,
enclosed = FALSE),
type = "l",
xlab = "body surface temperature, Tb (K)",
ylab = "emitted thermal radiation, Qemit (W)")
points(x = 293:313,
y = Qemitted_thermal_radiation(epsilon = 0.96,
A = 1,
psa_dir = 0.2,
psa_ref = 0.5,
T_b = 293:313,
T_g = 293,
T_a = 298,
enclosed = TRUE),
type = "l",
lty = "dashed")
points(x = 293:313,
y = Qemitted_thermal_radiation(epsilon = 0.96,
A = 1,
psa_dir = 0.4,
psa_ref = 0.5,
T_b = 293:313,
T_g = 283,
T_a = 298,
enclosed = FALSE),
type = "l",
lty = "dotted")
points(x = 293:313,
y = Qemitted_thermal_radiation(epsilon= 0.96,
A = 1,
psa_dir = 0.2,
psa_ref = 0.5,
T_b = 293:313,
T_g = 283,
T_a = 298,
enclosed = FALSE),
type = "l",
lty = "dotdash")
legend(x = "topleft",
title = "parameters",
legend = c("psa_dir= 0.4, T_g = 293", "psa_dir= 0.2, T_g = 293", "psa_dir= 0.4, T_g = 283", "psa_dir= 0.2, T_g = 283"),
lty = c("solid", "dashed", "dotted", "dotdash"))
## ---- fig.height = 4, fig.width = 6-------------------------------------------
plot(x = 293:313,
y = Qconvection(T_a = 303,
T_b = 293:313,
H = 5,
A = 0.0025,
proportion = 0.6),
type = "l",
xlab = "ground temperature (K)",
ylab = "Q convection (W)")
points(x = 293:313,
y = Qconvection(T_a = 303,
T_b = 293:313,
H = 15,
A = 0.0025,
proportion = 0.6),
type = "l",
lty = "dashed")
points(x = 293:313,
y = Qconvection(T_a = 303,
T_b = 293:313,
H = 5,
A = 0.0025,
proportion = 0.3),
type = "l",
lty = "dotted")
points(x = 293:313,
y = Qconvection(T_a = 303,
T_b = 293:313,
H = 15,
A = 0.0025,
proportion = 0.3),
type = "l",
lty = "dotdash")
legend(x = "topleft",
title = "parameters",
legend = c("H = 5, proportion = 0.6", "H = 15, proportion = 0.6", "H = 5, proportion = 0.3", "H = 15, proportion = 0.3"),
lty = c("solid", "dashed", "dotted", "dotdash"))
## ---- fig.height = 4, fig.width = 6-------------------------------------------
plot(x = 1:30,
y = Nusselt_number(H_L = 1:30,
D = 0.01,
K = 0.5),
type = "l",
xlab = expression("heat transfer coefficient" ~ (W ~ m^{-2} ~ K^{-1})),
ylab = "Nusselt number")
points(x = 1:30,
y = Nusselt_number(H_L = 1:30,
D = 0.01,
K = 1.5),
type = "l",
lty = "dashed")
points(x = 1:30,
y = Nusselt_number(H_L = 1:30,
D = 0.05,
K = 0.5),
type = "l",
lty = "dotted")
points(x = 1:30,
y = Nusselt_number(H_L = 1:30,
D = 0.05,
K = 1.5),
type = "l",
lty = "dotdash")
legend(x = "topleft",
title = "parameters",
legend = c("D = 0.01, K = 0.5", "D = 0.01, K = 1.5", "D = 0.05, K = 0.5", "D = 0.05, K = 1.5"),
lty = c("solid", "dashed", "dotted", "dotdash"))
## ---- fig.height = 4, fig.width = 6-------------------------------------------
plot(x = 1:30,
y = Prandtl_number(c_p = 1:30,
mu = 0.00001,
K = 0.5),
type = "l",
xlab = expression("specific heat at constant pressure" ~ (J ~ mol^{-1} ~ K^{-1})),
ylab = "Prandtl number")
points(x = 1:30,
y = Prandtl_number(c_p = 1:30,
mu = 0.00002,
K = 0.5),
type = "l",
lty = "dashed")
points(x = 1:30,
y = Prandtl_number(c_p = 1:30,
mu = 0.00001,
K = 1.5),
type = "l",
lty = "dotted")
points(x = 1:30,
y = Prandtl_number(c_p = 1:30,
mu = 0.00002,
K = 1.5),
type = "l",
lty = "dotdash")
legend(x = "topleft",
title = "parameters",
legend = c("mu = 0.00001, K = 0.5", "mu = 0.00002, K = 0.5", "mu = 0.00001, K = 1.5", "mu = 0.00002, K = 1.5"),
lty = c("solid", "dashed", "dotted", "dotdash"))
## ---- fig.height = 4, fig.width = 6-------------------------------------------
plot(x = seq(0, 5, 0.2),
y = Reynolds_number(u = seq(0, 5, 0.2),
D = 0.001,
nu = 1),
type = "l",
xlab = "wind speed (m/s)",
ylab = "Reynolds number")
points(x = seq(0, 5, 0.2),
y = Reynolds_number(u = seq(0, 5, 0.2),
D = 0.001,
nu = 1.5),
type = "l",
lty = "dashed")
points(x = seq(0, 5, 0.2),
y = Reynolds_number(u = seq(0, 5, 0.2),
D = 0.002,
nu = 1),
type = "l",
lty = "dotted")
points(x = seq(0, 5, 0.2),
y = Reynolds_number(u = seq(0, 5, 0.2),
D = 0.002,
nu = 1.5),
type = "l",
lty = "dotdash")
legend(x = "topleft",
title = "parameters",
legend = c("D = 0.001, nu = 1", "D = 0.001, nu = 1.5", "D = 0.002, nu = 1", "D = 0.002, nu = 1.5"),
lty = c("solid", "dashed", "dotted", "dotdash"))
## ---- fig.height = 4, fig.width = 6-------------------------------------------
plot(x = seq(0, 0.01, 0.001),
y = Grashof_number(T_a = 30,
T_g = 35,
D = seq(0, 0.01, 0.001),
nu = 1.0),
type = "l",
xlab = "characteristic dimension (m)",
ylab = "Grashof number")
points(x = seq(0, 0.01, 0.001),
y = Grashof_number_Gates(T_a = 30,
T_g = 35,
beta = 0.00367,
D = seq(0, 0.01, 0.001),
nu = 1.0),
type = "l",
col = "red")
points(x = seq(0, 0.01, 0.001),
y = Grashof_number(T_a = 30,
T_g = 35,
D = seq(0, 0.01, 0.001),
nu = 1.4),
type = "l",
lty = "dashed")
points(x = seq(0, 0.01, 0.001),
y = Grashof_number_Gates(T_a = 30,
T_g = 35,
beta = 0.00367,
D = seq(0, 0.01, 0.001),
nu = 1.4),
type = "l",
col = "red",
lty = "dashed")
legend(x = "topleft",
title = "parameters",
legend = c("Grashof_number, nu = 1", "Grashof_number_Gates, nu = 1", "Grashof_number, nu = 1.4", "Grashof_number_Gates, nu = 1.4"),
lty = c("solid", "dashed", "dotted", "dotdash"))
## ---- fig.height = 4, fig.width = 6-------------------------------------------
plot(x = 1:10,
y = Nusselt_from_Reynolds(Re = 1:10,
taxon = "sphere"),
type = "l",
xlab = "Re",
ylab = "Nu",
ylim = c(0,4))
points(x = 1:10,
y = Nusselt_from_Reynolds(Re = 1:10,
taxon = "cylinder"),
type = "l",
lty = "dashed")
points(x = 1:10,
y = Nusselt_from_Reynolds(Re = 1:10,
taxon = "frog"),
type = "l",
lty = "dotted")
points(x = 1:10,
y = Nusselt_from_Reynolds(Re = 1:10,
taxon = "lizard_traverse_to_air_flow"),
type = "l",
lty = "dotdash")
points(x = 1:10,
y = Nusselt_from_Reynolds(Re = 1:10,
taxon = "lizard_parallel_to_air_flow"),
type = "l",
lty = "dotdash",
col = "red")
points(x = 1:10,
y = Nusselt_from_Reynolds(Re = 1:10,
taxon = "lizard_surface"),
type = "l",
lty = "dotdash",
col = "orange")
points(x = 1:10,
y = Nusselt_from_Reynolds(Re = 1:10,
taxon = "lizard_elevated"),
type = "l",
lty = "dotdash",
col = "green")
points(x = 1:10,
y = Nusselt_from_Reynolds(Re = 1:10,
taxon = "flyinginsect"),
type = "l",
lty = "longdash")
points(x = 1:10,
y = Nusselt_from_Reynolds(Re = 1:10,
taxon = "spider"),
type = "l",
lty = "twodash")
legend(x = "topright",
title = "taxa",
legend = c("sphere", "cylinder", "frog", "lizard_traverse_to_air_flow", "lizard_parallel_to_air_flow", "lizard_surface", "lizard_elevated", "flyinginsect", "spider"),
lty = c("solid", "dashed", "dotted", "dotdash", "dotdash", "dotdash", "dotdash", "longdash", "twodash"),
col = c("black", "black", "black", "black", "red", "orange", "green", "black", "black" ))
## -----------------------------------------------------------------------------
Nusselt_from_Grashof(Gr = 5)
## -----------------------------------------------------------------------------
free_or_forced_convection(Gr = 100,
Re = 5)
## ---- fig.height = 4, fig.width = 6-------------------------------------------
oldpar <- par()
par(mar = c(5, 5, 3, 2))
plot(x = seq(0, 3, 0.25),
y = heat_transfer_coefficient(u = seq(0, 3, 0.25),
D = 0.05,
K = 25.7 * 10^(-3),
nu = 15.3 * 10^(-6),
taxon = "sphere"),
type = "l",
xlab = "Air velocity (m/s)",
ylab = expression("heat transfer coefficient," ~ H[L] ~ (W ~ m^{-2} ~ K^{-1})))
points(x = seq(0, 3, 0.25),
y = heat_transfer_coefficient(u = seq(0, 3, 0.25),
D = 0.05,
K = 25.7 * 10^(-3),
nu = 15.3 * 10^(-6),
taxon = "cylinder"),
type = "l",
lty = "dashed")
points(x = seq(0, 3, 0.25),
y = heat_transfer_coefficient(u = seq(0, 3, 0.25),
D = 0.05,
K = 25.7 * 10^(-3),
nu = 15.3 * 10^(-6),
taxon = "frog"),
type = "l",
lty = "dotted")
points(x = seq(0, 3, 0.25),
y = heat_transfer_coefficient(u = seq(0, 3, 0.25),
D = 0.05,
K = 25.7 * 10^(-3),
nu = 15.3 * 10^(-6),
taxon = "lizard_surface"),
type = "l",
lty = "dotdash")
points(x = seq(0, 3, 0.25),
y = heat_transfer_coefficient(u = seq(0, 3, 0.25),
D = 0.05,
K = 25.7 * 10^(-3),
nu = 15.3 * 10^(-6),
taxon = "lizard_elevated"),
type = "l",
lty = "dotdash")
points(x = seq(0, 3, 0.25),
y = heat_transfer_coefficient(u = seq(0, 3, 0.25),
D = 0.05,
K = 25.7 * 10^(-3),
nu = 15.3 * 10^(-6),
taxon = "flyinginsect"),
type = "l",
lty = "longdash")
points(x = seq(0, 3, 0.25),
y = heat_transfer_coefficient(u = seq(0, 3, 0.25),
D = 0.05,
K = 25.7 * 10^(-3),
nu = 15.3 * 10^(-6),
taxon = "spider"),
type = "l",
lty = "twodash")
legend(x = "bottomright",
title = "taxa",
legend = c("sphere", "cylinder", "frog", "lizard_surface", "lizard_elevated", "flyinginsect", "spider"),
lty = c("solid", "dashed", "dotted", "dotdash", "dotdash", "dotdash", "dotdash", "longdash", "twodash"))
## ---- fig.height = 3, fig.width = 6-------------------------------------------
par(mar = c(5, 5, 3, 2))
plot(x = seq(0, 3, 0.25),
y = heat_transfer_coefficient_approximation(u = seq(0, 3, 0.25),
D = 0.05,
K = 25.7 * 10^(-3),
nu = 15.3 * 10^(-6),
taxon = "sphere"),
type = "l",
xlab = "Air velocity (m/s)",
ylab = expression("heat transfer coefficient," ~ H[L] ~ (W ~ m^{-2} ~ K^{-1})))
points(x = seq(0, 3, 0.25),
y = heat_transfer_coefficient_approximation(u = seq(0, 3, 0.25),
D = 0.05,
K = 25.7 * 10^(-3),
nu = 15.3 * 10^(-6),
taxon = "frog"),
type = "l",
lty = "dashed")
points(x = seq(0, 3, 0.25),
y = heat_transfer_coefficient_approximation(u = seq(0, 3, 0.25),
D = 0.05,
K = 25.7 * 10^(-3),
nu = 15.3 * 10^(-6),
taxon = "lizard"),
type = "l",
lty = "dotted")
points(x = seq(0, 3, 0.25),
y = heat_transfer_coefficient_approximation(u = seq(0, 3, 0.25),
D = 0.05,
K = 25.7 * 10^(-3),
nu = 15.3 * 10^(-6),
taxon = "flyinginsect"),
type = "l",
lty = "dotdash")
points(x = seq(0, 3, 0.25),
y = heat_transfer_coefficient_approximation(u = seq(0, 3, 0.25),
D = 0.05,
K = 25.7 * 10^(-3),
nu = 15.3 * 10^(-6),
taxon = "spider"),
type = "l",
lty = "longdash")
legend(x = "bottomright",
title = "taxa",
legend = c("sphere", "frog", "lizard", "flyinginsect", "spider"),
lty = c("solid", "dashed", "dotted", "dotdash", "longdash"))
## ---- fig.height = 3, fig.width = 5-------------------------------------------
plot(x = seq(0, 3, 0.25),
y = heat_transfer_coefficient_simple(u = seq(0, 3, 0.25),
D = 0.05,
type = "Spotila"),
type = "l",
xlab = "Air velocity (m/s)",
ylab = expression("heat transfer coefficient," ~ H[L] ~ (W ~ m^{-2} ~ K^{-1})))
points(x = seq(0, 3, 0.25),
y = heat_transfer_coefficient_simple(u = seq(0, 3, 0.25),
D = 0.03,
type = "Spotila"),
type = "l",
lty = "dashed")
points(x = seq(0, 3, 0.25),
y = heat_transfer_coefficient_simple(u = seq(0, 3, 0.25),
D = 0.07,
type = "Spotila"),
type = "l",
lty = "dotted")
legend(x = "bottomright",
title = "characteristic dimension (m)",
legend = c(0.03, 0.05, 0.07),
lty = c("dashed", "solid", "dotted"))
## ---- fig.height = 4, fig.width = 6-------------------------------------------
plot(x = 293:313,
y = Qconduction_animal(T_g = 293:313,
T_b = 303,
d = 0.025,
K = 0.3,
A = 10^-3,
proportion = 0.2),
type = "l",
xlab = "ground temperature (Tb, K)", ylab = "Q conductance (W)")
points(x = 293:313,
y = Qconduction_animal(T_g = 293:313,
T_b = 303,
d = 0.025,
K = 0.5,
A = 10^-3,
proportion = 0.2),
type = "l",
lty = "dashed")
points(x = 293:313,
y = Qconduction_animal(T_g = 293:313,
T_b = 303,
d = 0.025,
K = 0.3,
A = 10^-3,
proportion = 0.4),
type = "l",
lty = "dotted")
points(x = 293:313,
y = Qconduction_animal(T_g = 293:313,
T_b = 303,
d = 0.025,
K = 0.5,
A = 10^-3,
proportion = 0.4),
type = "l",
lty = "dotdash")
legend(x = "topright",
title = "parameters",
legend = c("K = 0.3, proportion = 0.2", "K = 0.5, proportion = 0.2", "K = 0.3, proportion = 0.4", "K = 0.5, proportion = 0.4"),
lty = c("solid", "dashed", "dotted", "dotdash"))
## ---- fig.height = 4, fig.width = 6-------------------------------------------
plot(x = 293:313,
y = Qconduction_substrate(T_g = 293:313,
T_b = 303,
D = 0.01,
K_g = 0.3,
A = 10^-2,
proportion = 0.2),
type = "l",
xlab = "ground temperature (Tb, K)",
ylab = "Q conductance (W)")
points(x = 293:313,
y = Qconduction_substrate(T_g = 293:313,
T_b = 303,
D = 0.01,
K_g = 0.5,
A = 10^-2,
proportion = 0.2),
type = "l",
lty = "dashed")
points(x = 293:313,
y = Qconduction_substrate(T_g = 293:313,
T_b = 303,
D = 0.01,
K_g = 0.3,
A = 10^-2,
proportion = 0.4),
type = "l",
lty = "dotted")
points(x = 293:313,
y = Qconduction_substrate(T_g = 293:313,
T_b = 303,
D = 0.01,
K_g = 0.5,
A = 10^-2,
proportion = 0.4),
type = "l",
lty = "dotdash")
legend(x = "topright",
title = "parameters",
legend = c("K = 0.3, proportion = 0.2", "K = 0.5, proportion = 0.2", "K = 0.3, proportion = 0.4", "K = 0.5, proportion = 0.4"),
lty = c("solid", "dashed", "dotted", "dotdash"))
## ---- fig.height = 4, fig.width = 4-------------------------------------------
plot(x = 1:100,
y = Qmetabolism_from_mass(m = 1:100,
taxon = "bird"),
type = "l",
xlab = "mass (g)",
ylab = "metabolism (W)",
log = "xy",
ylim = c(0.1, 2))
points(x = 1:100,
y = Qmetabolism_from_mass(m = 1:100,
taxon = "mammal"),
type = "l",
lty = "dashed")
points(x = 1:100,
y = Qmetabolism_from_mass(m = 1:100,
taxon = "reptile"),
type = "l",
lty = "dotted")
legend(x = "topleft",
title = "taxa",
legend = c("bird", "mammal", "reptile"),
lty = c("solid", "dashed", "dotted"))
## ---- fig.height = 4, fig.width = 4-------------------------------------------
plot(x = 1:100,
y = Qmetabolism_from_mass_temp(m = 1:100,
T_b = 30,
taxon = "bird"),
type = "l",
xlab = "mass (g)",
ylab = "metabolism (W)",
ylim = c(0, 0.1))
points(x = 1:100,
y = Qmetabolism_from_mass_temp(m = 1:100,
T_b = 30,
taxon = "reptile"),
type = "l",
lty = "dotted")
points(x = 1:100,
y = Qmetabolism_from_mass_temp(m = 1:100,
T_b = 30,
taxon = "amphibian"),
type = "l",
lty = "dotdash")
points(x = 1:100,
y = Qmetabolism_from_mass_temp(m = 1:100,
T_b = 30,
taxon = "invertebrate"),
type = "l",
lty = "twodash")
legend(x = "top",
title = "taxa",
legend = c("bird,mammal", "reptile", "amphibian", "invertebrate"),
lty = c("solid", "dotted", "dotdash", "twodash"))
plot(x = 20:40,
y = Qmetabolism_from_mass_temp(m = 5,
T_b = 20:40,
taxon = "bird"),
type = "l",
xlab = "temperature (C)",
ylab = "metabolism (W)",
ylim = c(0,0.1))
points(x = 20:40,
y = Qmetabolism_from_mass_temp(m = 5,
T_b = 20:40,
taxon = "reptile"),
type = "l",
lty = "dotted")
points(x = 20:40,
y = Qmetabolism_from_mass_temp(m = 5,
T_b = 20:40,
taxon = "amphibian"),
type = "l",
lty = "dotdash")
points(x = 20:40,
y = Qmetabolism_from_mass_temp(m = 5,
T_b = 20:40,
taxon = "invertebrate"),
type = "l",
lty = "twodash")
legend(x = "topleft",
title = "taxa",
legend = c("bird,mammal", "reptile", "amphibian", "invertebrate"),
lty = c("solid", "dotted", "dotdash", "twodash"))
## ---- fig.height = 4, fig.width = 4-------------------------------------------
# kPa
vp <- saturation_vapor_pressure(293:313)
# convert to kg/m^3
e_s <- vp * 0.032
# kPa
vp <- saturation_vapor_pressure(293:313-10)
# convert to kg/m^3
e_a <- vp * 0.032
temps <- 293:313
Qevaps <- rep(NA,21)
Qevaps_wet <- rep(NA,21)
for (ind in 1:21) {
Qevaps[ind] <- Qevaporation(A = 0.1,
T_b = temps[ind],
taxon = "amphibian",
e_s = e_s[ind],
e_a = e_a[ind],
hp = 0.5,
H = 20,
r_i = 50)
Qevaps_wet[ind] <- Qevaporation(A = 0.1,
T_b = temps[ind],
taxon = "amphibian_wetskin",
e_s = e_s[ind],
e_a = e_a[ind],
hp = 0.5,
H = 20,
r_i = 50)
}
plot(x = temps,
y = Qevaps,
type = "l",
xlab = "body temperature (K)",
ylab = "evaporative heat loss (W)",
lty = "dashed",
ylim = c(0, 400))
points(x = temps,
y = Qevaps_wet,
type = "l",
lty = "dotted")
Qevap <- unlist(lapply(293:313,
FUN = Qevaporation,
A = 0.1,
taxon = "lizard"))
points(x = 293:313,
y = Qevap,
type = "l" )
legend(x = "right",
title = "taxa",
legend = c("amphibian", "amphibian_wetskin", "lizard"),
lty = c("dashed", "dotted", "solid"))
## ---- fig.height = 3, fig.width = 4-------------------------------------------
par(mar = c(5, 5, 3, 2))
plot(x = 10:30,
y = external_resistance_to_water_vapor_transfer(H = 10:30),
type = "l",
xlab = expression("heat transfer coefficient" ~ (W ~ m^{-2} ~ K^{-1})),
ylab = expression("external resistance, " ~ r[e] ~ (sm^{-1})))
## ---- fig.height = 3, fig.width = 4-------------------------------------------
plot(x = 10:30,
y = saturation_water_vapor_pressure(T_a = 10:30),
type = "l",
xlab = "temperature (°C)",
ylab = "saturation water vapor pressure (Pa)")
## ---- fig.height = 4, fig.width = 4-------------------------------------------
t.seq <- lapply(20:40,
FUN = Tb_Gates,
A = 0.1,
D = 0.025,
psa_dir = 0.6,
psa_ref = 0.4,
psa_air = 0.6,
psa_g = 0.0,
T_g = 30,
Qabs = 10,
epsilon = 0.95,
H_L = 10,
ef = 1.3,
K = 0.5)
plot(x = 20:40,
y = t.seq,
type = "l",
xlab = "ambient temperature, Ta (°C)",
ylab = "body temperature, Tb (°C)",
xlim = c(22, 42),
ylim = c(22, 42))
abline(a = 0,
b = 1,
col = "gray")
t.seq <- lapply(20:40,
FUN = Tb_Gates,
A = 0.1,
D = 0.025,
psa_dir = 0.6,
psa_ref = 0.4,
psa_air = 0.6,
psa_g = 0.0,
T_g = 30,
Qabs = 0,
epsilon = 0.95,
H_L = 10,
ef = 1.3,
K = 0.5)
points(x = 20:40,
y = t.seq,
type = "l",
lty = "dashed")
t.seq <- lapply(20:40,
FUN = Tb_Gates,
A = 0.1,
D = 0.025,
psa_dir = 0.6,
psa_ref = 0.4,
psa_air = 0.6,
psa_g = 0.0,
T_g = 30,
Qabs = 20,
epsilon = 0.95,
H_L = 10,
ef = 1.3,
K = 0.5)
points(x = 20:40,
y = t.seq,
type = "l",
lty = "dotted")
legend(x = "bottomright",
title = "Radiation, Qabs",
legend = c(0, 10, 20),
lty = c("dashed", "solid", "dotted"))
## ---- fig.height = 4, fig.width = 4-------------------------------------------
plot(x = 20:40,
y = Tb_CampbellNorman(T_a = 20:40,
T_g = 30,
S = 600,
a_s = 0.7,
a_l = 0.96,
epsilon = 0.96,
c_p = 29.3,
D = 0.17,
u = 1),
type = "l",
xlab = "air temperature (C)",
ylab = "body temperature (C)",
xlim = c(23,37),
ylim = c(17,67))
abline(a = 0,
b = 1,
col = "gray")
points(x = 20:40,
y = Tb_CampbellNorman(T_a = 20:40,
T_g = 30,
S = 200,
a_s = 0.7,
a_l = 0.96,
epsilon = 0.96,
c_p = 29.3,
D = 0.17,
u = 1),
type = "l",
lty = "dashed")
points(x = 20:40,
y = Tb_CampbellNorman(T_a = 20:40,
T_g = 30,
S = 400,
a_s = 0.7,
a_l = 0.96,
epsilon = 0.96,
c_p = 29.3,
D = 0.17,
u = 1),
type = "l",
lty = "dotted")
legend(x = "bottomright",
title = expression("Radiation, Sabs" ~ (W ~ m^{-2})),
legend = c(200,400,600),
lty = c("dashed", "dotted", "solid"))
## ---- fig.height = 4, fig.width = 6-------------------------------------------
# sun, surface
t.seq <- lapply(20:40,
FUN = Tb_lizard,
T_g = 30,
u = 0.1,
svl = 60,
m = 10,
psi = 34,
rho_s = 0.7,
elev = 500,
doy = 200,
sun = TRUE,
surface = TRUE,
a_s = 0.9,
a_l = 0.965,
epsilon_s = 0.965,
F_d = 0.8,
F_r = 0.5,
F_a = 0.5,
F_g = 0.5)
plot(x = 20:40,
y = t.seq,
type = "l",
xlab = "ambient temperature (°C)",
ylab = "body temperature (°C)",
xlim = c(20,40),
ylim = c(20,51))
abline(a = 0,
b = 1,
col = "gray")
# shade, surface
t.seq <- lapply(20:40,
FUN = Tb_lizard,
T_g = 30,
u = 0.1,
svl = 60,
m = 10,
psi = 34,
rho_s = 0.7,
elev = 500,
doy = 200,
sun = FALSE,
surface = TRUE,
a_s = 0.9,
a_l = 0.965,
epsilon_s = 0.965,
F_d = 0.8,
F_r = 0.5,
F_a = 0.5,
F_g = 0.5)
points(x = 20:40,
y = t.seq,
type = "l",
lty = "dashed")
# sun, above surface
t.seq <- lapply(20:40,
FUN = Tb_lizard,
T_g = 30,
u = 0.1,
svl = 60,
m = 10,
psi = 34,
rho_s = 0.7,
elev = 500,
doy = 200,
sun = TRUE,
surface = FALSE,
a_s = 0.9,
a_l = 0.965,
epsilon_s = 0.965,
F_d = 0.8,
F_r = 0.5,
F_a = 0.5,
F_g = 0.5)
points(x = 20:40,
y = t.seq,
type = "l",
lty = "dotted")
# shade, above surface
t.seq <- lapply(20:40,
FUN = Tb_lizard,
T_g = 30,
u = 0.1,
svl = 60,
m = 10,
psi = 34,
rho_s = 0.7,
elev = 500,
doy = 200,
sun = FALSE,
surface = FALSE,
a_s = 0.9,
a_l = 0.965,
epsilon_s = 0.965,
F_d = 0.8,
F_r = 0.5,
F_a = 0.5,
F_g = 0.5)
points(x = 20:40,
y = t.seq,
type = "l",
lty = "dotdash")
legend(x = "topright",
title = "parameters",
legend = c("sun, surface", "shade, surface", "sun, above surface", "shade, above surface"),
lty = c("solid", "dashed", "dotted", "dotdash"))
## ---- fig.height = 4, fig.width = 4-------------------------------------------
t.seq <- lapply(20:40,
FUN = Tb_lizard_Fei,
T_g = 27,
S = 800,
lw = 30,
shade = 0.5,
m = 10.5,
Acondfact = 0.05,
Agradfact = 0.4)
plot(x = 20:40,
y = t.seq,
type = "l",
xlab = "ambient temperature (°C)",
ylab = "body temperature (°C)")
abline(a = 0,
b = 1,
col = "gray")
t.seq <- lapply(20:40,
FUN = Tb_lizard_Fei,
T_g = 27,
S = 800,
lw = 30,
shade = 0.0,
m = 10.5,
Acondfact = 0.05,
Agradfact = 0.4)
points(x = 20:40,
y = t.seq,
type = "l",
lty = "dashed")
t.seq <- lapply(20:40,
FUN = Tb_lizard_Fei,
T_g = 27,
S = 800,
lw = 30,
shade = 1.0,
m = 10.5,
Acondfact = 0.05,
Agradfact = 0.4)
points(x = 20:40,
y = t.seq,
type = "l",
lty = "dotted")
legend(x = "bottomright",
title = "proportion shade",
legend = c(0.0,0.5,1.0),
lty = c("dashed", "solid", "dotted"))
## ---- fig.height = 4, fig.width = 4-------------------------------------------
t.seq <- lapply(20:40,
FUN = Tb_butterfly,
T_g = 25,
T_sh = 20,
u = 0.4,
S_sdir = 300,
S_sdif = 100,
z = 30,
D = 0.36,
delta = 1.46,
alpha = 0.6,
r_g = 0.3)
plot(x = 20:40,
y = t.seq,
type = "l",
xlab = "ambient temperature (°C)",
ylab = "body temperature (°C)")
abline(a = 0,
b = 1,
col = "gray")
t.seq <- lapply(20:40,
FUN = Tb_butterfly,
T_g = 25,
T_sh = 20,
u = 0.4,
S_sdir = 100,
S_sdif = 100,
z = 30,
D = 0.36,
delta = 1.46,
alpha = 0.6,
r_g = 0.3)
points(x = 20:40,
y = t.seq,
type = "l",
lty = "dashed")
t.seq <- lapply(20:40,
FUN = Tb_butterfly,
T_g = 25,
T_sh = 20,
u = 0.4,
S_sdir = 500,
S_sdif = 100,
z = 30,
D = 0.36,
delta = 1.46,
alpha = 0.6,
r_g = 0.3)
points(x = 20:40,
y = t.seq,
type = "l",
lty = "dotted")
legend(x = "bottomright",
title= expression("direct radiation," ~ S[sdif]),
legend = c(100,300,500),
lty = c("dashed", "solid", "dotted"))
## ---- fig.height = 4, fig.width = 4-------------------------------------------
t.seq <- lapply(20:40,
FUN = Tb_grasshopper,
T_g = 25,
u = 0.4,
S = 800,
K_t = 0.7,
psi = 30,
l = 0.05,
Acondfact = 0.00,
z = 0.001,
abs = 0.7,
r_g = 0.3)
plot(x = 20:40,
y = t.seq,
type = "l",
xlab = "ambient temperature (°C)",
ylab = "body temperature (°C)",
xlim = c(20,40),
ylim = c(20,40))
abline(a = 0,
b = 1,
col = "gray")
t.seq <- lapply(20:40,
FUN = Tb_grasshopper,
T_g = 25,
u = 0.4,
S = 400,
K_t = 0.7,
psi = 30,
l = 0.05,
Acondfact = 0.00,
z = 0.001,
abs = 0.7,
r_g = 0.3)
points(x = 20:40,
y = t.seq,
type = "l",
lty = "dashed")
t.seq <- lapply(20:40,
FUN = Tb_grasshopper,
T_g = 25,
u = 0.4,
S = 600,
K_t = 0.7,
psi = 30,
l = 0.05,
Acondfact = 0.00,
z = 0.001,
abs = 0.7,
r_g = 0.3)
points(x = 20:40,
y = t.seq,
type = "l",
lty = "dotted")
legend(x = "bottomright",
title = expression("direct radiation, S"),
legend = c(200, 400, 600),
lty = c("dashed", "dotted", "solid"))
## ---- fig.height = 4, fig.width = 4-------------------------------------------
t.seq <- lapply(20:40,
FUN = Tb_mussel,
l = 0.1,
h = 0.05,
T_g = 30,
S = 500,
k_d = 0.2,
u = 0.2,
psi = 30,
evap = TRUE,
cl = 0.5,
group = "solitary")
plot(x = 20:40,
y = t.seq,
type = "l",
xlab = "ambient temperature (°C)",
ylab = "body temperature (°C)",
ylim = c(25, 45))
t.seq <- lapply(20:40,
FUN = Tb_mussel,
l = 0.1,
h = 0.05,
T_g = 30,
S = 500,
k_d = 0.2,
u = 1,
psi = 30,
evap = TRUE,
cl = 0.5,
group = "solitary")
points(x = 20:40,
y = t.seq,
type = "l",
lty = "dashed")
t.seq <- lapply(20:40,
FUN = Tb_mussel,
l = 0.1,
h = 0.05,
T_g = 30,
S = 500,
k_d = 0.2,
u = 2,
psi = 30,
evap = TRUE,
cl = 0.5,
group = "solitary")
points(x = 20:40,
y = t.seq,
type = "l",
lty = "dotted")
abline(a = 0,
b = 1,
col = "gray")
legend(x = "bottomright",
title = expression("Wind speed, m/s"),
legend = c(0.2,1,2),
lty = c("solid", "dashed", "dotted"))
## ---- fig.height = 4, fig.width = 4-------------------------------------------
t.seq <- lapply(seq(0.02, 0.14, 0.01),
FUN = Tb_mussel,
T_a = 25,
h = 0.05,
T_g = 30,
S = 500,
k_d = 0,
u = 0.5,
psi = 60,
evap = FALSE,
cl = 0,
group = "solitary")
plot(x = seq(0.02, 0.14, 0.01),
y = t.seq,
type = "l",
xlab = "mussel length (m)",
ylab = "body temperature (°C)",
ylim = c(25,32))
t.seq <- lapply(seq(0.02, 0.14, 0.01),
FUN = Tb_mussel,
T_a = 25,
h = 0.05,
T_g = 30,
S = 500,
k_d = 0,
u = 1,
psi = 60,
evap = FALSE,
cl = 0,
group = "solitary")
points(x = seq(0.02, 0.14, 0.01),
y = t.seq,
type = "l",
lty = "dashed")
t.seq <- lapply(seq(0.02, 0.14, 0.01),
FUN = Tb_mussel,
T_a = 25,
h = 0.05,
T_g = 30,
S = 500,
k_d = 0,
u = 3,
psi = 60,
evap = FALSE,
cl = 0,
group = "solitary")
points(x = seq(0.02, 0.14, 0.01),
y = t.seq,
type = "l",
lty = "dotted")
t.seq <- lapply(seq(0.02, 0.14, 0.01),
FUN = Tb_mussel,
T_a = 25,
h = 0.05,
T_g = 30,
S = 500,
k_d = 0,
u = 1,
psi = 60,
evap = TRUE,
cl = 0,
group = "solitary")
points(x = seq(0.02, 0.14, 0.01),
y = t.seq,
type = "l",
col = "red")
legend(x = "bottomright",
title = expression("Wind speed, m/s"),
legend = c(0.5,1,3),
lty = c("solid", "dashed", "dotted"))
## ---- fig.height = 4, fig.width = 4-------------------------------------------
t.seq <- lapply(20:40,
FUN = Tbed_mussel,
l = 0.1,
S = 500,
k_d = 0.2,
u = 0.2,
evap = FALSE)
plot(x = 20:40,
y = t.seq,
type = "l",
xlab = "ambient temperature (°C)",
ylab = "body temperature (°C)",
ylim = c(20, 50))
t.seq <- lapply(20:40,
FUN = Tbed_mussel,
l = 0.1,
S = 500,
k_d = 0.2,
u = 1,
evap = FALSE)
points(x = 20:40,
y = t.seq,
type = "l",
lty = "dashed")
t.seq <- lapply(20:40,
FUN = Tbed_mussel,
l = 0.1,
S = 500,
k_d = 0.2,
u = 2,
evap = FALSE)
points(x = 20:40,
y = t.seq,
type = "l",
lty = "dotted")
t.seq <- lapply(20:40,
FUN = Tbed_mussel,
l = 0.1,
S = 500,
k_d = 0.2,
u = 0.2,
evap = TRUE)
points(x = 20:40,
y = t.seq,
type = "l",
lty = "solid",
col = "red")
abline(a = 0,
b = 1,
col = "gray")
legend(x = "bottomright",
title = expression("Wind speed, m/s"),
legend = c(0.2,1,2),
lty = c("solid", "dashed", "dotted"))
## ---- fig.height = 4, fig.width = 4-------------------------------------------
t.seq <- lapply(20:40,
FUN = Tb_limpet,
T_r = 30,
l = 0.0176,
h = 0.0122,
S = 1000,
u = 1,
psi = 30,
c = 1,
position = "anterior")
plot(x = 20:40,
y = t.seq,
type = "l",
xlab = "ambient temperature (°C)",
ylab = "body temperature (°C)",
ylim = c(25, 50))
t.seq <- lapply(20:40,
FUN = Tb_limpet,
T_r = 30,
l = 0.0176,
h = 0.0122,
S = 1300,
u = 1,
psi = 30,
c = 1,
position = "anterior")
points(x = 20:40,
y = t.seq,
type = "l",
lty = "dashed")
t.seq <- lapply(20:40,
FUN = Tb_limpet,
T_r = 30,
l = 0.0176,
h = 0.0122,
S = 1600,
u = 1,
psi = 30,
c = 1,
position = "anterior")
points(x = 20:40,
y = t.seq,
type = "l",
lty = "dotted")
abline(a = 0,
b = 1,
col = "gray")
legend(x = "bottomright",
title = expression("Solar irradiance, W/m^2"),
legend = c(1000, 1300, 1600),
lty = c("solid", "dashed", "dotted"))
## ---- fig.height = 4, fig.width = 4-------------------------------------------
t.seq <- lapply(20:40,
FUN = Tb_limpet,
T_r = 30,
l = 0.0176,
h = 0.0122,
S = 800,
u = 1,
psi = 30,
c = 1,
position = "anterior")
plot(x = 20:40,
y = t.seq,
type = "l",
xlab = "ambient temperature (°C)",
ylab = "body temperature (°C)",
ylim = c(25, 50))
t.seq <- lapply(20:40,
FUN = Tb_limpetBH,
T_r = 30,
l = 0.0176,
h = 0.0122,
S = 800,
u = 1,
s_aspect = 90,
s_slope = 60,
c = 1)
points(x = 20:40,
y = t.seq,
type = "l",
lty = "dashed")
t.seq <- lapply(20:40,
FUN = Tb_snail,
l = 0.012,
S = 800,
u = 1,
CC = 0.5,
WL = 0,
WSH = 10)
points(x = 20:40,
y = t.seq,
type = "l",
lty = "dotted")
abline(a = 0,
b = 1,
col = "gray")
legend(x = "bottomright",
title = expression("function"),
legend = c("Tb_limpet", "Tb_limpetBH", "Tb_Snail"),
lty = c("solid", "dashed", "dotted"))
## ---- fig.height = 4, fig.width = 4-------------------------------------------
par(mar = c(5, 5, 3, 2))
blr.seq= lapply(293:313, FUN=boundary_layer_resistance, e_s= 2.5, e_a = 2.3, elev = 500, D = 0.007, u = 2)
plot(x = 293:313,
y = blr.seq,
type = "l",
xlab = "air temperature (K)",
ylab = expression("boundary layer resistance" ~ (s ~ cm^{-1})))
## ---- fig.height = 4, fig.width = 6-------------------------------------------
plot(x = 1:24,
y = Tsoil(T_g_max = 30,
T_g_min = 15,
hour = 1:24,
depth = 0),
type = "l",
xlab = "hour",
ylab = "soil temperature (°C)")
points(x = 1:24,
y = Tsoil(T_g_max = 30,
T_g_min = 15,
hour = 1:24,
depth = 5),
type = "l",
lty = "dashed")
points(x = 1:24,
y = Tsoil(T_g_max = 30,
T_g_min = 15,
hour = 1:24,
depth = 10),
type = "l",
lty = "dotted")
points(x = 1:24,
y = Tsoil(T_g_max = 30,
T_g_min = 15,
hour = 1:24,
depth = 20),
type = "l",
lty = "dotdash")
legend(x = "topleft",
title = "depth (cm)",
legend = c(0,5,10,20),
lty = c("solid", "dashed", "dotted", "dotdash"))
## ---- fig.height = 4, fig.width = 4-------------------------------------------
rad.seq <- sapply(20:40,
FUN = Qthermal_radiation_absorbed,
T_g = 30,
epsilon_ground = 0.97,
a_longwave = 0.965)
t.seq <- mapply(FUN = Tb_salamander_humid,
T_a = 20:40,
r_i = 4,
r_b = 1,
D = 0.01,
elev = 500,
e_a = 1.5,
e_s = 2.5,
Qabs = rad.seq,
epsilon = 0.96)
plot(x = 20:40,
y = t.seq,
type = "l",
xlab = "ambient temperature (°C)", ylab = "humid operative temperature (°C)")
abline(a = 0,
b = 1,
lty = "dotted")
# check higher skin resistance-> Te closer to air due to reduced cooling
t.seq <- mapply(FUN = Tb_salamander_humid,
T_a = 20:40,
r_i = 20,
r_b = 1,
D = 0.01,
elev = 500,
e_a = 1.5,
e_s = 2.5,
Qabs = rad.seq,
epsilon = 0.96)
points(x = 20:40,
y = t.seq,
type = "l",
col = "red")
# check higher vpd-> lower Te due to greater cooling
t.seq <- mapply(FUN = Tb_salamander_humid,
T_a = 20:40,
r_i = 4,
r_b = 1,
D = 0.01,
elev = 500,
e_a = 1.0,
e_s = 2.5,
Qabs = rad.seq,
epsilon = 0.96)
points(x = 20:40,
y = t.seq,
type = "l",
col = "blue")
legend(x = "topleft",
title = NULL,
legend = c("base scenario", "higher skin resistance", "higher vpd"),
lty = c("solid"),
col = c("black", "red", "blue"))
## -----------------------------------------------------------------------------
# set up input data as variables
# latitude and longitude (degrees) and elevation (m)
lat <- 35.69
lon <- -105.944
elev <- 2121
# minimum and maximum of air and soil temperatures, respectively (C)
Tmin <- 10
Tmax <- 25
Tmin_s <- 15
Tmax_s <- 30
# wind speed (m/s)
u <- 0.5
# assumptions
# atmospheric transmissivity and albedo
tau <- 0.7
rho <- 0.6
# initial assumption of body temperature (C)
Tb0 <- 25
doy <- day_of_year("2021-06-01",
format= "%Y-%m-%d")
snoon <- solar_noon(lon = lon,
doy = doy)
dayl <- daylength(lat = lat,
doy = doy)
# time of sunrise
tr <- snoon - dayl / 2
# time of sunset
ts <- snoon + dayl / 2
## ---- fig.height = 4, fig.width = 6-------------------------------------------
psi_deg <- sapply(0:23,
FUN = zenith_angle,
doy = doy,
lat = lat,
lon = lon)
psi_rad <- degrees_to_radians(psi_deg)
Srad <- sapply(psi_rad,
FUN = solar_radiation,
doy = doy,
tau = tau,
elev = elev,
rho = rho)
# Separate into direct, diffuse, and reflected solar radiation
Sdir <- Srad[1,]
Sdif <- Srad[2,]
Sref <- Srad[3,]
plot(x = 0:23,
y = Sdir,
type = "l",
xlab = "hour",
ylab = expression(radiation ~ (W/m^{2})),
ylim = c(0,1200))
points(x = 0:23,
y = Sdif,
type = "l",
lty = "dotted")
points(x = 0:23,
y = Sref,
type = "l",
lty = "dashed")
legend(x = "topright",
title = "Solar radiation component",
legend = c("direct", "diffuse", "reflected"),
lty = c("solid", "dotted", "dashed"))
## -----------------------------------------------------------------------------
Ta <- sapply(0:23,
FUN = diurnal_temp_variation_sineexp,
T_max = Tmax,
T_min = Tmin,
t_r = tr,
t_s = ts,
alpha = 2.59,
beta = 1.55,
gamma = 2.2) #air temperature (C)
Ts <- sapply(0:23,
FUN = diurnal_temp_variation_sine,
T_max = Tmax_s,
T_min = Tmin_s) #soil temperature (C)
## -----------------------------------------------------------------------------
mass <- 10 #grams
# solar absorptivity
a <- 0.9
# estimate surface area (m^2) from mass (g)
A <- surface_area_from_mass(m = mass,
taxon = "lizard")
# estimate projected (silhouette) area as a portion of surface area
psa <- sapply(psi_deg,
FUN = proportion_silhouette_area,
taxon = "lizard",
posture = "elevated")
# change negative values to zero
psa[psa < 0] <- 0
# proportion of surface area in contact with ground, assume 0.25
psa_g= 0.25
# Total radiation
Qabs <- psa * Sdir + 0.5 * Sdif + (0.5-psa_g) * Sref
## -----------------------------------------------------------------------------
# Use DRYAIR from NicheMapR to estimate the thermal conductivity of air and kinematic viscosity
# estimate Barometric pressure (pascal)
ap <- airpressure_from_elev(elev) * 1000
DRYAIRout <- DRYAIR(db = Ta,
bp = ap,
alt = elev)
# thermal conductivity (Wm^-2K^-1)
K <- DRYAIRout$thcond
# kinematic viscosity (m2 s-1)
nu <- DRYAIRout$viskin
# approximate snout vent length (m) for Sceloporus
svl <- 0.006
# approximate characteristic dimension as cube root of volume, assuming density of water as 1000kg/m^3
D <- ((mass / 1000) / 1000) ^ (1 / 3)
# We will use the average of K and nu across the day for simplicity and since there's not a substantial variation
K <- mean(K)
nu <- mean(nu)
# Estimate the heat transfer coefficient using an empirical relationship for lizards
H_L <- heat_transfer_coefficient(u = u,
D = D,
K = 25.7 * 10^(-3),
nu = 15.3 * 10^(-6),
taxon = "lizard_surface")
# Also illustrate estimations using a spherical approximation and a simplified version of the approximation.
heat_transfer_coefficient_approximation(u = u,
D = D,
K = 25.7 * 10^(-3),
nu = 15.3 * 10^(-6),
taxon = "lizard")
heat_transfer_coefficient_simple(u = 0.5,
D = D,
type = "Spotila")
## -----------------------------------------------------------------------------
epsilon_s <- 0.965
TeGates <- rep(NA, 24)
for (hr in 1:24) {
TeGates[hr] <- Tb_Gates(A = A,
D = D,
psa_dir = psa[hr],
psa_ref = 0.5 -psa_g,
psa_air = 0.5,
psa_g = psa_g,
T_g = Ts[hr],
T_a = Ta[hr],
Qabs = Qabs[hr]*A,
epsilon = epsilon_s,
H_L = H_L,
ef = 1.3,
K = 0.5)
}
## -----------------------------------------------------------------------------
TeCN <- rep(NA, 24)
for (hr in 1:24) {
TeCN[hr] <- Tb_CampbellNorman(T_a = Ta[hr],
T_g = Ts[hr],
S = Qabs[hr],
a_l = 0.96,
epsilon = epsilon_s,
c_p = 29.3,
D = D,
u = u)
}
#S is solar radiation flux (W m^-2), so we divide by surface area, A
## -----------------------------------------------------------------------------
TeLiz <- rep(NA, 24)
for (hr in 1:24) {
TeLiz[hr] <- Tb_lizard(T_a = Ta[hr],
T_g = Ts[hr],
u = u,
svl = svl * 1000,
m = mass,
psi = psi_deg[hr],
rho_s = rho,
elev = elev,
doy = doy,
sun = TRUE,
surface = TRUE,
a_s = a,
a_l = 0.965,
epsilon_s = epsilon_s,
F_d = 0.8,
F_r = 0.5,
F_a = 0.5,
F_g = 0.5)
}
TeFei <- rep(NA, 24)
for (hr in 1:24) {
TeFei[hr] <- Tb_lizard_Fei(T_a = Ta[hr],
T_g = Ts[hr],
S = Qabs[hr],
lw = 30,
shade = 0.0,
m = 10.5,
Acondfact = 0.05,
Agradfact = 0.4)
}
## ---- fig.height = 4, fig.width = 6-------------------------------------------
par(mar = c(4, 4, 1, 4),
mgp = c(2, 1, 0),
las = 0)
# Gates
plot(x = 1:24,
y = TeGates,
type = "l",
xlab = "Hour",
ylab = "Temperature (°C)",
col = "blue",
ylim = c(10,50))
# Campbell
points(x = 1:24,
y = TeCN,
type = "l",
col = "blue",
lty = "dotted")
# Buckley 2008
points(x = 1:24,
y = TeLiz,
type = "l",
col = "blue",
lty = "dashed")
# Fei et al.
points(x = 1:24,
y = TeFei,
type = "l",
col = "blue",
lty = "dotdash")
points(x = 1:24,
y = Ta,
type = "l",
col = "orange")
points(x = 1:24,
y = Ts,
type = "l",
col = "purple")
# add additional axis with radiation
par(new = TRUE)
plot(x = 1:24,
y = Sdir,
pch = 16,
axes = FALSE,
xlab = NA,
ylab = NA,
type = "l",
col = "green")
axis(side = 4)
mtext(side = 4,
line = 2,
text = "Radiation",
col = "green")
legend(x = "topleft",
legend = c("Ta", "Ts", "Tb_Gates", "Tb_CampbellNorman", "Tb_lizard", "Tb_lizard_Fei"),
lty = c("solid", "solid", "solid", "dotted", "dashed", "dotdash"),
pch = NA,
col = c("orange", "purple", "blue", "blue", "blue", "blue"))
## -----------------------------------------------------------------------------
Qabs <- rep(NA, 24)
for (hr in 1:24) {
Qabs[hr] <- Qradiation_absorbed(a = a,
A = A,
psa_dir = psa[hr],
psa_dif = 0.5,
psa_ref = 0.5-psa_g,
S_dir = Sdir[hr],
S_dif = Sdif[hr],
rho = rho)
}
## -----------------------------------------------------------------------------
# Use Gates model as Te estimate
Te <- TeGates
Qemit <- rep(NA, 24)
for (hr in 1:24) {
Qemit[hr] <- Qemitted_thermal_radiation(epsilon = epsilon_s,
A = A,
psa_dir = 0.5,
psa_ref = 0.5-psa_g,
T_b = Te[hr] + 273,
T_g = Ts[hr] + 273,
T_a = Ta[hr] + 273,
enclosed = FALSE)
}
## -----------------------------------------------------------------------------
Qconv <- rep(NA, 24)
for (hr in 1:24) {
Qconv[hr] <- Qconvection(T_a = Ta[hr] + 273.15,
T_b = Te[hr] + 273.15,
H = H_L,
A = A,
proportion = 0.67,
ef = 1.3)
}
## -----------------------------------------------------------------------------
Qcond <- rep(NA, 24)
for (hr in 1:24) {
Qcond[hr] <- Qconduction_animal(T_g = Ts[hr] + 273,
T_b = Te[hr] + 273,
d = 0.025, #assume for conductive heat exchange occurs down to 2.5cm
K = 0.5,
A = A,
proportion = psa_g)
}
## -----------------------------------------------------------------------------
Qmet <- 0
Qevap <- 0
## ---- fig.height = 4, fig.width = 7-------------------------------------------
Qnet <- Qnet_Gates(Qabs = Qabs,
Qemit = Qemit,
Qconv = Qconv,
Qcond = Qcond,
Qmet = Qmet,
Qevap = Qevap)
par(mar = c(5, 5, 3, 5))
plot(x = 1:24,
y = Qnet,
type = "l",
xlab = "hour",
ylab = expression("heat flux" ~ (W/m^{2})),
ylim = c(-1,4))
points(x = 1:24,
y = Qabs,
type = "l",
lty = "dotted")
points(x = 1:24,
y = Qemit,
type = "l",
lty = "dashed")
points(x = 1:24,
y = Qconv,
type = "l",
lty = "dotdash")
points(x = 1:24,
y = Qcond,
type = "l",
lty = "twodash")
legend(x = "topright",
title = "component",
legend = c("net radition, Qnet", "solar radiation, Qabs", "thermal radiation, Qemit", "convection, Qconv", "conduction, Qcond"),
lty = c("solid", "dotted", "dashed", "dotdash", "twodash"))
## ----include=FALSE------------------------------------------------------------
suppressWarnings(par(oldpar))
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.