Ung2009 Growth and Yield Model
Ung2009.RdThis function implements the models described in Ung et al. (2009). Two models (Nat1 and Nat2) are available:
Nat1: A multi-equation system predicting tree height (H), basal area (BA), and volume (V) based on stand age, growth degree days (GDD), precipitation (PREC), and species-specific parameters.
Nat2: A single equation that focuses on predicting stand volume (V) using age, GDD, and PREC.
Usage
Ung2009(species, age, GDD, PREC, model = c("both", "Nat1", "Nat2"))Arguments
- species
Character. A valid species name as defined in the parameter table of the model.
- age
Numeric vector. The age(s) of the stand in years. Must be greater than 0.
- GDD
Numeric. Growth degree days.
- PREC
Numeric. Precipitation.
- model
Character. Which model(s) to use. One of
"Nat1","Nat2", or"both". Defaults to"both".
Value
A tibble containing:
ageH(ifNat1is used): Predicted tree height (m).BA(ifNat1is used): Predicted basal area (m²/ha).V(ifNat1is used): Predicted volume (m³/ha).V2(ifNat2is used): Predicted volume (m³/ha) based on the Nat2 model.
Details
In the Nat1 model, height and basal area are each modeled using age, GDD, and PREC in a Chapman-Richards formulation, and volume is derived via an allometric equation. In contrast, Nat2 is more streamlined, modeling volume directly as a function of these same variables but without explicit height and basal area components.
References
Ung, C.-H., Bernier, P.Y., Guo, X.J., Lambert, M.-C. (2009). "A simple growth and yield model for assessing changes in standing volume across Canada’s forests." The Forestry Chronicle, 85, 57–64. doi:10.5558/tfc85057-1 .
Examples
# Example 1: Use both models (default), returning columns: age, H, BA, V, V2
res_both <- Ung2009(
species = "ABIE.BAL",
age = 1:150,
GDD = 1500,
PREC = 800
)
res_both
#> # A tibble: 150 × 5
#> age H BA V V2
#> <int> <dbl> <dbl> <dbl> <dbl>
#> 1 1 0.00000000972 3.79e-30 6.49e-37 7.47e-37
#> 2 2 0.000439 1.66e-14 1.72e-17 1.92e-17
#> 3 3 0.0156 2.72e- 9 5.13e-11 5.67e-11
#> 4 4 0.0932 1.10e- 6 8.85e- 8 9.74e- 8
#> 5 5 0.272 4.03e- 5 7.75e- 6 8.50e- 6
#> 6 6 0.556 4.44e- 4 1.53e- 4 1.67e- 4
#> 7 7 0.926 2.47e- 3 1.29e- 3 1.41e- 3
#> 8 8 1.36 8.93e- 3 6.35e- 3 6.94e- 3
#> 9 9 1.83 2.43e- 2 2.20e- 2 2.40e- 2
#> 10 10 2.32 5.41e- 2 5.94e- 2 6.48e- 2
#> # ℹ 140 more rows
# Example 2: Use only the Nat1 model, returning columns: age, H, BA, V
res_nat1 <- Ung2009(
species = "ABIE.BAL",
age = 1:150,
GDD = 1500,
PREC = 800,
model = "Nat1"
)
res_nat1
#> # A tibble: 150 × 4
#> age H BA V
#> <int> <dbl> <dbl> <dbl>
#> 1 1 0.00000000972 3.79e-30 6.49e-37
#> 2 2 0.000439 1.66e-14 1.72e-17
#> 3 3 0.0156 2.72e- 9 5.13e-11
#> 4 4 0.0932 1.10e- 6 8.85e- 8
#> 5 5 0.272 4.03e- 5 7.75e- 6
#> 6 6 0.556 4.44e- 4 1.53e- 4
#> 7 7 0.926 2.47e- 3 1.29e- 3
#> 8 8 1.36 8.93e- 3 6.35e- 3
#> 9 9 1.83 2.43e- 2 2.20e- 2
#> 10 10 2.32 5.41e- 2 5.94e- 2
#> # ℹ 140 more rows
# Example 3: Use only the Nat2 model, returning columns: age, V2
res_nat2 <- Ung2009(
species = "ABIE.BAL",
age = 1:150,
GDD = 1500,
PREC = 800,
model = "Nat2"
)
res_nat2
#> # A tibble: 150 × 2
#> age V2
#> <int> <dbl>
#> 1 1 7.47e-37
#> 2 2 1.92e-17
#> 3 3 5.67e-11
#> 4 4 9.74e- 8
#> 5 5 8.50e- 6
#> 6 6 1.67e- 4
#> 7 7 1.41e- 3
#> 8 8 6.94e- 3
#> 9 9 2.40e- 2
#> 10 10 6.48e- 2
#> # ℹ 140 more rows