AGB: Estimate the above-ground biomass

View source: R/AGB.R

AGBR Documentation

Estimate the above-ground biomass

Description

Estimate the above-ground biomass (AGB), carbon (C) and CO_2 equivalent (CO_2e) of trees.

Usage

AGB(
  x,
  measure.label,
  h,
  taxon = "taxon",
  dead = "dead",
  circumference = TRUE,
  su = "quadrat",
  area,
  coord,
  rm.dead = TRUE,
  check.spelling = FALSE,
  correct.taxon = TRUE,
  sort = TRUE,
  decreasing = TRUE,
  cache = FALSE,
  long = FALSE
)

Arguments

x

A data.frame with the community sample data. See Details.

measure.label

Name of the column with circumference/diameter at breast height (cm).

h

Name of the column with tree height (m). If omitted in x, height is estimated from coord.

taxon

Name of the column with sampled taxon names. Default "taxon". Use UTF-8; accents and special characters are not allowed.

dead

String used to identify dead individuals. Default "dead".

circumference

Logical; if TRUE (default), CBH is assumed; otherwise DBH is assumed.

su

Name of the column with sample-unit identifiers. Default "quadrat".

area

Numeric scalar: total sampled area (ha).

coord

A vector c(longitude, latitude) or a two-column matrix/data.frame of site coordinates (decimal degrees). Required when h is missing in x.

rm.dead

Logical; if TRUE (default) dead individuals are removed prior to biomass calculation.

check.spelling

Logical; if TRUE, near-matching taxon names are flagged for correction. Default FALSE.

correct.taxon

Logical; if TRUE (default) taxon names are standardized via TNRS.

sort

Logical; if TRUE (default) taxa are sorted by AGB.

decreasing

Logical; if TRUE (default) sorting is in decreasing order.

cache

Logical or NULL; if TRUE the function with write and use a cache to reduce online search of taxa names. (NULL means use cache but clear it first). Default is cache = FALSE.

long

Logical; if FALSE (default) the $tree component is omitted (see Value).

Details

AGB is a wrapper around BIOMASS functions getWoodDensity, computeAGB, and correctTaxo (Rejou-Mechain et al., 2017). Tree biomasses are computed using the allometric model of Chave et al. (2014).

It is expected that taxon names are binomials (genus and species). The function splits the taxon string into two columns (genus, species) to retrieve wood density. Single-word taxa (e.g., Indet, Dead) receive species = NA.

Wood density (g/cm^3) is obtained from a global database (~16,500 species). If a species is missing, the genus mean is used; if the genus is missing, the sample-unit (su) mean is used.

The input x must include columns for sample-unit labels, taxon names, CBH/DBH, and optionally height. If height is absent, coord is mandatory to allow height estimation.

The CBH/DBH column allows multi-stem notation such as "17.1+8+5.7+6.8". The plus sign separates stems; decimal separators can be points or commas; spaces around "+" are ignored. Column names in x are coerced to lower case at runtime, making the function case-insensitive.

Measurement units: CBH/DBH in centimeters; height in meters.

Value

An object of class "biomass" with up to four components:

  • $tree: individual records (taxon, wood density wd, assignment level, AGB, C, CO2e);

  • $taxon: AGB, C, and CO_2e per taxon (Mg per ha);

  • $total: total AGB, C, and CO_2e per ha;

  • $WD.level: percentage of wood-density assignments at species, genus, and sample-unit levels.

References

Boyle, B. et al. (2013) BMC Bioinformatics 14:16.
Chave, J. et al. (2014) Global Change Biology 20(10):3177–3190.
Rejou-Mechain, M. et al. (2017) Methods in Ecology and Evolution 8:1163–1167.
Zanne, A.E. et al. (2009) Global wood density database. Dryad.

See Also

BIOMASS (getWoodDensity, computeAGB, correctTaxo)

Examples

data <- quadrat.df
head(data)

resul1 <- AGB(
  data, measure.label = "CBH", h = "h", taxon = "Species", dead = "Morta",
  circumference = TRUE, su = "Plot", area = 0.0625, rm.dead = TRUE,
  check.spelling = FALSE, correct.taxon = TRUE, sort = TRUE,
  decreasing = TRUE, long = TRUE
)
head(resul1$tree)
resul1$taxon
resul1$total
resul1$WD.level

quadrat.default <- quadrat.df
colnames(quadrat.default) <- c("quadrat", "family", "taxon", "cbh", "h")

Resul2 <- AGB(x = quadrat.default, measure.label = "cbh",
              circumference = TRUE, h = "h", dead = "Morta", area = 0.0625)
head(Resul2$tree)
Resul2$taxon
Resul2$total
Resul2$WD.level
## Not run: 
Resul3 <- AGB(data, measure.label = "CBH", taxon = "Species", dead = "Morta",
              circumference = TRUE, su = "Plot", area = 0.0625,
              coord = c(-47.85, -21.17))
Resul3$taxon
Resul3$total
Resul3$WD.level

## End(Not run)


PhytoIn documentation built on Nov. 5, 2025, 5:47 p.m.