The package `pointRes`

helps to analyze event years,
pointer years and different resilience indices for tree-ring datasets
(e.g., tree-ring width or basal area increment) by offering highly
flexible calculating and plotting functions. The analysis of pointer
years and resilience indices provides quantitative information on growth
responses of trees to extreme events as well as on their ability to
retain growth levels prior to disturbance. In the face of climate
change, with a projected increase in intensity and frequency of extreme
events, such information is highly important.

The package contains functions to calculate and plot event and
pointer years. *Event years* are years with a remarkable growth
increase or decrease at the individual-tree level, whereas the term
*pointer year* refers to years with remarkable growth responses
at the stand level (Schweingruber et al. 1990). To identify event and
pointer years, different methods have been developed. Most established
are methods of the type (i) normalization in a moving window, and (ii)
relative growth change. `pointRes`

contains customizable
functions for both methods, as well as for the methods (iii)
z-transformation of a site chronology and (iv) interval trend. All
functions are illustrated in this vignette.

Further, `pointRes`

contains functions to calculate and
plot measures of tree resilience after Lloret et al. (2011;
i.e. resistance, recovery, (relative) resilience), Thurm et al. (2016;
recovery period, total growth reduction) and Schwarz et al. (2020;
average growth reduction, average recovery rate). *Resistance* is
the ratio between the growth during and before an extreme event,
*recovery* the ratio between the growth after and during an
extreme event, *resilience* the ratio between the growth after
and before an extreme event, and *relative resilience* the
resilience weighted by the growth decrease experienced during an extreme
event. *Recovery period* (or: ‘growth recovery time’) is the time
needed to reach pre-disturbance growth levels again. *Total growth
reduction* reflects the cumulative growth reduction in the year of
disturbance as well as the associated years in the recovery period.
*Average growth reduction* is the total growth reduction divided
by the length of the recovery period. *Average recovery rate* is
the mean percentual recovery over the recovery period.

Detailed information on `pointRes`

can be found on the
help pages of the functions, as well as in Van der Maaten-Theunissen et
al. (2015). Jetschke et al. (2019) may be consulted for more detailed
information on the characteristics and use of pointer-year detection
methods.

Throughout this vignette we will use the data set `s033`

for illustration purposes. The data set comes with the package and
presents tree-ring series for 20 European beech (*Fagus
sylvatica* L.) trees from the forest reserve Schneetal, Bavaria,
Germany (Príncipe et al. 2017).

```
library(pointRes)
data(s033) # the result of s033 <- read.rwl('s033.rwl') - a function of the dplR package
```

The normalization in a moving window method was initially proposed by
Cropper (1979) for skeleton plotting. It produces time series of
so-called Cropper values (C) by normalizing individual tree-ring indices
in a moving window of specified width with each year placed as central
point. Thresholds on these Cropper values, which basically reflect the
number of standard deviations (SD) from the local mean, are used to
identify event years (e.g., |C| > 0.75 SD). In a next step, a
threshold on the percentage of trees showing a negative or positive
event year can be used to define negative or positive pointer years. A
variant of this method, proposed by Neuwirth et al. (2007),
distinguishes three intensity classes for event and pointer years, i.e.,
weak, strong and extreme. In `pointRes`

, the function
`pointer.norm`

facilitates the normalization in a moving
window method, sensu Cropper and sensu Neuwirth. Input data should be
detrended tree-ring series.

```
<- detrend(s033, method = "Spline", nyrs = 30)
detr_s033 <- pointer.norm(detr_s033, period = NULL, window = 13, method.thresh = "Cropper", C.thresh = 0.75, series.thresh = 75, make.plot = FALSE)
pyc <- pointer.norm(detr_s033, period = NULL, window = 13, method.thresh = "Neuwirth", N.thresh = c(1, 1.28, 1.645), series.thresh = 75, make.plot = FALSE) pyn
```

The relative growth change method, also referred to as abrupt growth
change method, relates tree growth in a particular year to the average
growth of a specified number of preceding years (Schweingruber et
al. 1986; 1990). Similar to the normalization in a moving window method,
thresholds on relative growth changes can be set to define event years,
and on a minimum percentage of trees showing an event year to define
pointer years. In `pointRes`

, the function
`pointer.rgc`

facilitates the relative growth change
method.

`<- pointer.rgc(s033, period = NULL, nb.yrs = 4, rgc.thresh.pos = 60, rgc.thresh.neg = 40, series.thresh = 75, make.plot = FALSE) rgc `

