cms {dplR}R Documentation

C-Method Standardization


Detrend multiple ring-width series simultaneously using the C-method.


cms(rwl, po, c.hat.t = FALSE, c.hat.i = FALSE)



a data.frame with series as columns and years as rows such as that produced by read.rwl


a data.frame containing two variables. Variable one (series in the example below) gives the series ID as either characters or factors. These must exactly match colnames(rwl). Variable two (pith.offset in the example below) must be integral values and give the years from the beginning of the core to the pith (or center) of the tree.


a logical indicating whether to export the C-curves for each tree by biological age.


a logical indicating whether to export the expected ring widths for each series.


This method detrends and standardizes tree-ring series by calculating a growth curve based on constant annual basal area increment. The method is based on the “assumption that constant growth is expressed by a constant basal area increment distributed over a growing surface” (Biondi and Qeadan 2008). The detrending is the estimation and removal of the tree’s natural biological growth trend. The standardization is done by dividing each series by the growth trend to produce units in the dimensionless ring-width index (RWI).

This attempts to remove the low frequency variability that is due to biological or stand effects.

See the reference below for further details.


A data.frame containing the dimensionless and detrended ring-width indices with column names, row names and dimensions of rwl if c.hat.t is FALSE and c.hat.i is FALSE.

Otherwise a list of length 2 or 3 containing the RWI data.frame, a data.frame containing the C-curves for each tree (c.hat.t), and/or a vector containing the C-values for each tree (c.hat.i) depending on the output flags. See Eq. 12 in Biondi and Qeadan (2008) for more detail on c.hat.t, and c.hat.i.


DendroLab website:


Code provided by DendroLab based on programming by F. Qeadan and F. Biondi, University of Nevada Reno, USA and adapted for dplR by Andy Bunn. Patched and improved by Mikko Korpela.


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.

See Also

detrend, chron, rcs


gp.rwi <- cms(rwl = gp.rwl, po = gp.po)
gp.crn <- chron(gp.rwi)
crn.plot(gp.crn, add.spline = TRUE)
## c.hat
gp.rwi <- cms(rwl = gp.rwl, po = gp.po, c.hat.t = TRUE, c.hat.i = TRUE)
dotchart(gp.rwi$c.hat.i, ylab = "Series", xlab = expression(hat(c)[i]))
tmp <- gp.rwi$c.hat.t
plot(tmp[, 1], type = "n", ylim = range(tmp, na.rm = TRUE),
     xlab = "Cambial Age", ylab = expression(hat(c)[t]))
apply(tmp, 2, lines)

[Package dplR version 1.7.6 Index]