caps | R Documentation |
Applies a smoothing spline to y
with rigidity determined
by two parameters: frequency response f
at a wavelength
of nyrs
years.
caps(y, nyrs = 32, f = 0.5)
y |
a |
nyrs |
a number greater than zero, affecting the rigidity of the spline. If |
f |
a number between 0 and 1 giving the frequency response at a wavelength of |
This applies the classic smoothing spline from Cook and Peters (1981). The rigidity of the spline has a frequency response of 50% at a wavelength of nyrs
. The references, of course, have more information.
This function was introduced to dplR
in version 1.7.3 and replaces the now defunct ffcsaps
. Where ffcsaps
was written entirely in R, caps
is a wrapper for a Fortran subroutine from Ed Cook's ARSTAN program that is thousands of times faster.
The default value of nyrs
was changed to 32 from 2/3 length of y
in version 1.7.8 based on a suggestion from Klesse (2021).
Note: caps
returns NA
if there are any NA
values in y
. See examples.
A filtered vector.
Fotran code provided by Ed Cook and adapted for dplR by Andy Bunn.
Cook, E. R. and Kairiukstis, L. A., editors (1990) Methods of Dendrochronology: Applications in the Environmental Sciences. Springer. ISBN-13: 978-0-7923-0586-6.
Cook, E. R. and Peters, K. (1981) The Smoothing Spline: A New Approach to Standardizing Forest Interior Tree-Ring Width Series for Dendroclimatic Studies. Tree-Ring Bulletin, 41, 45-53.
Klesse, S. (2021) Critical Note on the Application of the "Two-Third"" Spline. Dendrochronologia Volume 65: 125786
ads
library(graphics)
library(utils)
## Use first series from the Mesa Verde data set
data(co021)
series <- co021[, 1]
series <- series[!is.na(series)]
plot(series, type = "l", ylab = "Ring Width (mm)", col = "grey")
lines(caps(series, nyrs = 10), col = "red", lwd = 2)
lines(caps(series, nyrs = 100), col = "green", lwd = 2)
# A 2/3 spline, the default, 462.6667 yrs here
lines(caps(series), col = "blue", lwd = 2)
legend("topright",
c("Series", "nyrs=10", "nyrs=100",
paste("Default nyrs (", floor(length(series) * 2/3), ")", sep="")),
fill=c("grey", "red", "green", "blue"))
## Note behavior when NA is encountered and
## take appropriate measures as demonstrated above
y <- c(NA,NA,rnorm(100))
caps(y)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.