inst/doc/tealeaves-introduction.R

## ----setup, include = FALSE---------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  warning = FALSE,
  message = FALSE,
  eval = TRUE
)

## ---- mwe---------------------------------------------------------------------

library(magrittr)
library(tealeaves)

# Leaving the make_* functions empty will automatically default to defaults
# parameters.
leaf_par   <- make_leafpar()   # leaf parameters
enviro_par <- make_enviropar() # environmental parameters
constants  <- make_constants() # physical constants

T_leaf <- tleaf(leaf_par, enviro_par, constants, quiet = TRUE)

T_leaf %>% knitr::kable()


## ---- replace-defaults--------------------------------------------------------

# Use the `replace` argument to replace defaults. This must be a named list, and
# each named element must have the proper units specified. See `?make_parameters`
# for all parameter names and proper units.

# First, we'll change stomatal conductance to 4 umol / (m^2 s Pa)
leaf_par <- make_leafpar(
  replace = list(
    g_sw = set_units(4, "umol/m^2/s/Pa")
    )
  )

# Next, we'll change the air temperature to 25 degree C (= 298.15 K)
enviro_par <- make_enviropar(
  replace = list(
    T_air = set_units(298.15, "K")
    )
  )

# Physical constants probably do not need to be replaced in most cases,
# that's why we call them 'constants'!
constants  <- make_constants()

T_leaf <- tleaf(leaf_par, enviro_par, constants, quiet = TRUE)

T_leaf %>% knitr::kable()


## ---- environmental-gradients-------------------------------------------------

# As before, use the `replace` argument to replace defaults, but this time we
# enter multiple values

# First, we'll change stomatal conductance to to 2 and 4 umol / (m^2 s Pa)
leaf_par  <- make_leafpar(
  replace = list(
    g_sw = set_units(c(2, 4), "umol/m^2/s/Pa")
    )
  )

# Next, we'll change the air temperature to 20 and 25 degree C (= 293.15 and 298.15 K)
enviro_par <- make_enviropar(
  replace = list(
    T_air = set_units(c(293.15, 298.15), "K")
    )
  )

constants  <- make_constants()

# Now there should be 4 combinations (high and low g_sw crossed with high and low T_air)
T_leaves <- tleaves(leaf_par, enviro_par, constants, progress = FALSE, 
                    quiet = TRUE, set_units = FALSE)

T_leaves %>% 
  dplyr::select(T_air, g_sw, T_leaf) %>%
  knitr::kable()


## ---- parallel-example, eval = FALSE------------------------------------------
#  # NOTE: not evaluated here because it caused error on CRAN. Copy-and-paste to run on your own machine.
#  
#  # We'll use the `replace` argument to enter multiple air temperatures and two light levels
#  
#  leaf_par  <- make_leafpar()
#  
#  enviro_par <- make_enviropar(
#    replace = list(
#      S_sw = set_units(c(300, 1000), "W/m^2"),
#      T_air = set_units(seq(273.15, 313.15, length.out = 10), "K")
#      )
#    )
#  
#  constants  <- make_constants()
#  
#  tl <- tleaves(leaf_par, enviro_par, constants, progress = FALSE, quiet = TRUE,
#                parallel = TRUE)
#  tl$T_air %<>% drop_units() # for plotting
#  tl$T_leaf %<>% drop_units() # for plotting
#  tl %<>% dplyr::mutate(Light = dplyr::case_when(
#   round(drop_units(S_sw), 0) == 300 ~ "Shade",
#   round(drop_units(S_sw), 0) == 1000 ~ "Sun"
#  ))
#  
#  # Plot T_air versus T_leaf - T_air at different light levels
#  library(ggplot2)
#  ggplot(tl, aes(T_air, T_leaf - T_air, color = Light)) +
#    geom_line() +
#    xlab("Air Temperature [K]") +
#    ylab("Leaf - Air Temperature [K]") +
#    theme_minimal() +
#    NULL
#  

Try the tealeaves package in your browser

Any scripts or data that you put into this service are public.

tealeaves documentation built on July 20, 2022, 5:07 p.m.