Camera Trap Data Management and Analysis Framework
Overview
Management and analysis of camera trap wildlife data through an integrated workflow. Provides functions for image/video organization and metadata extraction, species/individual identification. Creates detection histories for occupancy and spatial capture-recapture analyses, with support for multi-season studies. Includes tools for fitting community occupancy models in JAGS and NIMBLE, and an interactive dashboard for survey data visualization and analysis. Features visualization of species distributions and activity patterns, plus export capabilities for GIS and reports. Emphasizes automation and reproducibility while maintaining flexibility for different study designs.
New function
- simulateCamtrapData(): simulate camera trap data with custom properties (e.g. for testing, examples and teaching)
New features
surveyDashboard
- new welcome screen (modal dialog) on startup
- new data-quality and convergence warning system, flagging potential problems with input data and model fit (modal dialog and sidebar)
- new date range filter for records
- new instructions for CSV uploads, with links to relevant functions
- stricter validation of CSV uploads: a CRS must now be provided (numeric EPSG codes accepted); uploads abort with an informative modal dialog if the loaded table has only one column (wrong delimiter) or if the camera trap table contains duplicate station/camera combinations
- maximum csv file upload size increased to 500 MB (was 10Mb)
- single-species occupancy: new warning UI, improved printing of model summaries and species names, fitted models can now be exported, unmarkedFrame summary shown in a separate tab
- community occupancy: model file name is now printed in the UI
Show all changes in 3.1.0Hide the rest of the changes in 3.1.0
- added GitHub and Google Group links to the header;
- record preview in the filter section is collapsed by default; various label, tooltip and progress-indicator improvements
Occupancy models
- community occupancy models (commOccu) can now be fitted from JAGS model code stored in the new modelText slot, without an external model file
- createCovariates() now accept plain data frames with coordinates (new arguments xcol, ycol, crs; converted to sf internally)
- consistent terminology: "community models" instead of "multi-species models"
Data import
- the Camtrap DP interface was rewritten throughout and now uses the camtrapdp package for reading data packages
- readcamtrapDP renamed to readCamtrapDP (capitalisation in line with official name)
- more tolerant Camtrap DP import: missing vernacularNames are generated from scientific names and observation type; missing placename falls back to the deployment ID (with a warning); informative error if all timestamps fail to parse
- activity estimation with Camtrap DP data now uses only observations of type "event"
Improved displays and summary functions
- recordTable, recordTableIndividual & filterRecordTable now return an object of class "records" with dedicated print, [, summary, and dplyr_reconstruct methods
- cameraOperation now returns an object of class "camOp" with dedicated print, [, summary, and plot methods
- detectionHistory now returns an object of class "detHist" with dedicated print and [ methods
- readCamtrapDP now returns an object of class "cams_dp" with a dedicated print method
- camera tables contained in readCamtrapDP and simulateCamtrapData outputs are now of class "cams" with a dedicated print method
- internal function stripClass to remove added (S3) class and attributes
Other changes
- new vignette 6 introducing the surveyDashboard (with sample data)
- surveyDashboard: documentation expanded (new section on Bayesian priors, more details on model fitting challenges)
- new package dependencies: camtrapdp, checkmate, crayon, tibble (the latter two now direct rather than indirect dependencies)
Bugfixes
- surveyDashboard:
- fixed several reactivity issues (records not resetting when loading new Camtrap DP data with active filters; number of removed images not updating; broken model selection table)
- fixed error in export of covariate rasters
- assert validity of parameter inputs (prevents opening app when e.g. column names specified wrongly)
- fixed model selection table for ubms 1.2.9
- ubms models now uses 1 core by default (faster than 3 cores for short runs)
- plot_coef(): fixed colors of plot lines by significance level in community model plots
- fixed wrong color ramp being applied to the original rasters in spatial prediction plots
- more robust aggregation of the camera trap table (all columns checked first, clearer error messages)
- fixed ggplot2 warning by replacing ylab() with labs()
From NEWS.md in the release
Install
Health
- OK13 OK2026-08-20
- ERROR12 OK, 1 ERROR2026-08-18
- OK13 OK2026-08-05
- NOTE12 OK, 1 NOTE2026-08-01
- OK12 OK2026-04-25
Show 3 earlier changesHide 3 earlier changes
- NOTE11 OK, 3 NOTE2026-04-23
- ERROR10 OK, 3 NOTE, 1 ERROR2026-04-14
- NOTE11 OK, 3 NOTE2026-03-10
Documentation
- Help pages
- 62 (13 internal)includes a package overview page
- Examples that run
- 41%15 run in a plain check (2 of them under a condition) · 1 only when donttest examples are enabled (R CMD check --as-cran) · 21 never run
- Exported functions with examples
- 94%
- Documented parameters
- 98%
- Return-value docs
- 100%
- Help pages citing references
- 26%
- 1. Organising raw camera trap images in camtrapR PDF
- 2. Species and Individual Identification PDF
- 3. Data Extraction from Images and videos, creating occupancy & secr input PDF
- 4. Data exploration and visualisation PDF
- 5. Community occupancy models HTML
- 6. Sample camera trap datasets and the `surveyDashboard` HTML
Downloads
Repository
- PRs merged (all time)
- 67%
- Median days to close, 50 most recently updated closed issues
- 50
- Median days to close, 50 most recently updated closed PRs
- 2
Stars over time
Forks over time
Releases over time
Issues over time
PRs over time
Commits over time
14 development-tooling and community-health practices detected across 7 families in the upstream repository
Checks run against github.com/jniedballa/camtrapr on 2026-10-18.
The R CMD check workflow runs on Linux, macOS and Windows, and on R-devel
Show all practicesHide 3 practices
Dependencies
Installing camtrapR adds 94 packages (55 with compiled code, 107 MB of source tarballs). Heaviest: BH 14 MB, stringi 11 MB, sf 9.3 MB.
Code & Tests
Datasets
People & History
Pick two releases to compare their code metrics.
- 3.1.0Latest2026-07-28 · current release · diff ↗ ·
removed 1 export
readcamtrapDPadded 2 exports
readCamtrapDP, simulateCamtrapData - unarchivedReturned to CRAN2026-04-30
- 3.0.42026-04-30 · diff ↗
- archivedRemoved from CRAN2026-04-28issues were not corrected in time
- RR 4.6.0 released · 2026-04-24
- 3.0.32026-02-09 · diff ↗
- 3.0.22026-01-25 · diff ↗
- 3.0.02025-09-28 · diff ↗ ·
added 7 exports
PPC.community, PPC.residuals, aggregateStations, createCovariates, readWildlifeInsights, readcamtrapDP, speciesAccum - 2.3.12025-09-02 · diff ↗
- RR 4.5.0 released · 2025-04-11
- RR 4.4.0 released · 2024-04-24
- unarchivedReturned to CRAN2024-02-26
- 2.3.02024-02-26 · diff ↗ ·
removed 1 export
exiftoolPathadded 3 exports
addToPath, filterRecordTable, surveyDashboard - archivedRemoved from CRAN2023-12-15requires orphaned package 'overlap'
- RR 4.3.0 released · 2023-04-21
- unarchivedReturned to CRAN2022-05-11
Show 33 earlier eventsHide 33 earlier events
- 2.2.0
- archivedRemoved from CRAN2022-05-09check problems were not corrected in time
- RR 4.2.0 released · 2022-04-22
- RR 4.1.0 released · 2021-05-18
- 2.0.32020-07-29 · diff ↗
- RR 4.0.0 released · 2020-04-24
- 2.0.22020-04-23 · diff ↗
- 2.0.12020-04-20 · diff ↗
- 2.0.02020-04-17 · diff ↗
- 1.2.32020-01-10 · diff ↗
- 1.2.22020-01-07 · diff ↗
- 1.2.12019-12-17 · diff ↗
- 1.22019-12-05 · diff ↗
- RR 3.6.0 released · 2019-04-26
- 1.12019-03-13 · diff ↗
- 1.02018-10-27 · diff ↗
- RR 3.5.0 released · 2018-04-23
- 0.99.92017-10-25 · diff ↗
- RR 3.4.0 released · 2017-04-21
- 0.99.82017-03-21 · diff ↗
- 0.99.72017-01-31 · diff ↗
- 0.99.6
- 0.99.52016-10-06 · diff ↗
- 0.99.42016-08-12 · diff ↗
- 0.99.3
- 0.99.22016-06-24 · diff ↗
- 0.99.12016-05-18 · diff ↗
- RR 3.3.0 released · 2016-05-03
- 0.99.02016-04-12 · diff ↗ ·
removed 3 exports
checkSpeciesFolders, recordDatabase, recordDatabaseIndividualadded 5 exports
checkSpeciesIdentification, checkSpeciesNames, createStationFolders, recordTable, recordTableIndividual - 0.98.0
- 0.97.1
- 0.97.02015-07-29
- RR 3.2.0 released · 2015-04-16
Package metadata
- First published
- 2015-07-29
- Total releases
- 31 / 11 yrs
- License
- GPL (>= 2) OSI
- Minimum R
- ≥ 4.1.0
- Bundled data
- 7.0 KB / 7 files
- Download size
- 6.2 MB
Cite
Cite this package
Run in R for the authors' entry:
citation("camtrapR")The package provides a citation file, so citation() returns the authors' own entry.
It points to 10.1111/2041-210x.12600.
Cite the R Observatory
For a number measured here: a download total, a coverage figure, an archival date.
From data release v2026-10-21, which the citation names so these numbers can be found later. More on citing and the projects behind them.