Convert multiple ring-width series to basal area increment (i.e., ring area) going from the bark to the pith.
This converts ring-width series (mm) to ring-area series (mm squared)
(aka basal area increments) based on the diameter of the tree and the
width of each ring moving towards the pith of the tree. It is related
bai.in, which calculates each ring area starting from
the inside of the tree and working outward. Both methods assume a
circular cross section (Biondi 1999). See the references below for
data.frame containing the ring areas for each series with
column names, row names and dimensions of
DendroLab website: http://dendrolab.org/
Code by Andy Bunn based on work from DendroLab, University of Nevada Reno, USA. Patched and improved by Mikko Korpela.
Biondi, F. (1999) Comparing tree-ring chronologies and repeated timber inventories as forest monitoring tools. Ecological Applications, 9(1), 216–227.
Biondi, F. and Qeadan, F. (2008) A theory-driven approach to tree-ring standardization: Defining the biological trend from expected basal area increment. Tree-Ring Research, 64(2), 81–96.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
library(graphics) library(utils) ## Not run: library(stats) ## Toy n <- 100 ## Make three fake tree-ring series to show that these funcs work on rwl objects base.series <- 0.75 + exp(-0.2 * 1:n) rwl <- data.frame(x1 = base.series + abs(rnorm(n, 0, 0.05)), x2 = base.series + abs(rnorm(n, 0, 0.05)), x3 = base.series + abs(rnorm(n, 0, 0.05))) ## The inside out method foo <- bai.in(rwl = rwl) ## The outside in method bar <- bai.out(rwl = rwl) ## Identical head(bar) head(foo) ## End(Not run) ## Use gp data data(gp.rwl) data(gp.dbh) ## dbh (minus the bark) from cm to mm gp.dbh2 <- gp.dbh[, 1:2] gp.dbh2[, 2] <- (gp.dbh[, 2] - gp.dbh[, 3]) * 10 bar <- bai.out(rwl = gp.rwl, diam = gp.dbh2) bar.crn <- chron(bar) yrs <- time(bar.crn) plot(yrs, bar.crn[, 1], type = "n", xlab = "Year", ylab = expression(mm^2)) lines(yrs, bar.crn[, 1], col = "grey", lty = "dashed") lines(yrs, ffcsaps(bar.crn[, 1], nyrs = 32), col = "red", lwd = 2)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.