CTFS.biomass {CTFS}R Documentation

Overview of Analysis of the Biomass Dynamics of Tropical Tree Populations

Description

Provides an overview for the analysis of biomass and change in biomass for trees. This overview includes functions that are available, supporting functions and ways for using the options of the main functions.

Above ground biomass (AGB) is computed on the tagged tree from a census file and from the sum of any multiple stems of the tagged tree that exist. Biomass is computed using the specific wood gravity, where available, for each species. The census and multi-stems datasets are used for these analyses. If the multi-stem datasets do not exist, biomass is computed only from the main dbh of the tagged tree.

Details

FUNCTIONS USED TO COMPUTE BIOMASS

biomass
Main function that controls the options for computation and calls all the remaining described here.
pick.dbh
Determines which dbh to use when gorowth is not good.
getwsg.vct
Create a vector of wood specific gravities for given species.
agb.ind
Computes above ground biomass (AGB) for each individual which is the sum of the AGB for all recorded stems of the individual.
agb.mult
Computes above ground biomass for multiple stems which is then added to agb.ind.
gr.raw
Computes growth of individual main stem for the purpose of determining if a recorded dbh is reliable.
badgrowth.tree
Creates a file of trees for which a dbh was estimated because the growth rate was outside provided limits, tree was too large to be a recruit or DBH values were missing when the status equals “A” indicating the tree should have been measured.

Computation of Biomass

The biomass for individual trees is computed by biomass using the DBH and wood specific gravity (wsg) in the form of models from Table 4 as published in Chave, J. et.al.(2005). Tree allometry and improved estimation of carbon stocks and balance in tropical forests. Oecologia. 145. pg 87.

biomass(census1, census2, multfile1 = NULL, multfile2 = NULL, wsgfile = NULL, 
        forest = NULL, badgrowth = "meangrowth", dbhuse = "second", 
        trim = c(-5, 75), recsize = 75, rounddown = FALSE)

The quality of the estimated biomass is strongly dependent upon the reliability of the measured DBH. Evaluating the reliability of the measured DBH is done in two ways. For trees that are listed as alive in both censuses without broken stems or changes in point of measurement, the DBH increment (growth rate) between two censuses for each tree is computed. If the growth rate for an individual tree is outside the range provided by trim, then the unreliable DBH is estimated for that census using the method determined by the values of badgrowth, dbhuse, trim (see below). A second form of unreliable DBH is found in trees that are very large when first measured as recruits which suggests that they may in fact have been missed in a previous census. The parameter recsize can be specfied by the user. Only trees that are recruits to the second census in the computation are checked against this parameter value. If they are larger or equal to the value of recsize then their DBH in the first census is estimated using the mean growth rate of their DBH class and their status is changed to “A” for the first census. These trees are therefore no longer considered recruits. recsize is arbitrarily set equal to 110 mm which means a tree would have had to grow at least from 10 to 110 mm in the typical 5 year intercensus interval or 20 mm per year. At BCI, 89% of the species had average annual growth rate less than this between the 1990 and 1995 census.

Missing DBHs for trees with status values of “A” as also estimated by either adding or substracting the mean DBH increment for their DBH class depending on which census the DBH is missing.

After any estimates of DBH are completed, the AGB is computed for the main stem and any multiple stems as provided by multfile1, multfile2 using the wood specific gravity as provided by wsgfile. The above ground biomass (AGB) of the main stem and the multiple stems for a each tree are summed resulting in the total AGB for that tree. The function biomass returns of dataframe of the same length as the input census files (census1, census2) with the tree tag and the values of AGB for the main stem, the sum of the multiple stems, the total of for the tree for each census.

The usual mode is to provide 2 censuses (see below for computing biomass when only one census is available).

Diagnosing Unreliable AGB values
The user should first run badgrowth.tree to obtain a dataframe of trees with unreliable DBHs. Details of how these are computes is given below. The DBH measurements of these trees should be inspected carefully to determine if there is an error in the census data file or if the DBH is simply missing or unreliable. Actual errors in the census data should be corrected IN THE CENSUS DATA FILE. Then the biomass can be computed using this corrected data set and trees with unreliable, not simply improperly recorded, DBHs can be estimated for the purpose of AGB computations. The user can rerun badgrowth.tree to retain a list of trees for which DBH was estimated. The errtype provides the justification for DBH estimation. Remember to record the other parameter values so that the form of DBH estimation is known.

Computing Growth
An unreliable DBH can be estimated only if a growth rate can be computed. If the point of measurement (POM) of a tree has changed between censuses, then the growth rate cannot be computed and no DBH estimation is done. If one of the DBH is not available (recruit, mortality, missing information), the growth rate cannot be computed and no DBH estimation is done.

Growth Outside Acceptable Range
For high growth rates, any growth rate that exceeds the maximum provided by trim is considered unreliable. The function trim.growth is used to identify unreliable low growth rates (usually large negative values). The determination of an unreliable growth is based on a linear model estimating the standard deviation of DBH measurements (due to error based on repeated measures of the same trees at BCI); the parameters slope and intercept define the linear relationship between this error deviation and DBH. Any case where the second DBH measure is more than 4 standard deviations below the first the growth rate is considered too low and one of the DBHs is unreliable. The default values of slope and intercept are based on DBH remeasure tests done in both 1995 and 2000 at BCI. A line was fitted through the absolute DBH errors as a function of DBH in both years; the average slope and intercept is used here. The overall affect is that reliable growth rates are allowed to be more negative for larger trees than for smaller trees. The minimum value set in trim is used for estimating a DBH that has been determined to be unreliable using one of the options for badgrowth (see below).

Determining the Reliable DBH
The value of dbhuse sets the reliable DBH from which the unreliable DBH will be computed. Values can be first or second which refer to the census files being used.

Form of Estimation of Unreliable DBH
There are four forms of estimation which are controlled by badgrowth:
keep
Do not estimate DBH, retain DBH exactly as provided in the census files and proceed with AGB based on this DBH.
nogrowth
Estimate unreliable DBH by setting it equal to the reliable DBH. This results in the tree having no growth.
meangrowth
Estimate the unreliable DBH by substracting (or adding) the mean growth of trees of similar DBH from/to the reliable DBH. The mean growth of DBH classes is determined internally in the biomass function using the trees provided by the census files. The DBH classes used are finely divided for small trees and more grossly so for larger trees. The DBH classes are: 10, 20, 50, 100, 200, 300, 400, 500, 600, 700+).
trim
Estimate the unreliable DBH by substracting (or adding) the maximum or minimum value of trim, as appropriate, to the reliable DBH. The maximum value is in mm per year. The minimum value is the number of standard deviations See trim.growth for complete details.

Examples of Parameter Settings

Example 1:

trim(-5,75), dbhuse=second, badgrowth=meangrowth

Trees with a growth rate of > 75 mm per year and for which the second dbh measure is more than 4 standard deviations below the first will have the first dbh estimated based on the mean growth rate of the trees in the dbh class determined by the second dbh. The mean growth rate for that dbh class will be subtracted from the second dbh to compute the first dbh. This estimated dbh will be used to compute all values of AGB for the first census. This is usually the preferred method of estimation with some variation among sites in the acceptable maximum growth rate set by trim.

Example 2:

trim(-5,75), dbhuse=first, badgrowth=trim

Trees with a growth rate of > 75 mm per year and for which the second dbh measure is more than 4 standard deviations below the first will have the second dbh estimated based on the minimum and maximum growth values in trim using the first dbh as the reliable dbh. The trees with the second dbh less than the first will have the second dbh computed as the first dbh plus (-5). The trees with their second dbh greater than the first will have the second dbh computed as the first dbh pluse (75). This way growth rates will not exceed the values set by trim.

Diagnostics for DBH and Biomass Estimation

Listing estimated DBHs
Trees for dbhs have been estimated can be idenfitied by using badgrowth.tree. Set the parameters of this function exactly as used for biomass. The trees that had a dbh estimated in the manner determined by the parameter settings will be listed in a dataframe. The initial dbhs and growth rate and the estimated dbhs and growth rate will be provided, as well as all the other values from the census1, census2 data files.

Visualizing computed AGB
The AGB for quadrates or hectares can be computed and visualized using image. See example below for visualization the AGB (in tons) for quadrates.

Author(s)

Pamela Hall and Jerome Chave

References

Chave, J. et.al.(2005). Tree allometry and improved estimation of carbon stocks and balance in tropical forests. Oecologia. 145. pg 87

See Also

CTFS.growth

Examples

## Not run: 
plotdim=c(1000,500)
gridsize=20
bci.agb <- biomass(bci90.full,bci95.full,mult1=bci90.mult,mult2=bci95.mult,wsgfile=wsg.ctfs,forest="moist")
bciquad.vct <- gxgy.to.index(bci90.full$gx,bci90.full$gy)
bciquad.agbt1 <- tapply(bci.agb$AGBt1,bciquad.vct,sum,na.rm=TRUE)/1000
x=seq(gridsize/2,plotdim[1]-gridsize/2,gridsize)
y=seq(gridsize/2,plotdim[2]-gridsize/2,gridsize)
agbt1.mat=matrix(bciquad.agbt1,nrow=length(x),ncol=length(y),byrow=TRUE)
image(x,y,z=agbt1.mat,col=topo.colors(6),xlab='AGB 1990 (tons)',xlim=c(0,plotdim[1]),ylim=c(0,plotdim[2]))
## End(Not run)

[Package CTFS version 1.00 Index]