psi: Proportion of Sediment-sensitive Invertebrates index

View source: R/psi.R

psiR Documentation

Proportion of Sediment-sensitive Invertebrates index

Description

\Sexpr[results=rd, stage=render]{ lifecycle::badge("maturing") }

This function calculates the Proportion of Sediment-sensitive Invertebrates index (PSI) according to the most recent version used in UK.

Usage

psi(
  x,
  method = "extence",
  abucl = c(1, 9, 99, 999),
  agg = FALSE,
  fssr_scores = NULL,
  exceptions = NULL,
  traceB = FALSE
)

Arguments

x

Result of aggregate_taxa().

method

The only choice is extence. Users can provide their own data.frame (see examples) with a column called Taxon and the column of scores called Score.

abucl

Log abundance categories. Treshold are set to 1, 9, 99 and 999 as in the original paper of Extence et al. (2013).

agg

This option allows the composite family approach. It can be FALSE, TRUE or a data.frame. If FALSE no aggregation will be performed, while if TRUE aggregation will be performed according to the rules described in Details. A data.frame containing the aggregation rules can be provided by the user. This data.frame needs a column called Taxon containing the taxon to aggregate and a column called Correct_Taxon with the aggregation specifications. agg cannot be TRUE when a data.frame is provided as method.

fssr_scores

Optional, scores (fssr) for different abundance categories of taxa associated with Fine Sediment Sensitivity Ratings. To be used when a custom method is provided.

exceptions

Taxa that to be excluded from the calculation. This option can be useful, for instance, to exclude an alien species belonging to an autochthonous family.

traceB

if set to TRUE a list as specified below will be returned.

Details

Although Extence et al 2013 did not suggest any aggregation rule, the psi() implementation of biomonitoR allows for a default aggregation as specified below. Custom aggregation rules can be provided as a data.frame.

  1. Tipulidae (inc. Limoniidae, Pediciidae & Cylindrotomidae)

  2. Siphlonuridae (inc. Ameletidae)

  3. Hydrophilidae (inc. Georissidae, Helophoridae & Hydrochidae)

psi() automatically check for parent-child pairs in the scoring system, see the return section for a definition. All the information used for PSI calculation can be retrieved with show_scores().

Value

If traceB is set to TRUE a list with the following elements will be returned:

  • results Results of psi().

  • taxa_df The data.frame used for the calculation containing the abundance of taxa receiving a score.

  • abu_df The data.frame containing fssr scores and abundance classes for each site.

  • psi_df The data.frame used for the calculation containing scores for each site.

  • composite_taxa Taxa aggregated following the aggregation of the default method or set in agg.

  • exceptions A data.frame containing the changes made by excluding the taxa included in exceptions.

  • parent_child_pairs For instance in Spanish BMWP both Ferrissia and Planorbidae receive a score. Abundances of the higher taxonomic level need therefore to be adjusted by subtracting the abundances of the lower taxonomic level.

Acknowledgements

We thank Carol Fitzpatrick, Richard Chadd, Judy England and Rachel Stubbington for providing us with the most updated PSI scores and algorithms.

References

Extence CA, Chadd RP, England J, Dunbar MJ, Wood PJ, Taylor ED. 2013. The assessment of fine sediment accumulation in rivers using macro-invertebrate community response. River Research and Applications 29, 17-55.

See Also

as_biomonitor

Examples

data(macro_ex)
data_bio <- as_biomonitor(macro_ex)
data_agr <- aggregate_taxa(data_bio)
psi(data_agr)

# change abundance classes
psi(data_agr, abucl = c(1, 9, 99, 999, 9999))

# provide your own score system. Scores and aggregation rules are for example purpose only.

psi_fssr <- data.frame(
  Taxon = c("Ephemerellidae", "Leuctridae", "Chironomidae"),
  FSSR_Score = c(1, 2, 3)
)

psi_acc <- data.frame(Taxon = "Ephemerellidae", Correct_Taxon = "Chironomidae")

fssr_scores <- data.frame(
  FSSR = rep(1:3, each = 3), ABUCLASS = rep(1:3, 3),
  SCORE = c(9, 10, 11, 8, 9, 10, 7, 7, 7)
)

# without aggregation rules
psi(data_agr, method = psi_fssr, fssr_scores = fssr_scores, traceB = TRUE)

# with aggregation

psi(data_agr, method = psi_fssr, agg = psi_acc, fssr_scores = fssr_scores, traceB = TRUE)

alexology/biomonitoR documentation built on Oct. 10, 2024, 12:02 a.m.