StemAnalysis R package is a tool for designed to reconstruct stem growth profiles, construct height-diameter relationships, and consequently to compute growth trends in terms of diameter at breast height (DBH), tree height, stem volume, tree biomass and carbon. This vignette provides an overview of this package functions and options. We provide a working examples that demonstrates the basic functionality and use of the package.
Accurate information about age dynamics of timber production and carbon storage in forest ecosystems is frequently required by scientists, stakeholders, and policymakers. Stem analysis is a technique for measuring tree growth (Salas-Eljatib, 2021). The computational burden of reconstructing temporal, radial, and longitudinal patterns of tree growth, fitting height-diameter relationships, and calculating diameter with bark from radial annual-ring increment sequences measured on multiple cross-sectional discs, may present a hindrance to application of stem analysis methodology in forest research investigations and operational forest multifunctional management (Newton, 2019). Therefore, a standardized tool, StemAnalysis R package, is developed to calculate tree growth dynamics and then make the stem analysis technique more conveniently applied to forest multifunctional investigation.
install.packages("StemAnalysis")
require(StemAnalysis)
require(knitr) # To input tables in this document
Stem analysis data, including stem height (m), age (year), diameter (with and without bark) as well as inner ring diameter (cm) of the ith disc with sequences from the ground to the tip ordered by increasing height, are required inputs.
data(stemdata)
str(stemdata)
#> 'data.frame': 97 obs. of 18 variables:
#> $ No : int 1 2 3 4 5 6 7 8 9 10 ...
#> $ Treeno : int 1 1 1 1 1 1 1 1 1 1 ...
#> $ TreeTH : num 9 9 9 9 9 9 9 9 9 9 ...
#> $ stemheight: num 0 0.5 1.3 1.5 2.5 3.5 4.5 5.5 6.5 7.5 ...
#> $ stemage : int 7 6 5 5 4 4 3 3 2 2 ...
#> $ Dwithbark : num 13.6 11.2 10 10 8.8 7.9 6.5 5.8 4.4 3.1 ...
#> $ Dnobark0 : num 12.3 10.5 9.6 9.3 8.2 7.4 6 5.2 4 2.8 ...
#> $ Dnobark1 : num 11.1 9.1 8 7.8 6.7 5.7 4.5 3.6 2.1 0.7 ...
#> $ Dnobark2 : num 8.3 7.1 6.1 5.8 4.6 3.4 2.2 1.4 0 0 ...
#> $ Dnobark3 : num 6.4 5.4 4.4 3.9 2.4 1.2 0 0 0 0 ...
#> $ Dnobark4 : num 3.7 2.8 1.7 1.4 0 0 0 0 0 0 ...
#> $ Dnobark5 : num 1.2 0.6 0 0 0 0 0 0 0 0 ...
#> $ Dnobark6 : num 0.4 0 0 0 0 0 0 0 0 0 ...
#> $ Dnobark7 : num 0 0 0 0 0 0 0 0 0 0 ...
#> $ Dnobark8 : num 0 0 0 0 0 0 0 0 0 0 ...
#> $ Dnobark9 : num 0 0 0 0 0 0 0 0 0 0 ...
#> $ Dnobark10 : num 0 0 0 0 0 0 0 0 0 0 ...
#> $ Dnobark11 : int 0 0 0 0 0 0 0 0 0 0 ...
Tree biomass estimated using allometric models [ln(Bi)=βi0+βi1×ln(DBH^2H)] (Xiang et al., 2021). The Parameter data, including parameters a (βi0), b (βi1), and C concentration for each tissues, are optional inputs.
data(parameterdata)
str(parameterdata)
#> 'data.frame': 5 obs. of 4 variables:
#> $ tissues : chr "stem" "branch" "leaf" "root" ...
#> $ a : num -4.29 -6.84 -4.5 -3.43 NA
#> $ b : num 1.006 1.028 0.697 0.705 NA
#> $ Cconcentration: num 0.5 0.5 0.5 0.5 0.5
Total tree biomass estimated using volume model [VWDBEF*(1+R)] (IPCC, 2003). The biomass expansion factor data, including wood density (WD), biomass expansion factor (BEF), root:shoot ratio (R), and C concentration, are optional inputs.
data(BEFdata)
str(BEFdata)
#> 'data.frame': 1 obs. of 4 variables:
#> $ WD : num 0.32
#> $ BEF : num 1.49
#> $ R : num 0.247
#> $ Cconcentration: num 0.5
Reconstructed stem growth patterns and calculated DBH and tree height growth trends, and stem volume with bark increment trends using stem analysis data.
stemgrowth <- stemanalysism(xtree = 8, stemgrowth = TRUE, stemdata = stemdata)
knitr::kable(stemgrowth)
|
If set ‘treecarbon = TRUE’ and provide parameter data, tree biomass and carbon accumulation estimated by allometric models.
allomcarbon <- stemanalysism(xtree = 8, treecarbon = TRUE, stemdata = stemdata, parameterdata = parameterdata)
knitr::kable(allomcarbon)
|
|
If set ‘treecarbon = TRUE’ and provide biomass expansion factor data, tree biomass and carbon accumulation estimated by volume model.
volumecarbon <- stemanalysism(xtree = 8, treecarbon = TRUE, stemdata = stemdata, BEFdata = BEFdata)
knitr::kable(volumecarbon)
|
|
If set ‘HDmodel = TRUE’, tree height-diameter relationship will be constructed by nonlinear models, and showed the best fit model in a graph.
stemgrowth <- stemanalysism(xtree = 8, HDmodel = TRUE, stemdata = stemdata)
IPCC. (2003) Good Practice Guidance for Land Use, Land-Use Change and Forestry; IPCC/IGES: Hayama, Japan.
Newton, P.F. (2019) Examining naturogenic processes and anthropogenic influences on tree growth and development via stem analysis: data processing and computational analytics. Forests 10, 1058.
Salas-Eljatib, C. (2021) A new algorithm for reconstructing the height growth with stem analysis data. Methods Ecol. Evol. 12, 2008–2016.
Xiang, W.H., Li, L.H., Ouyang, S., Xiao, W.F., Zeng, L.X., Chen, L., Lei, P.F., Deng, X.W., Zeng, Y.L., Fang, J.P. & Forrester, D.I. (2021) Effects of stand age on tree biomass partitioning and allometric equations in Chinese fir (Cunninghamia lanceolata) plantations. Eur. J. For. Res. 140, 317–332.