Package aims
camtrapReport helps turn camera-trap data into standardised, reproducible ecological outputs through a workflow designed to automate as much of the reporting process as possible. The package combines data quality checks, summarisation, visualisation, and ecological analysis in a modular framework, helping users move efficiently from raw records to interpretable results. Its automated workflow improves comparability, scalability, and reproducibility across sites and over time, while reducing technical barriers and supporting transparent, efficient, and timely ecological reporting. The main functions of the package include:
Data status report, which performs automated diagnostics of data quality and completeness across key components of camera-trap datasets, including spatial and temporal information, key column availability, annotations, validation status, and observation types by capture method. These checks help users identify missing information, inconsistencies, and unusual values that may require correction or completion.
Ecological report, which produces standardised outputs through modular components. Reports can include descriptive information, summaries of key data, visualisations of important patterns, and ecological assessments and analyses.
Data standard format
camtrapReport is designed for datasets provided in, or converted to, the Camtrap-DP standard format, which is a community-developed data exchange format for camera-trap data. Several camera-trap data management systems support Camtrap-DP as an export format, including Agouti and TRAPPER. It is also possible to convert data from other camera-trap sources, including manually managed datasets and Wildlife Insights exports, into Camtrap-DP format for use in camtrapReport.
Example input datasets
Three example datasets are provided below. These open-access camera-trap datasets, available through GBIF, follow the Camtrap-DP standard and can be used to test camtrapReport.
| Dataset | Habitat data | Study area |
|---|---|---|
| Leuven dataset | Leuven habitat | Leuven study area boundary |
| Antwerp dataset | Antwerp habitat | Antwerp study area boundary |
| MICA dataset | MICA habitat | MICA study area boundary |
Note: The habitat data and study area files were prepared exclusively for testing camtrapReport and do not represent official data products published by the original dataset owners.
First use: installation
Install camtrapReport with the standard remotes workflow:
# install using the "remotes" package
if (!requireNamespace("remotes", quietly = TRUE)) {
install.packages("remotes")
}
remotes::install_github("spatialecology/camtrapReport")
Note: camtrapReport requires R ≥ 4.1.0. If you are unsure of your current R version, run R.version.string in the R console.
Load the package
In addition to loading camtrapReport package, depending on which report sections and methods you use, additional packages may be required. To ensure full functionality, run the helper function, install_All, that installs all package dependencies:
Note: You may be prompted to approve package installations or compile packages from source. Make sure you have an active internet connection.
Troubleshooting installation
If remotes::install_github() fails, a common cause is a missing GitHub personal access token (PAT). To set one up, run:
install.packages(c("remotes", "usethis", "gitcreds"))
usethis::create_github_token() # Opens GitHub in your browser — create and copy the token
gitcreds::gitcreds_set() # Paste the token when prompted in R
remotes::install_github("spatialecology/camtrapReport")If installation still fails, please open an issue and include the full error message, the output of sessionInfo(), and information on whether the error occurred during install_github() or install_All().
Create the camReport object
At the core of camtrapReport is a mutable Reference Class object called camReport, which acts as the central workflow container and module registry. It stores harmonised input data, user-defined settings, and intermediate results throughout the reporting process.
Use camData() to create the camReport object by reading and pre-processing your camera-trap dataset.
Required input
To keep the workflow simple and reproducible, the only required input is a single .zip file containing the dataset in Camtrap-DP format.
cm <- camData("path/to/your/dataset.zip")Optional input
Additional input data can be provided to improve maps, add spatial context, and support more informative summaries and analyses.
Habitat data
Habitat information can be provided as a two-column CSV file with locationName and Habitat. An example template of habitat.csv can be downloaded here.
Study area polygon
A polygon shapefile of the site boundary can be provided to improve maps and add spatial context to the report.
study_area <- vect("C:/Users/ebrah010/Data/studyarea_nl.shp")When optional input data are available, they can be supplied directly to camData():
cm <- camData(
"path/to/your/dataset.zip",
habitat = habitat,
study_area = study_area
)Data status report
To generate a data status report and review the quality and completeness of the input data, use:
status (cm, view = TRUE) # With view = TRUE, the generated report opens automaticallyEcological report
Once the input data have been prepared, a full ecological report can be generated using report():
report(cm, view = TRUE) Conclusion
This page introduced the basic workflow for setting up input data, reviewing data quality, and generating reports with camtrapReport. To understand how the package is organised, see the Package Overview. To explore data quality checks in detail, see the Data Status Report. To customise the ecological report, see the Ecological Report. For more detail on the package’s modular and extensible design, including how to add new report sections, see Module Management.
Contribute
Questions, suggestions, and ideas for improvement are always welcome. You can contribute to the development of the camtrapReport R package by opening an issue or joining the conversation in GitHub Discussions.
Citation
As the official scientific publication for camtrapReport is still in preparation, please cite the package as:
Ebrahimi, E., & Jansen, P. A. (2026). CamtrapReport: An R Package for Automating Camera-Trap Data Reporting for Wildlife Monitoring. p. 65. Abstract from The International Biogeography Society – 12th Biennial Conference, Aarhus, Denmark. https://zenodo.org/records/18405441
For package citation details, please refer to the citation information available in the GitHub repository.
Acknowledgment
The development of camtrapReport was supported by Biodiversa+ through the Big Picture project.
