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:
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.
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².
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.
| 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. |
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.
| 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 🟢 |
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.
| 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 |
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.
| 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%) |
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.
| Statistic | Value |
|---|---|
| Minimum Confidence Score | |
| Maximum Confidence Score | |
| Mean Confidence Score | |
| Below Threshold (<0.8) | |
| Total Annotations | 0 |
| Statistic | Value |
|---|---|
| Minimum Confidence Score | 0.50 |
| Maximum Confidence Score | 1.00 |
| Mean Confidence Score | 0.50 |
| Below Threshold (<1) | 0 |
| Total Annotations | 2791 |
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.
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.
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.