This method calculates pointer years by developing and z-transforming
a site chronology. Pointer years are defined over a threshold on the
minimum of standard deviations that the site chronology should deviate
in a particular year. To test whether the z-transformed chronology
significantly differs from the selected threshold value, t-tests can be
performed (robust or non-robust, depending whether or not a biweight
robust mean was used in chronology building). In `pointRes`

,
the function `pointer.zchron`

facilitates the
z-transformation of a site chronology method.

```
<- detrend(s033, method = "Spline", nyrs = 30)
detr_s033 <- pointer.zchron(detr_s033, period = NULL, bi.weight = TRUE, z.thresh = 1, t.Test = FALSE, make.plot = FALSE) pz
```

The function calculates year-to-year growth changes for individual tree-ring series and defines interval trends for (the population of) trees using the pointer interval method according to Schweingruber et al. (1990), which is also extensively described in Jetschke et al. (2019). For each tree and year, the interval trend is defined as 1 if a relative change exceeds a certain positive threshold, as 0 if a relative (negative) change falls below minus that threshold and 0.5 otherwise; defaults to 0%. The interval trend for a population is defined as the average interval trend of the individual trees. A year is considered a negative (or positive) pointer year if the percentage of trees showing a decreasing (or increasing) trend exceeds a threshold (defaults to 95%).The minimum percentual growth change and the minimum percentage of trees that should display a negative (or positive) trend for that year to be considered as pointer year, can be adjusted.

`<- interval.trend(s033, period = NULL, trend.thresh = 0, IT.thresh = 95, make.plot = FALSE) it `

If the argument `make.plot`

in the functions
`pointer.norm`

, `pointer.rgc`

,
`pointer.zchron`

and `interval.trend`

is set
*TRUE*, a plot is created. Depending on the function, a bar plot
displaying mean annual Cropper values (`pointer.norm`

) or
mean annual growth deviations (in percentage; `pointer.rgc`

),
or a line plot displaying z-scores (`pointer.zchron`

) or mean
interval-trend values (`interval.trend`

), is created. Pointer
years are indicated with different symbols and (or) colors For the
`pointer.norm`

method `Neuwirth`

, weak, strong and
extreme pointer years are defined based on the most common event year
class.

```
<- detrend(s033, method = "Spline", nyrs = 30)
detr_s033 <- pointer.norm(detr_s033, method = "Neuwirth", make.plot = TRUE) pyn
```

Besides bar and line plots, dot plots for event years (i.e. for
single trees) and pointer years (for multiple sites) can be created
using the functions `event.plot`

and
`pointer.plot`

, respectively, whereby event-year plots can
only be created with output of the functions `pointer.norm`

and `pointer.rgc`

, given the conceptually different
approaches of `pointer.zchron`

and
`interval.trend`

. An example of a dot plot with event years,
as defined using `pointer.norm`

method `Neuwirth`

,
is provided below.

`event.plot(pyn, period = c(1950, 2007), x.tick.major = 10, x.tick.minor = 5)`

The optional argument `sign`

allows to display only
positive, negative or both positive and negative event/pointer years. A
dot plot comparing negative pointer years detected by different methods
can, for example, be created as follows:

`pointer.plot(list(pyn,pyc,pz,it), sign = "neg", period = c(1950, 2007), labels = c("Neuwirth","Cropper","zChron","IT"))`

```
## Warning in pointer.plot(list(pyn, pyc, pz, it), sign = "neg", period = c(1950, :
## 'list.sites' contains output of multiple functions to calculate pointer years.
## When performing a method comparison, please ignore this warning
```

The resulting warning is just a slight reminder that different
methods of pointer year calculation have been applied to the datasets
considered in `pointer.plot`

.

The function `res.comp`

calculates the resilience indices
after Lloret et al. (2011), Thurm et al. (2016) and Schwarz et
al. (2020). The argument `nb.yrs`

specifies the number of
years for pre- and post-disturbance periods to be considered in
calculating resilience components after Lloret et al. (2011). With
`max.yrs.rec`

the maximum length of the recovery period to be
considered can be defined.

`<- res.comp(s033, nb.yrs = c(4,4), max.yrs.rec = 10) res `

The output of `res.comp`

is a list of matrices for the
various resilience indices.

The function `res.plot`

uses the output of
`res.comp`

to create a box plot for selected resilience
indices. These box plots show the full range of variation for
user-defined years. Box plots are only displayed for years for which
indices are available for at least five tree-ring series, as this is the
number of statistics that a box plot represents in its simplest
form.

`res.plot(res, select.yr = c(1976, 1992, 2003), param = "resist")`

`## Please note that the number of series upon which individual boxplots are based can be queried by calling the component 'nb.series' from the res.comp output. Numbers may deviate between years and indices, depending on tree-specific growth behaviour as well as characteristics inherent to the calculation methods`

