Learn R Programming

camtrapR (version 3.0.0)

speciesAccum: Species Accumulation Curves for Camera Trap Data

Description

Generates species accumulation, rarefaction and extrapolation curves from camera trap data using the iNEXT package (Chao et al. 2014). The function creates sampling effort-based accumulation curves with sampling units being either camera trap stations or days.

Note that these curves are based on observed detections only and do not account for imperfect detection. Species may be present but not detected, leading to underestimation of true species richness. For analyses that explicitly account for imperfect detection, consider using occupancy-based approaches (see communityModel).

Usage

speciesAccum(
  CTtable,
  recordTable,
  speciesCol,
  recordDateTimeCol,
  recordDateTimeFormat = "ymd HMS",
  setupCol,
  dateFormat = "ymd",
  stationCol,
  assemblageCol = NULL,
  q = 0,
  x_unit = c("station", "survey_day", "station_day"),
  knots = 40,
  conf = 0.95,
  nboot = 50,
  endpoint = NULL
)

Value

An object of class "iNEXT" containing:

  • DataInfo - data information

  • iNextEst - diversity estimates for rarefied and extrapolated samples

  • AsyEst - asymptotic diversity estimates

Arguments

CTtable

data.frame containing the camera trap deployment information.

recordTable

data.frame containing the camera trap records.

speciesCol

character. Name of the column specifying species names in recordTable

recordDateTimeCol

character. Name of the column containing date and time information in recordTable

recordDateTimeFormat

character. Format of column recordDateTimeCol in recordTable

setupCol

character. Name of the column containing camera setup dates in CTtable

dateFormat

character. Format of column setupCol in CTtable

stationCol

character. Name of the column containing station IDs in both tables

assemblageCol

character. Optional. Name of column in recordTable for grouping data into separate assemblages

q

numeric. The order of diversity measure. Default is 0 (species richness)

x_unit

character. Whether to use "station" or "day" as sampling unit. Default is "station"

knots

numeric. number of values along x axis for which values are computed

conf

numeric. confidence interval

nboot

numeric. number of replications

endpoint

integer. Sample size used as endpoint for rarefaction/extrapolation (in iNEXT)

Author

Juergen Niedballa

Details

The function provides three types of curves:

  • Sample-size-based rarefaction/extrapolation curve

  • Sample completeness curve

  • Coverage-based rarefaction/extrapolation curve

While these curves provide useful insights into sampling completeness and species richness patterns, they should be interpreted with caution in camera trap studies. Unlike occupancy models, they do not account for:

  • Imperfect detection (species present but not detected)

  • Variation in detection probability among species

  • Spatial variation in species occurrence

  • Temporal variation in species activity

References

Chao, A., Gotelli, N. J., Hsieh, T. C., Sander, E. L., Ma, K. H., Colwell, R. K., & Ellison, A. M. (2014). Rarefaction and extrapolation with Hill numbers: A framework for sampling and estimation in species diversity studies. Ecological Monographs, 84(1), 45-67.

See Also

surveyDashboard for interactive species accumulation analysis

Examples

Run this code
if (FALSE) {
# Basic usage with stations as sampling units
result <- speciesAccum(
  CTtable = cams,
  recordTable = recs,
  speciesCol = "Species",
  recordDateTimeCol = "DateTime", 
  setupCol = "Setup_date",
  stationCol = "Station",
  q = 0,
  x_unit = "station"
)

# Plot results
ggiNEXT(result, type = 1)  # Sample-size-based R/E curve
ggiNEXT(result, type = 2)  # Sample completeness curve
ggiNEXT(result, type = 3)  # Coverage-based R/E curve

# With assemblage grouping and days as sampling units
result_by_assemblage <- speciesAccum(
  CTtable = cams,
  recordTable = recs,
  speciesCol = "Species",
  recordDateTimeCol = "DateTime",
  setupCol = "Setup_date",
  stationCol = "Station",
  assemblageCol = "Season",
  q = 0,
  x_unit = "day"
)
}

Run the code above in your browser using DataLab