ectoR_devel | R Documentation |
A modularised implementation of the heat budget of the Niche Mapper ectotherm model that computes body temperature, and water loss for a single environment with no behaviour. Like endoR_devel, it can be used to develop customised versions of the NicheMapR ectotherm model.
ectoR_devel(Ww_g = 40, shape = 3, alpha = 0.85, postur = 0, TA = 20, TGRD = 40, TSKY = -5, VEL = 1, RH = 30, QSOLR = 800, Z = 20 ...)
Ww_g |
= 40, Wet weight of animal (g), note this model is 'steady state' so no lags in heating/cooling due to mass |
alpha |
= 0.85, Solar absorptivity, 0-1 |
shape |
= 3, Organism shape, 0-5, Determines whether standard or custom shapes/surface area/volume relationships are used: 0=plate, 1=cyl, 2=ellips, 3=lizard (desert iguana), 4=frog (leopard frog), 5=custom (see details) |
M_1 |
= 0.013, Metabolic rate parameter 1 V_O2=M_1*M^M_2*10^(M_3*Tb)*10^M_4, in ml O2 / h, default parameters for lizards based on Eq. 2 from Andrews & Pough 1985. Physiol. Zool. 58:214-231 |
M_2 |
= 0.800, Metabolic rate parameter 2 |
M_3 |
= 0.038, Metabolic rate parameter 3 |
M_4 |
= 0, Metabolic rate parameter 4 (zero for 'standard' or 0.14 for 'resting') |
Q_act |
= 0, Metabolic offset (W) for locomotion or some other activity additional to resting costs |
pct_wet |
= 0.1, % of surface area acting as a free-water exchanger, for computing cutaneous water loss |
pct_eyes |
= 0, % of surface area taken up by open eyes, for computing ocular water loss (only when active) |
pct_mouth |
= 0, % of surface area taken up by open mouth, for computing panting water loss |
psi_body |
= -7.07 * 100, water potential of body (J/kg) - affects skin humidity for water vapour exchange |
pantmax |
= 1, maximum multiplier on breathing rate, for respiratory water loss via panting (>1 invokes panting) |
F_O2 |
= 20, % oxygen extraction efficiency, for respiratory water loss |
delta_air |
= 0.1, temperature difference (°C) between expired and inspired air, for computing respiratory water loss |
leaf |
= 0, use vapour conductance for evaporation (leaf mode = 1, non-leaf mode = 0) |
g_vs_ab |
= 0.3, leaf vapour conductance, abaxial (bottom of leaf), mol/m2/s |
g_vs_ad |
= 0, leaf vapour conductance, adaxial (top of leaf), mol/m2/s |
O2gas |
= 20.95, % O2 in air |
CO2gas |
= 0.03, % CO2 in air |
N2gas |
= 79.02, % nitrogen in air |
SHADE |
= 0, shade level (%) |
QSOLR |
= 1000, solar radiation, horizontal plane (W/m2) |
Z |
= 20, zenith angle of sun (degrees from overhead) |
TA |
= 20, air temperature at local height (°C) |
TGRD |
= 30, ground temperature (°C) |
TSKY |
= -5, sky temperature (°C) |
VEL |
= 1, wind speed (m/s) |
RH |
= 30, relative humidity (%) |
Environmental inputs:
elev
= 0, elevation (m)
alpha_sub
= 0.8, solar absorptivity of substrate (fractional, 0-1)
fluid
= 0, fluid type: 0 = air; 1 = water
TSUBST
= TGRD, surface temperature for conduction (°C)
K_sub
= 0.5, substrate thermal conductivity (W/m°C)
pres
= 101325, atmospheric pressure (Pa)
O2gas
= 20.95, oxygen concentration of air, to account for non-atmospheric concentrations e.g. in burrows (%)
N2gas
= 79.02, nitrogen concetration of air, to account for non-atmospheric concentrations e.g. in burrows (%)
CO2gas
= 0.0412, carbon dioxide concentration of air, to account for non-atmospheric concentrations e.g. in burrows (%)
PDIF
= 0.15, proportion of solar radiation that is diffuse (fractional, 0-1)
Morphological parameters:
custom_shape
= c(10.4713,.688,0.425,0.85,3.798,.683,0.694,.743), Custom shape coefficients. Operates if shape=5, and consists of 4 pairs of values representing the parameters a and b of a relationship AREA=a*mass^b, where AREA is in cm2 and mass is in g. The first pair are a and b for total surface area, then a and b for ventral area, then for sillhouette area normal to the sun, then sillhouette area perpendicular to the sun
shape_a
= 1, Proportionality factor (-) for going from volume to area, keep this 1 (redundant parameter that should be removed)
shape_b
= 3, Proportionality factor (-) for going from volume to area, represents ratio of width:height for a plate, length:diameter for cylinder, b axis:a axis for ellipsoid
shape_c
= 0.6666666667, Proportionality factor (-) for going from volume to area, represents ratio of length:height for a plate, c axis:a axis for ellipsoid
orient
= 0, orientation of shape relevant to shapes 0, 1 & 2, 0 means plate lying flat, cylinder lengthwise, prolate ellipsoid, 1 means plate on edge, cylinder upright, oblate spheroid and ellipsoid
conv_enhance
= 1, convective enhancement factor, accounting for enhanced turbulent convection in outdoor conditions compared to what is measured in wind tunnles, see Kolowski & Mitchell 1976 10.1115/1.3450614 and Mitchell 1976 10.1016/S0006-3495(76)85711-6
fatosk
= 0.4, Configuration factor to sky (-) for infrared calculations
fatosb
= 0.4, Configuration factor to subsrate for infrared calculations
pct_cond
= 10, Percentage of animal surface contacting the substrate (%)
pct_touch
= 0, Percentage of animal surface area contacting another animal of same temperature (%)
k_flesh
= 0.5, Thermal conductivity of flesh (W/mC, range: 0.412-2.8)
rho_body
= 1000, Density of flesh (kg/m3)
epsilon
= 0.95, Emissivity of animal (0-1)
postur
= 1, postural orientation to sun, 1 = perpendicular, 2 = parallel, 0 = half way between (foraging), 3 = perpendicular but not behaviourally orienting
Outputs:
temperature variables:
TC - Body temperature (°C)
TSKIN - Skin temperature (°C)
TLUNG - Lung temperature (°C)
enbal variables:
1 QSOL - Solar radiation absorbed (W)
2 QIRIN - Infrared radiation absorbed (W)
3 QMET - Metabolic heat production (W)
4 QEVAP - Evaporative heat loss (W)
5 QIROUT - Infrared radiation lost (W)
6 QCONV - Heat lost by convection (W)
7 QCOND - Heat lost by conduction (W)
8 ENB - Energy balance (W)
9 NTRY - Iterations that were required for solution to heat balance equation
masbal variables:
1 O2_ml - Oxygen consumption rate (ml/h)
2 H2OResp_g - Respiratory water loss (g/h)
3 H2OCut_g - Cutaneous water loss (g/h)
4 H2OEye_g - Ocular water loss (g/h)
library(NicheMapR)
# parameters
Ww_g <- 40
shape <- 3
alpha <- 0.85
ectoR.out <- ectoR_devel(Ww_g = Ww_g, # wet weight, g
shape = shape, # using lizard geometry
alpha = alpha, # solar absorptivity
postur = 0, # average posture, half way between normal and parallel to sun
TA = 20, # air temperature at lizard height, deg C
TGRD = 40, # ground temperature, deg C
TSKY = -5, # sky temperature, deg C
VEL = 1, # wind speed, m/s
RH = 30, # relative humidity, %
QSOLR = 800, # total horizontal plane solar radiation, W/m2
Z = 20 # solar zenith angle, degrees
)
# return body temperature
ectoR.out$TC
# return skin temperature
ectoR.out$TS
# return heat budget
ectoR.out$enbal
# return O2 consumption rate and water loss
ectoR.out$masbal
# run microclimate model in monthly mode at default site (Madison, Wisconsin, USA)
micro <- micro_global()
# extract full sun conditions
metout <- as.data.frame(micro$metout)
soil <- as.data.frame(micro$soil)
# get required inputs
TAs <- metout$TALOC
TGRDs <- soil$D0cm
TSKYs <- metout$TSKYC
VELs <- metout$VLOC
RHs <- metout$RHLOC
QSOLRs <- metout$SOLR
Zs <- metout$ZEN
# use ectoR_devel to compute body temperature in open without respiratory heat loss,
# conduction, or metabolic heat gain
TC <- unlist(lapply(1:length(TAs), function(x){ectoR_devel(
Ww_g = Ww_g, # wet weight, g
shape = shape, # using lizard geometry
alpha = alpha, # solar absorptivity
M_1 = 0, # turn of metabolic heat
postur = 0, # average posture, half way between normal and parallel to sun
pantmax = 0, # turn off respiratory heat exchange
pct_cond = 0, # negligible conduction to substrate
alpha_sub = (1 - micro$REF), # substrate absorptivity used in microclimate model
elev = micro$elev, # elevation from microclimate model
TA = TAs[x], # air temperature at lizard height from microclimate model, deg C
TGRD = TGRDs[x], # ground temperature from microclimate model, deg C
TSKY = TSKYs[x], # sky temperature from microclimate model, deg C
VEL = VELs[x], # wind speed from microclimate model, m/s
RH = RHs[x], # relative humidity from microclimate model, %
QSOLR = QSOLRs[x], # total horizontal plane solar radiation from microclimate model, W/m2
Z = Zs[x] # solar zenith angle from microclimate model, degrees
)$TC})) # run ectoR_devel across environments
# run ectotherm model for a non-behaving animal without respiratory heat loss,
# conduction or metabolic heat gain
ecto <- ectotherm(
Ww_g = Ww_g, # wet weight, g
shape = shape, # using lizard geometry
alpha_min = alpha, # minimum solar absorptivity
alpha_max = alpha, # maximum solar absorptivity
M_1 = 0, # turn of metabolic heat
postur = 0, # average posture, half way between normal and parallel to sun
pantmax = 0, # turn off respiratory heat exchange
pct_cond = 0, # negligible conduction to substrate
live = 0
)
# extract results
environ <- as.data.frame(ecto$environ)
enbal <- as.data.frame(ecto$enbal)
masbal <- as.data.frame(ecto$masbal)
TC_ectotherm <- environ$TC
# compare
time <- micro$dates
plot(time, TC, type = 'l', ylim = c(-25, 55), ylab = 'body temperature, deg C', xlab = 'month of year')
points(time, TC_ectotherm, type = 'l', col = 2)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.