Skip to contents

Calculates Basal Area in square meters.

Usage

silv_basal_area(diameter, ntrees = NULL, units = "cm")

Arguments

diameter

Numeric vector of diameters or diameter classes

ntrees

Numeric vector with number of trees of the diameter class per hectare. If ntrees = NULL, the function will assume that each diameter corresponds to only one tree. Therefore, basal area will be calculated for each individual tree

units

The units of the diameter (one of cm, mm, or m)

Value

A numeric vector

Details

The function uses the next formula:

\(G = \frac{\pi}{40000} \cdot D^2\)

where G is the basal area in \(m^2\), and D is the diameter in the units specified in the function. It is recommended to use the squared mean diameter calculated with silv_sqrmean_diameter

Examples

## calculate G for inventory data grouped by plot_id and species
library(dplyr)
#> 
#> Attaching package: ‘dplyr’
#> The following objects are masked from ‘package:stats’:
#> 
#>     filter, lag
#> The following objects are masked from ‘package:base’:
#> 
#>     intersect, setdiff, setequal, union
inventory_samples |>
mutate(dclass = silv_diametric_class(diameter)) |>
  summarise(
    height = mean(height, na.rm = TRUE),
    ntrees = n(),
    .by    = c(plot_id, species, dclass)
  ) |>
  mutate(
    ntrees_ha = silv_ntrees_ha(ntrees, plot_size = 10),
    dg        = silv_sqrmean_diameter(dclass, ntrees_ha),
    g         = silv_basal_area(dclass, ntrees_ha),
    .by       = c(plot_id, species)
  )
#> # A tibble: 57 × 8
#>    plot_id species dclass height ntrees ntrees_ha    dg     g
#>      <int>   <int>  <dbl>  <dbl>  <int>     <dbl> <dbl> <dbl>
#>  1       7      27     50  18         3      95.5  57.9 18.8 
#>  2       7      27     55  17.6       5     159.   57.9 37.8 
#>  3       7      27     35  16.5       1      31.8  57.9  3.06
#>  4       7      27     45  14.6       2      63.7  57.9 10.1 
#>  5       7      27     60  19.1       3      95.5  57.9 27   
#>  6       7      27     25  12.9       1      31.8  57.9  1.56
#>  7       7      27    120  20.9       1      31.8  57.9 36   
#>  8       8      83     20   5.10      3      95.5  15.1  3   
#>  9       8      83     10   6.10      4     127.   15.1  1   
#> 10       8      28     55  15.5       1      31.8  57.6  7.56
#> # ℹ 47 more rows

## calculate individual basal area
silv_basal_area(c(23, 11, 43.5, 94))
#> [1] 0.041547563 0.009503318 0.148616967 0.693977817