Camera Trap Repository: Amsterdamse Waterleidingduinen (Netherlands)¶

Category: Terrestrial Wildlife · Size: 21.6 GB · Format: ZIP License: CC-BY-4.0 · Zenodo record · Data sheet on the CSDH

47,597 annotated camera-trap images from three pilot studies in the Amsterdam dunes, with 2,779 observations of 20 species, in the standard Camtrap DP format.

The data is mounted read-only at /srv/data/camera-trap-amsterdam/. Save anything you produce in your personal folder (~/).

⚠️ Large dataset (21.6 GB). Your session has 4 GB RAM and your home folder is shared — don't extract the whole archive. Read the entries you need straight from inside the ZIP (see below); if you must extract, take only specific files, not everything.

What's in the dataset¶

In [1]:
from pathlib import Path

DATA = Path('/srv/data/camera-trap-amsterdam')

for f in sorted(DATA.rglob('*')):
    if f.is_file():
        print(f"{f.relative_to(DATA)}  ({f.stat().st_size/1e6:,.1f} MB)")
pilot1.zip  (11,793.2 MB)
pilot2.zip  (345.9 MB)
pilot3.zip  (9,438.1 MB)

Explore the ZIP¶

The dataset comes compressed. We list its contents without extracting; if it contains CSVs, pandas can read them straight from inside the ZIP. Remember: /srv/data is read-only — if you need to extract, do it into your folder (~/).

In [2]:
import zipfile
import pandas as pd

zips = sorted(DATA.rglob('*.zip'))
z = zipfile.ZipFile(zips[0])
print('Using:', zips[0].name)
names = z.namelist()
print(f'{len(names)} files inside; first 20:')
for n in names[:20]:
    print('  ', n)

csv_inside = [n for n in names if n.lower().endswith('.csv')]
if csv_inside:
    df = pd.read_csv(z.open(csv_inside[0]), nrows=100_000, low_memory=False)
    display(df.head())
Using: pilot1.zip
30379 files inside; first 20:
   pilot1/
   pilot1/datapackage.json
   pilot1/deployments.csv
   pilot1/events.csv
   pilot1/media/
   pilot1/media/AWD_2_13082021_pilot bc34dfce-8ee3-4e97-870e-d53079b80ce1/
   pilot1/media/AWD_2_13082021_pilot bc34dfce-8ee3-4e97-870e-d53079b80ce1/0001660e-0a49-4dd8-a703-e1cce7f66166.JPG
   pilot1/media/AWD_2_13082021_pilot bc34dfce-8ee3-4e97-870e-d53079b80ce1/00059213-4a30-489b-bd81-941a0da19792.JPG
   pilot1/media/AWD_2_13082021_pilot bc34dfce-8ee3-4e97-870e-d53079b80ce1/0009d29a-ef19-4762-b800-9f2b0b955658.JPG
   pilot1/media/AWD_2_13082021_pilot bc34dfce-8ee3-4e97-870e-d53079b80ce1/000a1652-a627-4829-8c1e-abb722940691.JPG
   pilot1/media/AWD_2_13082021_pilot bc34dfce-8ee3-4e97-870e-d53079b80ce1/0011fbcf-1b08-4275-a73a-99b2608e21c5.JPG
   pilot1/media/AWD_2_13082021_pilot bc34dfce-8ee3-4e97-870e-d53079b80ce1/00126f95-f682-4d72-87b8-df9c6b7e2080.JPG
   pilot1/media/AWD_2_13082021_pilot bc34dfce-8ee3-4e97-870e-d53079b80ce1/00174f0e-a771-4b07-a5cc-83327314e279.JPG
   pilot1/media/AWD_2_13082021_pilot bc34dfce-8ee3-4e97-870e-d53079b80ce1/001a3268-e234-434e-ab4e-3be56a4e5ab9.JPG
   pilot1/media/AWD_2_13082021_pilot bc34dfce-8ee3-4e97-870e-d53079b80ce1/001b46cb-5402-45cb-8298-bf001478fafa.JPG
   pilot1/media/AWD_2_13082021_pilot bc34dfce-8ee3-4e97-870e-d53079b80ce1/001ca8c4-10cb-4715-bbb5-2f044e82dc9b.JPG
   pilot1/media/AWD_2_13082021_pilot bc34dfce-8ee3-4e97-870e-d53079b80ce1/001ce03b-ebfd-496e-a531-50e9382b98af.JPG
   pilot1/media/AWD_2_13082021_pilot bc34dfce-8ee3-4e97-870e-d53079b80ce1/00200137-582f-44a5-8797-fb9f2771cd7f.JPG
   pilot1/media/AWD_2_13082021_pilot bc34dfce-8ee3-4e97-870e-d53079b80ce1/0020de7c-451e-4568-b5df-c5a07ec93d17.JPG
   pilot1/media/AWD_2_13082021_pilot bc34dfce-8ee3-4e97-870e-d53079b80ce1/0021e011-1a8a-43ba-8ef6-89c3201668e0.JPG
