camtrapReport logo

Abstract

This report provides an overview of the camera trap dataset and the preprocessing steps used for automated report generation. It enables users to quickly assess the quality of their data through a concise summary generated by a series of automated checks. The standard report is structured into five chapters: Setup (including spatial and temporal checks), Data Availability, Validation, Annotation, and Observation Types by Capture Method. A custom profile may select only some of these sections.

The following qualitative descriptions can help you interpret the individual check results. They are a user-assessed guide, not an automatically calculated classification:

  • Perfect: No issues were identified in the checks you reviewed. This does not establish that every assumption of an ecological analysis is satisfied.
  • Acceptable: Minor issues were identified. Assess their implications for the intended analysis and make corrections where needed.
  • Needs Improvement: Major issues were identified. Resolve them before relying on the affected analyses.

Note: To improve the quality of automated camera-trap reporting, review missing values, warnings, and inconsistencies and document any corrections or exclusions. The package does not assign an overall quality grade or automatically block report generation. A successfully rendered report is not a certification of data quality or analytical suitability.

After correcting source files, reload them with camData(..., update = TRUE) and regenerate the Data Status Check. Rerunning status() on the existing object alone does not reread modified source files.

Chapter 1: Setup

This chapter covers spatial and temporal checks. Dataset spans Belgium (GMU8 LEUVEN) with time zone UTC+1 and coordinate range 50.769°–50.845°N and 4.634°–4.674°E. All required CSV files (deployments.csv, media.csv, observations.csv) and JSON file are available in the dataset. The 8 distinct camera locations are distributed within a minimum convex polygon (MCP) of 12.54 km².

Spatial Data

This section summarizes the spatial quality of the camera-trap data extracted from the dataset files. It focuses specifically on location data, assessing issues such as missing values, duplicate entries, spatial outliers, and overall spatial structure. The complete results are presented in Table 1. If any issues are identified, we strongly recommend correcting the data before proceeding with report generation for your study site.

Duplicate entries (by coordinates, LocationName, or LocationID) are collapsed to the first occurrence, and any rows with missing values in any column are excluded from the report-generation analysis unless you edit them. If any issues are identified in the table below, we strongly recommend correcting the data before proceeding with report generation for your study site.

Note: If your dataset contains rows where the coordinates (longitude and latitude) are complete but either the LocationID or LocationName is missing, these records are still treated as missing. This is because, for spatial quality checks and analysis, both the geographic coordinates and their associated metadata (LocationID and LocationName) are equally important.

Table 1. Spatial summary of camera-trap locations
Metric Result Status
Number of locations 8 Before any filtering
Number of duplication in coordinates 0 🟢 No duplicated coordinates.
Number of duplication in LocationID 0 🟢 No duplicated locationIDs
Number of duplication in LocationName 0 🟢 No duplicated locationNames
Missing data 0 🟢 No missing data found
Total distinct coordinates 8 After removing duplicates/missing values
Mean distance between locations (m) 1195.24 Mean inter-location distance
Max distance between locations (m) 3788.21 LEUVEN_416 and LEUVEN_1713
Min distance between locations (m) 179.53 LEUVEN_1434 and LEUVEN_1473
Spatial pattern systematicRandom (indicated explicitly in metadata) ⚠️ Too few locations to detect a spatial pattern
Outliers High risk outlier = 0
Medium risk outlier = 0
Low risk outlier = 0
Non-Terrestrial = 0
🟢 No spatial outliers detected | 🟢 All locations are on land.

Temporal Data

This section summarizes the temporal patterns of the camera-trap dataset, including coverage over time, potential gaps, and any detected anomalies or outliers, which are presented in Table 2.

