MyNixOS website logo
Description

Age Band Decomposition Method for Tree Ring Standardization.

Implements the Age Band Decomposition (ABD) method for standardizing tree ring width data while preserving both low and high frequency variability. Unlike traditional detrending approaches that can distort long term growth trends, ABD decomposes ring width series into multiple age classes, detrends each class separately, and then recombines them to create standardized chronologies. This approach improves the detection of growth signals linked to past climatic and environmental factors, making it particularly valuable for dendroecological and dendroclimatological studies. The package provides functions to perform ABD-based standardization, compare results with other common methods (e.g., BAI, C method, RCS), and facilitate the interpretation of growth patterns under current and future climate variability.

AgeBandDecomposition

=======

Authors:Nicola Puletti, Gianluigi mazza
License:GPL3

AgeBandDecomposition provides tools for tree-ring standardization based on the Age Band Decomposition (ABD) method, for tree ring width standardization.

Installation

Install the stable version from CRAN:

install.packages("AgeBandDecomposition")

or the development version from this GitLab page:

# install.packages("devtools")
remotes::install_git("https://gitlab.com/Puletti/agebanddecomposition_rpackage")

Package Workflow

Illustrative example

The package AgeBandDecomposition includes an example dataset of 21 tree-ring width series of silver fir (Abies alba Mill.) spanning from 1830 to 2021 and located in the Italian Apennine core range (~ 1450 m a.s.l.), in the cool and moist oromediterranean belt with optimal growing conditions for the species.

This example starts with downloading the files named "TRW_example.rwl" and "pith.offset.txt", from the GitLab page of the package (see the folder "/main/studio/dati/"). For semplicity copy and paste these lines:

# Download example files from the package's GitLab page
package_gitlab_site <- 'https://gitlab.com/Puletti/agebanddecomposition_rpackage'
rwl_url <- "/-/raw/main/studio/dati/TRW_example.rwl"
po_url <- "/-/raw/main/studio/dati/pith.offset.txt"

# Create temporary files
tmpfile_rwl <- tempfile(fileext = ".rwl")
tmpfile_po <- tempfile(fileext = ".txt")

# Download the files
download.file(paste0(package_gitlab_site, rwl_url),
              tmpfile_rwl,
              mode = "wb")

download.file(paste0(package_gitlab_site, po_url),
              tmpfile_po,
              mode = "wb")

# Import the data
inData <- import_rwl(rwl_path = tmpfile_rwl,
                             po_path = tmpfile_po,
                             ageBands = '1010',
                             first_age_class = NULL,
                             zero_as_na = TRUE,
                             verbose = TRUE)

# View the result
inData

The object inData can be initially used to plot the mean chronologies of raw tree-ring widths (mm) and raw basal area increments (cm²), including their standard errors, alongside the corresponding number of trees, using the two following functions:

plotTRW(inData)

and

plotBAI(inData)

Standardization (optional exploration)

Tree-ring width values can be standardized using the stdTRW() function, which removes the influences of local site characteristics by dividing each tree-ring width by the mean width of that series. This function is useful for exploratory analysis or custom workflows:

# Optional: explore standardized TRW values
stdTRW_df <- stdTRW(inData[[1]])

# Calculate yearly averaged standardized TRW values
stdTRW_summary <- stdTRW_df |>
  dplyr::group_by(year) |>
  dplyr::summarise(
    N_trees = dplyr::n(),
    mean_stdTRW = mean(stdTRW, na.rm = TRUE)
  )

Note: The ABD() function (see below) performs standardization internally, so this step is not required for the ABD decomposition workflow.

Age Band Decomposition Analysis

The core function ABD() performs the Age Band Decomposition analysis, which removes age-related growth trends to isolate climate signals.

# ABD uses inData directly (standardization is done internally)
ABD_result <- ABD(inData, min_nTrees_year = 1)

# Export as .csv file
write.csv(ABD_result, file = 'your/path/file.csv')

The plotABD() function provides a comprehensive visualization of the results:

# Perform ABD analysis and visualize results
plotABD(inData, min_nTrees_year = 1)

The resulting multi-panel plot displays:

  • Left panel: Standardized tree-ring widths grouped by age bands (e.g., 1-10, 11-20, 21-30 years)

  • Top-right panel: Final ABD chronology with standard error bands, representing growth corrected for age effects

  • Bottom-right panel: Number of trees contributing to each year

Key parameters:

  • min_nTrees_year: Minimum number of trees required per year within each age class (default: 3)

  • pct_stdTRW_th: Minimum proportion of data required within an age band (default: 0.5 = 50%)

  • pct_Trees_th: Threshold for calculating mean values (default: 0.3; increase to 0.5 for small samples <20 trees)

Metadata

Version

2.0.0

License

Unknown

Platforms (78)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    uefi
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-freebsd
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64-uefi
  • aarch64-windows
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-linux
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-uefi
  • x86_64-windows