Nothing
## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
## -----------------------------------------------------------------------------
# Before we start, let's attach the package
library(ForestElementsR)
## -----------------------------------------------------------------------------
class(fe_ytable_pine_wiedemann_moderate_1943)
## -----------------------------------------------------------------------------
fe_ytable_pine_wiedemann_moderate_1943 |> summary()
## -----------------------------------------------------------------------------
fe_ytable_pine_wiedemann_moderate_1943[1:6] # Elements 1-6 contain metadata
## -----------------------------------------------------------------------------
fe_ytable_spruce_assmann_franz_mean_yield_level_1963$site_indexes
## -----------------------------------------------------------------------------
fe_ytable_spruce_assmann_franz_mean_yield_level_1963$site_index_variable
## -----------------------------------------------------------------------------
fe_ytable_pine_wiedemann_moderate_1943$values |> names()
## -----------------------------------------------------------------------------
fe_ytable_pine_wiedemann_moderate_1943$values$h_q_m
## -----------------------------------------------------------------------------
fe_ytable_pine_wiedemann_moderate_1943$values$pai_m3_ha_yr
## ----fig.width=4.9, fig.height=4.9, fig.align="center"------------------------
# Plot the quadratic mean height (site index fan)
fe_ytable_pine_wiedemann_moderate_1943 |> plot()
## ----fig.width=4.9, fig.height=4.9, fig.align="center"------------------------
# Plot the periodic annual increment
fe_ytable_pine_wiedemann_moderate_1943 |> plot(variable = "pai_m3_ha_yr")
## ----fig.width=4.9, fig.height=4.9, fig.align="center"------------------------
# Plot the tree number per ha and modify the plot's appearance
# 1 catch the plot
v_plot <- fe_ytable_pine_wiedemann_moderate_1943 |> plot(variable = "n_ha")
# 2 make adjustments as allowed by ggplot2, e.g.
v_plot +
ggplot2::theme_classic() + # Appearance similar to R base graphics
ggplot2::scale_y_log10() + # Logarithmic scale for vertical axis
ggplot2::ylab("Tree Number per hectare") # More explaining axis label
## -----------------------------------------------------------------------------
ytab <- fe_ytable_pine_wiedemann_moderate_1943 # store the yield table in a
# variable with a shorter name
# for convenience
# Assume a stand age of 73 years and a quadratic mean height of 19.7 m
si <- site_index(age = 72, size = 19.7, ytable = ytab, si_variable = "h_q_m")
si # The stand's relative site index according to the table
si |> round(digits = 1) # usually relative site indexes are rounded to one digit
# Same height, but twenty years younger
site_index(age = 52, size = 19.7, ytable = ytab, si_variable = "h_q_m") |>
round(digits = 1)
# Same height, but thirty years older
site_index(age = 102, size = 19.7, ytable = ytab, si_variable = "h_q_m") |>
round(digits = 1)
## -----------------------------------------------------------------------------
site_index(age = 171, size = 30.4, ytable = ytab, si_variable = "h_q_m")
site_index(age = 12, size = 9.2, ytable = ytab, si_variable = "h_q_m")
## -----------------------------------------------------------------------------
age <- c(35, 25, 120, 75, 42, 53)
h_q <- c(14.3, 9.1, 22.2, 13.6, 11.0, 21.7)
si_vec <- purrr::map2_dbl(
.x = age,
.y = h_q,
.f = function(x, y, yt, si_v) site_index(x, y, yt, si_v),
yt = ytab,
si_v = "h_q_m"
) |>
round(digits = 1)
si_vec
## -----------------------------------------------------------------------------
# Obtain the expected mean annual increment at age 100 for a stand with the
# relative site index 1.2
si_to_mai_age(
si = 1.2, mai_variable = "mai_m3_ha_yr", age = 100, ytable = ytab
)
# Do the same for the site index vector we generated above
si_vec
purrr::map_dbl(
.x = si_vec,
.f = function(x, ma_v, age, yt) si_to_mai_age(x, ma_v, age, yt),
ma_v = "mai_m3_ha_yr",
age = 100,
yt = ytab
)
## -----------------------------------------------------------------------------
# Obtain the expected maximum mean annual increment for a stand with the
# relative site index 1.2
si_to_mai_max(
si = 1.2, mai_variable = "mai_m3_ha_yr", ytable = ytab
)
# Do the same for the site index vector we generated above
si_vec
purrr::map_dbl(
.x = si_vec,
.f = function(x, ma_v, yt) si_to_mai_max(x, ma_v, yt),
ma_v = "mai_m3_ha_yr",
yt = ytab
)
## -----------------------------------------------------------------------------
# Obtain the expected stand height at age 100 for a stand with the relative
# site index 1.2 (this actually converts a relative into an absolute site index)
si_abs <- ytable_lookup(age = 100, si = 1.2, variable = "h_q_m", ytable = ytab)
si_abs
si_abs |> round(digits = 1)
# Let's to this again for the whole site index vector from above.
# Reasonably, we obtain warnings, if we use site indexes beyond range of the
# yield table
si_abs_vec <- purrr::map_dbl(
.x = si_vec,
.f = function(x, age, var, yt) ytable_lookup(age, x, var, yt),
age = 100,
var = "h_q_m",
yt = ytab
)
si_abs_vec |> round(digits = 1)
## -----------------------------------------------------------------------------
# Get the periodic annual increment:
ytable_lookup(age = 100, si = 1.2, variable = "pai_m3_ha_yr", ytable = ytab)
# Try to go beyond the table's age coverage (raises warning)
ytable_lookup(age = 170, si = 1.2, variable = "pai_m3_ha_yr", ytable = ytab)
# ... standing volume
ytable_lookup(age = 73, si = 2.4, variable = "v_m3_ha", ytable = ytab)
# Use a site index above the table's coverage (raises warning)
ytable_lookup(age = 73, si = 0.4, variable = "v_m3_ha", ytable = ytab)
# ... basal area
ytable_lookup(age = 41, si = 3.4, variable = "ba_m2_ha", ytable = ytab)
# Use a site index below the table's coverage
ytable_lookup(age = 41, si = 6.2, variable = "ba_m2_ha", ytable = ytab)
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.