| runmodel | R Documentation |
runmodel is used to run the full model over time
runmodel(
climdata,
vegp,
soilp,
lat,
long,
edgedist = 100,
reqhgt = NA,
sdepth = 2,
zu = 2,
theta = 0.3,
merid = 0,
dst = 0,
n = 0.6,
steps = 200,
plotout = TRUE,
plotsteps = 100,
tsoil = NA,
metopen = TRUE,
windhgt = 2,
zlafact = 1,
surfwet = 1,
previn = NA,
snow = NA
)
climdata |
a data.frame of climate variables (see e.g. |
vegp |
a list of vegetation parameters as returned by |
soilp |
a list of soil parameters as returned by |
lat |
Latitude (decimal degrees) |
long |
Longitude (decimal degrees, negative west of Greenwich meridion) |
edgedist |
distance to open ground (m) |
reqhgt |
optional height for which temperature is required (see details) |
sdepth |
depth of deepest soil node (m) |
zu |
height above ground of reference climate measurements (m) |
theta |
a single numeric value, vector of values or matrix of volumetric water content (m^3 / m^3) of soil layer(s) (see details) |
merid |
an optional numeric value representing the longitude (decimal degrees) of the local time zone meridian (0 for GMT). |
dst |
an optional numeric value representing the time difference from the timezone meridian (hours, e.g. +1 for BST if |
n |
forward / backward weighting for Thomas algorithm (see |
steps |
number of iterations over which to run |
plotout |
optional logical indicating whether to a plot a profile of temperatures upon completion. |
plotsteps |
number of iterations run before resuls plotted if |
tsoil |
optional stable temperature of the deepest soil layer (see details) |
metopen |
optional logical indicating whether the wind measurement used as an input to the model is from a nearby weather station located in open ground (TRUE) or above the canopy for which temperatures are modelled (FALSE - see details) |
windhgt |
height above ground of wind measurement. If |
zlafact |
numeric value indicating how close to leaves air temperatures are needed for (1 - average leaf-air distance, 0.5 = half average leaf-air distance etc.). Must be greater than 1. |
surfwet |
fraction of vegetation surface acting like free-water surface |
previn |
optional initial conditions as returned by |
snow |
optional vector indicating whether snow is present in each hour (1 = yes, 0 = no).
if |
If reqhgt is set to a numeric value, and below the height of the canopy, the canopy node nearest
to that height is set at the value specified. The returned values tout, tleaf, relhum,
L and Swin and Lwin are then the values at that height. If reqhgt is above canopy, nodes are
calculated automatically, and tout and relhum are the temperature and relative humidity
at height reqhgt, SWin and LWin the values above canopy, tleaf the mean leaf
temperature and L the summed latent heat exchange for the entire canopy. If reqhgt is
negative, the soil node nearest to that height is set at the value specified, tout is
soil temperature at that node, tleaf, relhum, Swin and Lwin are the mean values for
the whole canopy. If reqhgt is not set, tout, tleaf, relhum, SWin
and LWin are mean values for the whole canopy. The parameter tsoil is the temperature
of soil below sdepth, which is assumed constant. If tsoil is not provided, it is
assigned a value equivelent to mean of climdata$temp. If reqhgt is set to allclim a list
of data.frames is returned, giving temperatures, humidities and wind speeds at each node. If
If reqhgt is set to all data.frames of fluxes and conductivities are also returned.
If theta is a single numeric value, constant soil moisture in each soil layer and
in each time step is assumed. If theta is a vector of values of length number of soil
layers, time-invariant soilmoisture is assumed, but soil moisture is assumed to vary with
depth. If theta is a vector of values of length equivelent to the number of time steps
over which the model is to be run, then time-variant soilmoisture is assumed, but soil moisture
is assumed not to vary with depth. If theta is a matrix, the number of rows should be
equivelent to the number of soil layers, and the number of columns should be equivelent to
the number of time increments over which the model is to be run.
The wind profile of the canopy depends on the nature of the canopy itself, and often
available wind measurements are for a nearby weather station located in open ground where
it is possible that the height of the wind measurement is below the height of the canopy
being studied. When metopen is TRUE, the wind profile of reference grass surface is
used to derive estimates for two metres above the canopy of interest. When metopen is
FALSE, windhgt must be above canopy and the profile above the canopy being studied is used.
if reqhgt not all or allclim a data.frame with the following elements:
obs_time POSIXlt object of times associated wiht eahc output
reftemp air temperature (deg C) at reference height - i.e. climdata$temp
tout air or soil temperature (deg C) (see details)
tleaf Leaf temperature (deg C) (see details)
relhum Relative humidity (Percentage) (see details)
SWin Incoming shortwave radiation (W / m^2) (see details)
LWin Incoming longwave radiation (W / m^2) (see details)
H Total sensible heat flux to/from canopy (W / m^2). Positive values indicate
sensible heat release from canopy to air.
L Sensible heat flux (W / m^2) from each canopy node or for the entire canopy (see details)
G Total heat flux to/from ground (W / m^2). Positive values indicate
flux from canopy to ground. Negative values indicate flux from ground to canopy.
if reqhgt = allclim a list of the following data.frames:
Airtemp air temperatures (deg C) at each node for each time step. Also air temperature at canopy
top and psi_m parameter, permitting interpolation of temperatures above canopy.
Leaftemp leaf temperatures (deg C) at each node for time step
Soiltemp temperatures (deg C) of each soil layer in time step
Windspeed wind speed (m/s) at each node for each time step
Relhum relative humidity (percentage) at each node for each time step
if reqhgt = all, additionally the following data.frames:
Conductivity leaf boundary layer, turbulent, and leaf vapour conductivities for each
time step (mol / m^2 / s)
Fluxes For each timestep, incoming long and shortwave radiation and
latent heat fluxes for each node. Also sensible and ground heat fluxes.
tme<-as.POSIXlt(weather$obs_time, format = "%Y-%m-%d %H:%M", tz = "UTC")
vegp <- microctools::habitatvars(4, lat = 50, long = -5, tme, m = 20)
soilp<- soilinit("Loam")
dataout <- runmodel(weather, vegp, soilp, lat = 50, long = -5)
par(mfrow=c(2,1))
plot(tout~as.POSIXct(obs_time), data = dataout, type = "l", col = "red",
xlab = "Month", ylab = "Temperature", ylim = c(-8.5, 27.5))
par(new=TRUE)
plot(reftemp~as.POSIXct(obs_time), data = dataout, type = "l", col = rgb(0,0,0,0.5),
xlab = "", ylab = "Temperature", ylim = c(-8.5, 27.5), main = "Air temperature")
plot(tleaf~as.POSIXct(obs_time), data = dataout, type = "l", col = "darkgreen",
xlab = "Month", ylab = "Temperature", ylim = c(-8.5, 27.5))
par(new=TRUE)
plot(reftemp~as.POSIXct(obs_time), data = dataout, type = "l", col = rgb(0,0,0,0.5),
xlab = "", ylab = "", ylim = c(-8.5, 27.5), main = "Leaf temperature")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.