Skip to content

camtrapReport: Camera-Trap Report Generator #799

Description

@spatialecology

Submitting Author Name: Elham Ebrahimi
Submitting Author Github Handle: @spatialecology
Repository: https://github.com/spatialecology/camtrapReport
Version submitted: 1.0.47
Submission type: Standard
Editor: @maelle
Reviewers: TBD

Archive: TBD
Version accepted: TBD
Language: en


  • Paste the full DESCRIPTION file inside a code block below:
Package: camtrapReport
Type: Package
Title: Camera-Trap Report Generator
Version: 1.0.47
Authors@R: person(given = "Elham", family = "Ebrahimi", role = c("aut", "cre"), email = "eebrahimi.bio@gmail.com", comment = c(ORCID = "0000-0001-5191-9832"))
Description: Provides an extensible workflow for processing camera-trap data
    in the 'Camtrap DP' format and automatically generating reproducible
    data-status and ecological reports. The package supports data-quality
    checks, ecological summaries, visualisations, maps, tables, and modular
    report sections for wildlife-monitoring applications. Optional taxonomic
    enrichment queries the Global Biodiversity Information Facility (GBIF)
    Species API <https://techdocs.gbif.org/en/openapi/v1/species> through
    'taxize'.
License: MIT + file LICENSE
URL: https://spatialecology.github.io/camtrapReport/, https://github.com/spatialecology/camtrapReport
BugReports: https://github.com/spatialecology/camtrapReport/issues
Depends:
    R (>= 4.1.0)
Imports:
    data.table,
    dplyr,
    glue,
    jsonlite,
    lubridate,
    methods,
    spatstat.explore,
    spatstat.geom,
    terra
Suggests:
    activity,
    corrplot,
    Distance,
    dygraphs,
    ggplot2,
    ggrepel,
    gt,
    htmltools,
    htmlwidgets,
    iNEXT,
    jpeg,
    knitr,
    leaflet,
    lutz,
    magick,
    plotly,
    readr,
    remotes,
    rmarkdown,
    roxygen2,
    sbd,
    scales,
    sf,
    shiny,
    spatstat,
    suncalc,
    taxize,
    testthat (>= 3.1.7),
    tidyr,
    xml2,
    xts
VignetteBuilder: knitr
Encoding: UTF-8
Roxygen: list(markdown = TRUE)
Config/testthat/edition: 3
Config/roxygen2/version: 8.1.0

Scope

  • Please indicate which category or categories from our package fit policies this package falls under: (Please check an appropriate box below. If you are unsure, we suggest you make a pre-submission inquiry.):

    • data retrieval
    • data extraction
    • data munging
    • data deposition
      • data validation and testing
    • workflow automation
    • version control
    • citation management and bibliometrics
    • scientific software wrappers
    • field and lab reproducibility tools
    • database software bindings
    • geospatial data
    • translation
      • rOpenSci internal tools
  • Explain how and why the package falls under these categories (briefly, 1-2 sentences):

camtrapReport falls under data validation and testing because it provides automated assessment of Camtrap-DP datasets for completeness, consistency, temporal and spatial integrity, annotation quality, validation status, and overall readiness for ecological analysis. It also falls under workflow automation because its report-centred architecture integrates data preparation, validation, ecological analyses, visualisation, provenance tracking, and generation of structured Data Status Check and Ecological Reports within a single modular and reproducible workflow.

  • Who is the target audience and what are scientific applications of this package?

camtrapReport is intended for wildlife ecologists, biodiversity researchers, conservation practitioners, monitoring organisations, and managers of camera-trap datasets. It supports reproducible assessment and reporting of camera-trap data, including data-quality checks, sampling effort, species richness, occurrence and detection summaries, community-level patterns, activity, habitat use, abundance- and density-related analyses, and spatial summaries. Its main application is to make routine and repeated camera-trap reporting more transparent, consistent, reproducible, and scalable across monitoring projects, sites, survey periods, and taxonomic groups.