Table 2. Temporal coverage summary
Metric Result
Deployment year coverage 2018 - 2024 (🟢 complete)
Observation year coverage 1999 - 2024 (🔴 missing: 2000-2017)
Deployment first/last setup 2018-03-26 10:05:50 - 2023-12-29 13:52:05
Observation first/last record 1999-12-31 23:00:00 - 2024-01-26 13:11:38
Temporal consistency 🔴 Temporal inconsistency (Observations exist, but deployments are missing for: 1999)
First/last date check 🔴 Earliest observation is earlier than the first deployment start date (check timestamps or timezone). 🚨
Month coverage span 2018: Mar-Apr, Jul-Dec
2019: Feb-May, Jul-Nov
2020: Jan-Nov
2021: Jan-Dec
2022: Jan-Apr, Jun-Oct
2023: Jan-Apr, Jun-Oct, Dec
2024: Jan–Jan
Calendar coverage 1424 of 2133 days (66.8%)
Max gap between deployments 87 days (from 2018-12-13 to 2019-03-09)
Min gap between deployments 2 days (from 2020-10-04 to 2020-10-05)
Missing deployment intervals None 🟢
Zero-length deployments None 🟢
Temporal outliers None 🟢
Invalid timestamp format None 🟢
Future observation timestamps None 🟢

Chapter 2: Data Availability

Review Essential Data Availability

In this chapter, we review all essential data components required for generating the report. These include both mandatory fields and necessary supporting fields or files that contribute to the completeness and overall quality of the final output. Table 3 provides a structured overview of the availability and completeness of these elements. While all fields listed in the table are important for generating a high-quality report, the bolded fields are mandatory. Their status must be marked as Complete; otherwise, any associated records with missing or partial values will be automatically excluded from the final output.

Table 3. Essential data availability and completeness
Category Field Status
Locations locationID 🟢 Complete
locationName 🟢 Complete
longitude 🟢 Complete
latitude 🟢 Complete
Deployment deploymentID 🟢 Complete
locationID 🟢 Complete
deployment_interval 🟢 Complete
deploymentStart 🟢 Complete
deploymentEnd 🟢 Complete
habitat 🔴 Incomplete (87 of 87 missing; 100%)
setupBy 🟡 Partial (6 of 87 missing; 6.90%)
baitUse 🔴 Incomplete (87 of 87 missing; 100%)
cameraHeight 🟢 Complete
Observations timestamps 🟢 Complete
observationType 🟡 Partial (5422 of 10798 missing; 50.21%)
count 🟢 Complete
classifiedBy 🟢 Complete
taxonID 🟢 Complete (taxonID recorded for 4693 of 4693 animals; 100%) | 43 unique
behavior 🔴 Incomplete (behavior recorded for 0 of 4693 animals; 0%)
sex 🟡 Partial (sex recorded for 1821 of 4693 animals; 38.80%)
lifeStage 🟡 Partial (lifeStage recorded for 2291 of 4693 animals; 48.82%)
angle 🟡 Partial (angle recorded for 71 of 4693 animals; 1.51%)
radius 🟡 Partial (radius recorded for 71 of 4693 animals; 1.51%)
speed 🟡 Partial (speed recorded for 69 of 4693 animals; 1.47%)
individualID 🟡 Partial (individualID recorded for 71 of 4693 animals; 1.51%)
Media media timestamp 🟢 Complete
file.path 🟢 Complete
comments 🟢 Complete
favourite 🟢 Complete
Sequences nrphotos 🟢 Complete
captureMethod 🟢 Complete
Taxonomy taxonID 44 unique taxonID identified
scientificName 🟢 Complete
vernacularNames.nld 🟢 Complete
vernacularNames.eng 🟢 Complete
Additional Files habitat.csv 🟢 Complete
spatial boundary (e.g., shapefile) 🟢 Complete

Chapter 3: Validation

