skel.plot {dplR} | R Documentation |
Automatically generates a skeleton plot of tree-ring data.
skel.plot(rw.vec, yr.vec = NULL, sname = '', filt.weight = 9, dat.out = FALSE, master=FALSE, plot=TRUE)
rw.vec |
a vector of a tree-ring chronology or series |
yr.vec |
optional vector giving years for the tree-ring data |
sname |
an optional string of less than 8 characters giving the id for the data |
filt.weight |
filter length for the hanning filter, defaults to 9 |
dat.out |
logical flag indicating whether to return a data.frame
containing the data. |
master |
logical flag indicating whether to make the plot with the
segments inverted to ease pattern matching. If TRUE the segments
will be plotted from the top down and the labels on the x axes will be
on the bottom. |
plot |
logical flag indicating whether to make a plot. |
This makes a skeleton plot - a plot that gives the relative growth for year t relative to years t-1 and t+1. Note that this plots is a standard plot in dendrochronology and typically made by hand for visually crossdating series. This type of plot might be confusing to those not accustomed to visual crossdating. See references for more information.
The skeleton plot is made by calculating departures from high frequency
growth for each year by comparing year t to the surrounding three years
(t-1,t,t+1). Low frequency variation is removed using a hanning
filter. Relative growth is scaled from one to ten but only values
greater than three are plotted. This function's primary effect is to
create plot with absolute units that can be printed and compared to other
plots. Here, anomalous growth is plotted on a 2mm grid and up to 120 years
are plotted on a single row with a maximum of 7 rows (840 years). These
plots are designed to be plotted on standard paper using an appropriate
device
, e.g., postscript
with defaults or to pdf
with
plot width and height to accommodate a landscape plot, e.g.,
width = 10, height = 7.5, paper = 'USr'
. These plots are designed to
be printable and cut into strips to align long series. Statistical crossdating
is possible if the data are output.
This function is invoked primarily for its side effect, which is to produce a
plot. If dat.out
is TRUE
then a data.frame
is returned
with the years and height of the skeleton plot segments as columns.
Andy Bunn
Stokes, M.A. and Smiley, T.L. (1968) An Introduction to Tree-Ring Dating. The University of Arizona Press. ISBN-13: 978-0816516803.
Sheppard, P.R. (2002) Crossdating Tree Rings Using Skeleton Plotting. http://www.ltrr.arizona.edu/skeletonplot/introcrossdate.htm
data(co021) x <- co021[,33] x.yrs <- as.numeric(rownames(co021)) x.name <- colnames(co021)[33] # On a raw ring width series - undated skel.plot(x) # On a raw ring width series - dated with names skel.plot(x, yr.vec = x.yrs, sname= x.name, master=TRUE) ## Not run: # try crossdating y <- co021[,11] y.yrs <- as.numeric(rownames(co021)) y.name <- colnames(co021)[11] # send to postscript - 3 pages total postscript('xdating.examp.ps') # 'Master series' with correct celendar dates skel.plot(x, yr.vec = x.yrs, sname= x.name, master=TRUE) # Undated series, try to align with last plot skel.plot(y) # Here's the answer... skel.plot(y, yr.vec = y.yrs, sname= y.name) dev.off() # alternatively send to pdf pdf('xdating.examp.pdf', width = 10, height = 7.5, paper = 'USr') skel.plot(x, yr.vec = x.yrs, sname= x.name, master=TRUE) skel.plot(y) skel.plot(y, yr.vec = y.yrs, sname= y.name) dev.off() ## End(Not run)