Skip to contents

Full error processing

Usage

FullErrorProcessing(
  Data,
  DeathConfirmation = 2,
  UseSize = FALSE,
  AddRowsForForgottenCensuses = TRUE,
  UseTaperCorrection = TRUE,
  DefaultHOM = 1.3,
  TaperParameter = function(DAB, HOM) 0.156 - 0.023 * log(DAB) - 0.021 * log(HOM),
  TaperFormula = function(DAB, HOM, TaperParameter, DefaultHOM) DAB/(exp(-TaperParameter
    * (HOM - DefaultHOM))),
  KeepMeas = c("MaxHOM", "MaxDate"),
  PositiveGrowthThreshold = 5,
  NegativeGrowthThreshold = -2,
  Pioneers = NULL,
  PioneersGrowthThreshold = 7.5,
  WhatToCorrect = c("POM change", "Abnormal growth"),
  CorrectionType = c("individual", "phylogenetic hierarchical"),
  DBHRange = 10,
  MinIndividualNbr = 5,
  MinDBH = NULL,
  AddMissedRecruits = T,
  AddMissedStems = T,
  DBHCorForDeadTrees = TRUE,
  coef = 0.9,
  OnlyDetectMissedRecruits = FALSE
)

Arguments

Data

Dataset (data.frame or data.table)

DeathConfirmation

Number of times (censuses) needed for an unseen tree to be considered dead (numeric) (Default = 2 censuses)

UseSize

Use the size presence (> min DBH) as a witness of the living status of the tree (logical) (Default = FALSE)

AddRowsForForgottenCensuses

TRUE: adds rows for forgotten censuses, FALSE: does not add any rows (logical).

UseTaperCorrection

(logical) TRUE: transform the tree diameter measured at a given height into the diameter corresponding to the default measurement height (DefaultHOM), using an allometry. FALSE: do not apply a taper correction

DefaultHOM

Default Height Of Measurement in meter (Default: 1.3 m) (numeric, 1 value)

TaperParameter

Taper parameter (unitless) formula (function) Default: TaperParameter = 0.156 - 0.023 log(DAB) - 0.021 log(HOM) of Cushman et al.2021. With:

  • DAB: Diameter Above Buttress (in cm)

  • HOM: Height Of Measurement (in m)

TaperFormula

Taper formula (function) Default: DAB / (e^(- TaperParameter (HOM - DefaultHOM))) of Cushman et al.2021. With:

  • DAB: Diameter Above Buttress (in cm)

  • HOM: Height Of Measurement (in m)

  • DefaultHOM: Default Height Of Measurement (in m)

  • TaperParameter: Taper parameter (unitless)

KeepMeas

In case of multiple diameter measurements in the same census year: Possible values: "MaxHOM", "MaxDate" (character).

  • "MaxHOM": apply the correction to the measurement taken at the highest POM

  • "MaxDate": apply the correction to the most recent measurement (same year but more recent date)

PositiveGrowthThreshold

in cm/year: a tree widening by more than this value is considered abnormal (numeric, 1 value)

NegativeGrowthThreshold

in cm/census: the possible positive measurement error (+n) cannot be corrected until the growth appears abnormal, but a negative measurement error can be allowed until -n (a tree does not decrease). Thus the positive measurement error (+n) is "compensated". (numeric, 1 value)

Pioneers

Scientific names of the pioneer species of the site, as in the ScientificName_DataHarmonizationCor column (characters vector)

PioneersGrowthThreshold

in cm/year: a tree of a pioneer species that widens by more than this value is considered abnormal (numeric, 1 value)

WhatToCorrect

Possible values: "POM change", "Abnormal growth" (character). All are complementary and recommended.

  • "POM change": detect POM change in the column POM and correct the Diameter values from it. (Ignored if taper correction is applied)

  • "Abnormal growth": detect if the growth is greater than PositiveGrowthThreshold ('PioneersGrowthThreshold' if species belongs to 'Pioneers') or smaller than NegativeGrowthThreshold and correct it by CorrectionType

CorrectionType

Possible values: "individual", "phylogenetic hierarchical" (character, 1 value).

  • "individual": replace abnormal growth by interpolation from the individual values.

  • "phylogenetic hierarchical": replace abnormal growth with the average growth of other trees in the dataset, at the specific, genus, family or stand level, within a DBH range of x cm (DBHRange argument). If the number of these trees < n (MinIndividualNbr argument) at the specific level, we switch to the genus level etc.

DBHRange

DBH range in cm to take into account to select other trees in the dataset to apply "phylogenetic hierarchical" correction (Default: 10 cm) (numeric, 1 value)

MinIndividualNbr

Minimum number of individuals to take into account in "phylogenetic hierarchical" correction (Default: 5) (numeric, 1 value)

MinDBH

Minimum diameter of trees inventoried (in cm) (numeric, 1 value) or NULL (Default) if you wish to use the MinDBH indicated in your data, which may vary per plot

AddMissedRecruits

(logical) TRUE: adds rows for stem that were supposed to be recruited at a prior census, based on their estimated diameter (from linear regression) and MinDBH. FALSE: will only indicate in the comment that the stem was supposed to be recruited earlier.

AddMissedStems

(logical) if TRUE, adds rows for trees that were missed between two censuses, with their estimated diameter (based on linear regression)

DBHCorForDeadTrees

(logical) TRUE: return DBHCor also for dead trees. FALSE: do not return DBHCor for dead trees. In this case it is advisable to have corrected the tree life status with the StatusCorrection() function.

coef

(numeric, 1 value) This is used in individual corrections, to calculate weight of the growths by temporal proximity

OnlyDetectMissedRecruits

TRUE: Only detect errors, FALSE: detect and correct errors (logical)

Value

The original dataset (data.table) with a Comment column containing information on the errors detected per row, the correction columns, and columns containing correction methods.

Details

Detect errors or detect and correct errors:

  • Check general errors (GeneralErrorsDetection)

  • Check botanical identification (BotanicalCorrection)

  • Check the life status evolution of the trees/stems (StatusCorrection)

  • Apply a taper allometry on diameters measured at heights different from the default HOM (TaperCorrection)

  • Check diameter evolution of the trees (DiameterCorrection)

  • Check tree/stem recruitment (RecruitmentCorrection)

Examples


if (FALSE) {
data(TestData)
Rslt <- FullErrorProcessing(TestData,
 OnlyDetectMissedRecruits = TRUE,
  AddRowsForForgottenCensuses = FALSE)

Rslt_Test <- FullErrorProcessing(TestData)
Rslt_Panama <- FullErrorProcessing(PanamaFormated)
}