In this chapter, we summarize the classification and validation results of the observation data. The ‘CaptureMethod’ column indicates the method used to capture each image, which may include motion detection, time-lapse, or other mechanisms depending on the camera trap setup. The columns ‘Human’, ‘Machine’, and ‘NA_Classification’ represent the number and percentage of observations classified manually by a human, by an automated machine model, or left unclassified (NA), respectively. NA values often result from blank images, errors, or missing data. The ‘Machine_Animal’ column reports how many machine-classified observations were identified as animals, along with their percentage out of all machine classifications for that method. Finally, ‘Validated_Animal’ shows how many of those machine-identified animals were subsequently validated by a human, indicating human-confirmed correctness of the machine prediction. Collectively, this summary helps evaluate both the extent and reliability of the classification process across capture methods. In cases where validation rates are low or discrepancies are noted, users are encouraged to revisit the raw data for quality control, potential retraining of models, or targeted human review of specific subsets.

Table 4. Classification and validation summary
captureMethod Human Machine NA_Classification Total Machine_Animal Validated_Animal
motionDetection 2791 (48.8%) 0 (0%) 2926 (51.2%) 5717 0 (0%) 0 (NA%)
timeLapse 0 (0%) 0 (0%) 5081 (100%) 5081 0 (0%) 0 (NA%)
TOTAL 2791 (25.8%) 0 (0%) 8007 (74.2%) 10798 0 (0%) 0 (NA%)

Chapter 4: Annotation

In this chapter, we provide an overview of annotation confidence in the camera-trap observations. The summary distinguishes between machine-generated and human-generated classifications and highlights the variation in confidence scores across annotation methods. This section helps assess annotation reliability, identify records below selected confidence thresholds, and evaluate whether additional quality control or review may be needed before ecological reporting.

Table 5. Summary of machine and human annotation confidence scores

Machine Classification Confidence

Statistic Value
Minimum Confidence Score
Maximum Confidence Score
Mean Confidence Score
Below Threshold (<0.8)
Total Annotations 0

Human Classification Confidence

Statistic Value
Minimum Confidence Score 0.50
Maximum Confidence Score 1.00
Mean Confidence Score 0.50
Below Threshold (<1) 0
Total Annotations 2791

Chapter 5: Observation Types by Capture Method

This figure summarizes observation types by capture method (Motion, TimeLapse) and overall. Each pie shows the within-method percentage of each observation type—animal, human, vehicle, blank, unknown, and unclassified; providing a quick view of what was observed and its relative weight in the dataset.

Motion

Figure 1. Distribution of observation types for motion-detection records. Slices show the percentage contribution of each observation type within this capture method.

TimeLapse

Figure 2. Distribution of observation types for time-lapse records. Slices show the percentage contribution of each observation type within this capture method.

Total

Figure 3. Overall distribution of observation types across all capture methods. Slices show the percentage contribution of each observation type in the full dataset.

Conclusion

Based on results across the five key areas - Spatial, Temporal, Data Availability, Validation, and Annotation - assess whether the dataset needs further correction before ecological interpretation. Also review the Observation Types by Capture Method chapter when included in your profile.

Use the qualitative descriptions in the Abstract as a user-assessed guide: Perfect for checks reviewed without identified issues, Acceptable for minor issues requiring assessment, and Needs Improvement for major issues requiring correction. No overall classification is calculated by this report; in particular, it does not label every dataset Acceptable or automatically prevent report generation.

Investigate missing or inconsistent records and document any corrections or exclusions. After editing source data, reload them with camData(..., update = TRUE) and rerun status(). Retain the corrected inputs, selected modules, settings, and package versions with your analysis. A successful report does not establish that the survey design or data meet the assumptions of the selected ecological methods.

Acknowledgment

This report was generated using the camtrapReport R package, developed by Elham Ebrahimi at Wageningen University & Research and Utrecht University, the Netherlands. The development of camtrapReport was supported by Biodiversa+ through the Big Picture project. We also gratefully acknowledge the European Observatory of Wildlife network for its contribution to package testing. Users are kindly requested to cite the package when using camtrapReport or publishing results derived from it.