When using the `pointRes`

package in your work, we ask you
to cite `pointRes`

and R appropriately. Execute the function
`citation()`

for information on how to cite the package and
R.

`citation()`

```
##
## To cite R in publications use:
##
## R Core Team (2022). R: A language and environment for statistical
## computing. R Foundation for Statistical Computing, Vienna, Austria.
## URL https://www.R-project.org/.
##
## A BibTeX entry for LaTeX users is
##
## @Manual{,
## title = {R: A Language and Environment for Statistical Computing},
## author = {{R Core Team}},
## organization = {R Foundation for Statistical Computing},
## address = {Vienna, Austria},
## year = {2022},
## url = {https://www.R-project.org/},
## }
##
## We have invested a lot of time and effort in creating R, please cite it
## when using it for data analysis. See also 'citation("pkgname")' for
## citing R packages.
```

`citation("pointRes")`

```
##
## To cite pointRes in publications, please use:
##
## van der Maaten-Theunissen M, van der Maaten E, Bouriaud O (2015).
## "pointRes: An R package to analyze pointer years and components of
## resilience." _Dendrochronologia_, *35*, 34-38.
## doi:10.1016/j.dendro.2015.05.006
## <https://doi.org/10.1016/j.dendro.2015.05.006>.
##
## and:
##
## van der Maaten-Theunissen M, Trouillier M, Schwarz J, Skiadaresis G,
## Thurm E, van der Maaten E (2021). "pointRes 2.0: New functions to
## describe tree resilience." _Dendrochronologia_, *70*, 125899.
## doi:10.1016/j.dendro.2021.125899
## <https://doi.org/10.1016/j.dendro.2021.125899>.
##
## If you use the function pointer.zchron or interval.trend, please cite
## the following publication as well:
##
## Jetschke G, van der Maaten E, van der Maaten-Theunissen M (2019).
## "Towards the extremes: A critical analysis of pointer year detection
## methods." _Dendrochronologia_, *53*, 55-62.
## doi:10.1016/j.dendro.2018.11.004
## <https://doi.org/10.1016/j.dendro.2018.11.004>.
##
## To see these entries in BibTeX format, use 'print(<citation>,
## bibtex=TRUE)', 'toBibtex(.)', or set
## 'options(citation.bibtex.max=999)'.
```

Cropper, J.P. (1979) Tree-ring skeleton plotting by computer.
*Tree-ring bulletin* **39**: 47–59.

Jetschke, G., van der Maaten, E. and van der Maaten-Theunissen, M.
(2019) Towards the extremes: a critical analysis of pointer year
detection methods. *Dendrochronologia* **53**:
55-62.

Lloret, F., Keeling, E. and Sala, A. (2011) Components of tree
resilience: effects of successive low-growth episodes in old ponderosa
pine forests. *Oikos* **120**: 1909–1920.

Neuwirth, B., Schweingruber, F. and Winiger, M. (2007) Spatial
patterns of central European pointer years from 1901-1971.
*Dendrochronologia* **24**: 79–89.

Príncipe, A., van der Maaten, E., van der Maaten-Theunissen, M.,
Struwe, T., Wilmking, M. and Kreyling, J. (2017) Low resistance but high
resilience in growth of a major deciduous forest tree (*Fagus
sylvatica* L.) in response to late spring frost in southern Germany.
*Trees* **31**: 743–751.

Schwarz, J., Skiadaresis, G., Kohler, M., Kunz, J., Schnabel, F.,
Vitali, V. and Bauhus, J. (2020) Quantifying growth responses of trees
to drought — a critique of commonly used resilience indices and
recommendations for future studies. *Current Forestry Reports*
**6**: 185–200.

Schweingruber, F., Albrecht, H., Beck, M. et al. (1986) Abrupte
Zuwachsschwankungen in Jahrringabfolgen als ökologische Indikatoren.
*Dendrochronologia* **4**: 125–183.

Schweingruber, F., Eckstein D., Serre-Bachet, F. and Bräker, U.
(1990) Identification, presentation and interpretation of event years
and pointer years in dendrochronology. *Dendrochronologia*
**8**: 9–38.

Thurm, E.A., Uhl, E. and Pretzsch, H. (2016) Mixture reduces climate
sensitivity of Douglas-fir stem growth. *Forest Ecology and
Management* **376**: 205–220.

van der Maaten-Theunissen, M., van der Maaten, E. and Bouriaud, O.
(2015) pointRes: An R package to analyze pointer years and components of
resilience. *Dendrochronologia* **35**: 34–38.