Learn R Programming

ForestElementsR (version 2.0.1)

h_100: Dominant Height h100

Description

The dominant height h100 was conceptuated by Ernst Assmann and Friedrich Franz in order obtain a mean height value for those trees which usually dominate a stand throughout its whole life.

Usage

h_100(h, d, n_rep_ha)

Value

the dominant height value h100 resulting from the input data

Arguments

h

vector of tree height values to calculate the dominant height h100 from

d

vector of stem diameters at breast height corresponding to h, must therefore have the same length as h

n_rep_ha

vector of representation numbers per ha for each diameter in d. Must have the same length as d or the length 1 (in which case it is recycled to the length of d). Otherwise, the function terminates with an error.

Details

The h100 is defined as the quadratic mean height of the hundred thickest trees per ha. If there are only 100 trees or less on one ha, the h100 is the same as the quadratic mean height d_q. While the h100 is well defined and useful in monospecific stands, it is less so in mixed stands.

See Also

Other stand heights: h_dom_weise(), h_q(), h_q_from_d_q()

Examples

Run this code
# A sample of trees from an angle count sample , where each
# tree represents a basal area of 4 m²/ha
d_cm <- c(12, 13, 25, 27, 28, 26, 26.1, 32, 35, 31, 42)
n_rep_ha <- 4 / ((d_cm / 100)^2 * pi / 4) # representation number of each tree
dq_cm <- d_q(d_cm, n_rep_ha)
h_m <- 0.9 * dq_cm * (d_cm / dq_cm)^0.8 # quick plausible height estim.
h_100(h_m, d_cm, n_rep_ha)
h_q(h_m, d_cm) # quadratic mean height for comparison


# Typical application to a set of single tree data grouped by survey
# time and species
# (note that everyone is applying h_100 mixed stands, but you should do it
# only, if you know exactly what you are doing)
library(dplyr)
oldopt <- options(fe_spec_lang = "eng") # display colloquial species names
# for d_100 in mixed stands, we require species shares
spec_shares <- species_shares(
  mm_forest_1_fe_stand_spatial,
  tree_filter = !removal, # remaining trees only
  method = "ba_wd"
)
# extract the tree data to allow insights into the mechanics
trees <- mm_forest_1_fe_stand_spatial$trees |> filter(!removal)
# join with the shares
trees |>
  left_join(spec_shares) |>
  group_by(species_id, time_yr) |>
  summarise(
    n_ha     = round(sum(n_rep_ha)),
    d_q      = d_q(dbh_cm, n_rep_ha),
    d_100_cm = d_100(dbh_cm, n_rep_ha / species_share),
    h_q      = h_q(height_m, dbh_cm, n_rep_ha),
    h_100_m  = h_100(height_m, dbh_cm, n_rep_ha / species_share)
  ) |>
  print(n = Inf)
options(oldopt) # set species name display to previous value

Run the code above in your browser using DataLab