deploymentID locationID locationName latitude longitude coordinateUncertainty deploymentStart deploymentEnd setupBy cameraID ... cameraTilt cameraHeading detectionDistance timestampIssues baitUse featureType habitat deploymentGroups deploymentTags deploymentComments
0 AWD_2_13082021_pilot bc34dfce-8ee3-4e97-870e-d... 17d28e00-08d0-4e98-bf8e-dbad332f419e AWD Zilkerpad 52.32333 4.503056 NaN 2021-08-14T12:00:19+0200 2022-12-31T22:57:03+0100 Rotem Zilber bc34dfce-8ee3-4e97-870e-d53079b80ce1 ... NaN NaN NaN NaN False NaN NaN pilot:AWD pilot 1 lens:52 degree lens | treatment:exclosure NaN
1 AWD_4_13082021_pilot b87a8c9c-9eea-40b0-956c-d... 0f25f279-d897-4daa-add2-d31224bcd5d9 AWD Wolfsveld 52.30806 4.498889 NaN 2021-08-14T00:01:17+0200 2022-12-31T12:00:27+0100 Rotem Zilber b87a8c9c-9eea-40b0-956c-dcabb258d67f ... NaN NaN NaN NaN False NaN NaN pilot:AWD pilot 1 lens:52 degree lens | treatment:exclosure NaN
2 AWD_3_13082021_pilot fc4f6806-8b00-4aef-8f08-0... 567f7834-210f-4f41-bc18-a62f1cb3bd79 AWD van Limburg Stirumvallei 52.30696 4.488528 NaN 2021-08-13T11:42:57+0200 2022-12-31T22:12:27+0100 Rotem Zilber fc4f6806-8b00-4aef-8f08-0fb901143504 ... NaN NaN NaN NaN False NaN NaN pilot:AWD pilot 1 lens:52 degree lens | treatment:exclosure NaN

3 rows × 24 columns

Your turn¶

This is just the starting point. Some ideas:

  • Check the dataset challenge on its CSDH data sheet.
  • Work on a copy: right-click the file → Duplicate (or Save Notebook As…). Your changes only live in your Hub space — they're never pushed to GitHub.
  • Edited this notebook and want the original back? Use the Restore cell below (or the restore.ipynb notebook).
  • Questions and results: on the platform forum.

Attribution: data from Camera Trap Repository: Amsterdamse Waterleidingduinen (Netherlands), license CC-BY-4.0. Notebook from the Citizen Science Data Hub (CSDH) — Fundación Ibercivis.

In [3]:
# ⚠️ RESTORE: this DISCARDS YOUR CHANGES to this notebook and resets it to the original.
# 1. Uncomment the line below (remove the #)   2. Run this cell
# 3. Then: menu File → Reload Notebook from Disk

# !git -C ~/citizen-science-data fetch -q origin && git -C ~/citizen-science-data checkout origin/main -- camera-trap-amsterdam.ipynb && echo "Restored. Now: File → Reload Notebook from Disk"