R has a well-developed ecosystem of packages for camera-trap data, including tools for standardised data handling (camtrapdp), data management and preparation (camtrapR, ct), exploration and visualisation (camtraptor, ctdp, camtrapR), specialised ecological analyses (activity, overlap, iNEXT, camtrapDensity, Distance), and hierarchical or spatial modelling (unmarked, secr).

camtrapReport is complementary to these tools rather than a replacement for them. Its distinctive contribution is a report-centred architecture that integrates data-quality assessment, preprocessing, ecological analyses, figures, tables, maps, metadata, provenance, and explanatory text within a single modular and reproducible workflow.

To our knowledge, camtrapReport is the first R package designed specifically to automatically generate a complete, modular, and reproducible ecological report directly from a standardised Camtrap-DP dataset. In this framework, the report itself is treated as the reproducible unit of work, rather than an individual analysis, figure, or table.

A central camReport object preserves the relationship between the original data, analytical settings, processing decisions, intermediate results, and final outputs. Analytical and reporting modules can be selected, omitted, reordered, modified, or extended, allowing users to tailor workflows to different monitoring objectives while maintaining consistency and provenance across analyses and reports. This design supports both standardisation across monitoring programmes and extensibility for project-specific or community-contributed methods.

A detailed comparison with existing camera-trap R tools is provided in the package overview:
https://spatialecology.github.io/camtrapReport/articles/Package-Overview.html

camtrapReport is designed to process structured ecological records and metadata derived from camera-trap datasets, rather than raw images or videos. Although camera traps may incidentally record people, the package operates on structured digital annotations and metadata, such as species identity, date, time, deployment information and location, and does not require access to or processing of the underlying image or video files. If users choose to publicly share report outputs, they are responsible for ensuring that any sensitive information, such as precise locations of threatened species or sensitive habitats, is handled in accordance with applicable ethical, institutional, legal and data-governance requirements. In camera-trap research, spatial coordinates are commonly generalised or rounded before public dissemination when precise locations could create conservation or privacy risks.

  • Explain reasons for any pkgcheck items which your package is unable to pass.

The package passes R CMD check with 0 errors, 0 warnings, and 0 notes, with test coverage of approximately 76.5%, and continuous-integration checks are configured and passing on GitHub. The remaining pkgcheck items relate to non-blocking good-practice and code-style recommendations, such as code structure and stylistic conventions, rather than package installation, documentation, testing, or functional correctness.

  • If you made a pre-submission inquiry, please paste the link to the corresponding issue, forum post, or other discussion, or @tag the editor you contacted.

Not applicable.

Technical checks

Confirm each of the following by checking the box.

This package:

Use of Generative AI

  • Generative AI tools were used to produce some of the material in this submission.

Generative AI tools were used as development-assistance tools during package preparation, including support for code review and debugging, test development, and editing and improving the language of package documentation. All AI-assisted contributions incorporated into the package and submission were reviewed and, where applicable, tested by the package author, who remains fully responsible for the scientific design, implementation, validation, documentation, and maintenance of camtrapReport.

If so, please describe usage, and include links to any relevant aspects of your repository. See our blog post for background. (Explicit advice is not yet included in our Dev Guide; we are hoping to update very soon, and ask your cooperation and transparency in the meantime.)

Publication options

  • Do you intend for this package to go on CRAN?

  • Do you intend for this package to go on Bioconductor?

  • Do you wish to submit an Applications Article about your package to Methods in Ecology and Evolution? If so:

MEE Options
  • The package is novel and will be of interest to the broad readership of the journal.
  • The manuscript describing the package is no longer than 3000 words.
  • You intend to archive the code for the package in a long-term repository which meets the requirements of the journal (see MEE's Policy on Publishing Code)
  • (Scope: Do consider MEE's Aims and Scope for your manuscript. We make no guarantee that your manuscript will be within MEE scope.)
  • (Although not required, we strongly recommend having a full manuscript prepared when you submit here.)
  • (Please do not submit your package separately to Methods in Ecology and Evolution)

Code of conduct

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions