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 report is structured into six main sections: Setup, Data Availability, Species Records, Validation, Annotation, and Observation Types by Capture Method, each offering a concise assessment of dataset integrity and readiness. At the conclusion of the report, you will receive an overall data quality classification, which will be one of the following:
If the status is Perfect or Acceptable, you may proceed with generating the final report. However, if the status is Needs Improvement, report generation is not possible due to major issues identified in the dataset, and the dataset must be improved before continuing.
Note: To ensure the highest quality automated report generation from your camera trap data, we strongly recommend improving your dataset whenever possible. If the status is Acceptable, consider refining it to reach the ideal Perfect level. This may require only minor adjustments, but it can make a significant difference in the final report. If the status is Needs Improvement, we advise resolving the identified issues to bring the dataset to at least the Acceptable level, and ideally to the Perfect standard.
This chapter covers spatial and temporal checks. Dataset spans Belgium (GMU8 LEUVEN) with time zone UTC+2 and coordinate range 50.744°–50.864°N and 4.573°–4.748°E. All required CSV files (deployments.csv, media.csv, observations.csv) and JSON file are available in the dataset. The 396 distinct camera locations are distributed within a minimum convex polygon (MCP) of 80.87 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 | 2696 | Before any filtering |
| Number of duplication in coordinates | 2300 | 🔴 Duplicate coordinates found in 317 groups; 2300 duplicate rows. |
| 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 | 396 | After removing duplicates/missing values |
| Mean distance between locations (m) | 119.99 | Mean inter-location distance |
| Max distance between locations (m) | 1846.35 | 2020_3_1230 and 2020_3_232 |
| Min distance between locations (m) | 70.41 | 2021_12_1865 and 2023_6_1865 |
| Spatial pattern | systematicRandom (indicated explicitly in metadata) | Mixed: Clustered + Regular (using point-pattern analysis) |
| Outliers |
High risk outlier = 1 Medium risk outlier = 0 Low risk outlier = 1 Non-Terrestrial = 0 |
🔴 High-risk (1): 2018_1_691 | 🟡 Low-risk (1): 2023_2_523 | 🟢 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 – 2025 (🟢 complete) |
| Observation year coverage | 1999 – 2025 (🔴 missing: 2000–2017) |
| Deployment first/last setup | 2018-03-25 14:54:34 – 2025-08-01 10:11:35 |
| Observation first/last record | 1999-12-31 – 2025-08-31 |
| 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–Dec 2019: Jan–Dec 2020: Jan–Dec 2021: Jan–Dec 2022: Jan–Dec 2023: Jan–Dec 2024: Jan–Dec 2025: Jan–Sep |
| Calendar coverage | 2719 of 2719 days (100.0%) |
| Max gap between deployments | 0 days (no gaps) 🟢 |
| Min gap between deployments | None (no gaps) 🟢 |
| Missing deployment intervals | None 🟢 |
| Zero-length deployments | None 🟢 |
| Temporal outliers | None 🟢 |
| Invalid timestamp format | 19 timestamp(s) have invalid format 🔴 (rows: 7526, 7552, 7577, 7603, 7631, 7656, 7683, 7709, 7735, 7760, …) |
| 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 (2704 of 2704 missing; 100%) | |
| setupBy | 🟡 Partial (725 of 2704 missing; 26.81%) | |
| baitUse | 🔴 Incomplete (2704 of 2704 missing; 100%) | |
| cameraHeight | 🟢 Complete | |
| Observations | timestamps | 🟡 Partial (19 of 231280 missing; 0.01%) | invalid format: 19 |
| observationType | 🟡 Partial (148533 of 231280 missing; 64.22%) | |
| count | 🟢 Complete | |
| classifiedBy | 🟢 Complete | |
| taxonID | 🟢 Complete (taxonID recorded for 67181 of 67181 animals; 100%) | 82 unique | |
| behavior | 🔴 Incomplete (behavior recorded for 0 of 67181 animals; 0%) | |
| sex | 🟡 Partial (sex recorded for 30484 of 67181 animals; 45.38%) | |
| lifeStage | 🟡 Partial (lifeStage recorded for 34451 of 67181 animals; 51.28%) | |
| angle | 🟡 Partial (angle recorded for 2504 of 67181 animals; 3.73%) | |
| radius | 🟡 Partial (radius recorded for 2504 of 67181 animals; 3.73%) | |
| speed | 🟡 Partial (speed recorded for 2369 of 67181 animals; 3.53%) | |
| individualID | 🟡 Partial (individualID recorded for 2505 of 67181 animals; 3.73%) | |
| Media | media timestamp | 🟡 Partial (38 of 2699739 missing; 0.00%) | invalid format: 38 |
| file.path | 🟢 Complete | |
| comments | 🟢 Complete | |
| favourite | 🟢 Complete | |
| Sequences | nrphotos | 🟢 Complete |
| captureMethod | 🟢 Complete | |
| Taxonomy | taxonID | 83 unique taxonID identified |
| scientificName | 🟢 Complete | |
| vernacularNames.nld | 🟢 Complete | |
| vernacularNames.eng | 🟡 Partial (1 of 83 missing; 1.20%) | |
| 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 | 51958 (57.7%) | 18 (0%) | 38032 (42.3%) | 90008 | 18 (100%) | 0 (0%) |
| timeLapse | 2 (0%) | 41 (0%) | 141229 (100%) | 141272 | 1 (2.4%) | 0 (0%) |
| TOTAL | 51960 (22.5%) | 59 (0%) | 179261 (77.5%) | 231280 | 19 (32.2%) | 0 (0%) |
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 | 0.78 |
| Maximum Confidence Score | 0.95 |
| Mean Confidence Score | 0.90 |
| Below Threshold (<0.8) | 2 |
| Total Annotations | 19 |
| Statistic | Value |
|---|---|
| Minimum Confidence Score | 0.50 |
| Maximum Confidence Score | 1.00 |
| Mean Confidence Score | 0.50 |
| Below Threshold (<1) | 0 |
| Total Annotations | 51960 |
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 five key sections—Spatial, Temporal, Data Availability, Validation, and Annotation, this dataset is classified as Acceptable — Minor issues found; the dataset remains usable, although corrections are recommended.
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.