← Back to the map

Contribute data

Wildlife Network is built from what people's devices hear and see. If you run a bird station, a bat detector or a camera trap, you can add it in a few minutes. If you don't have one yet, this page shows what to get and how to set it up. It is free, and you keep the rights to your data.

Where are you starting from?

Already on BirdWeather? You are done

Wildlife Network reads BirdWeather's public detections (never the recordings). If you have a BirdWeather PUC, or your BirdNET-Pi or BirdNET-Go station uploads to BirdWeather, your detections are on the map and in every measure. Do not install the agent as well: the same detections would arrive twice and be counted twice.

Not sure? Look for your station on app.birdweather.com. If it is there, you are included.

Want more say in how your station appears? Opt it in: choose a name or stay anonymous, pick how precisely it is located, and share its full daily counts in the open data releases under your licence.

I have a device

You install one small program, wdx-agent, on the computer that holds your detections. It is a single open source Python file with no dependencies. It reads what your detector has already found and sends it. It never changes your detector's files, and it catches up by itself after being offline.

BirdNET-Pi

Open a terminal on the Pi (or connect with SSH) and run:

curl -fsSL https://wlnw.org/agent/install.sh | bash

The installer finds BirdNET-Pi's database, registers your station, and starts a background service. It uses the location you set in BirdNET-Pi. That is all.

BirdNET-Go

Run the same command on the machine that runs BirdNET-Go:

curl -fsSL https://wlnw.org/agent/install.sh | bash

If it cannot find the database, tell it where birdnet.db is:

curl -fsSL https://wlnw.org/agent/install.sh | WDX_SOURCE=birdnet-go WDX_PATH=/path/to/birdnet.db bash

Works with both BirdNET-Go database layouts, the current one and the original one. Detections BirdNET-Go marks as unlikely for your location are skipped.

Camera trap

Cameras take pictures; a classifier names the animals. Run SpeciesNet over your images, then point the agent at the folder with its results. A camera has no GPS in the result file, so give its location:

curl -fsSL https://wlnw.org/agent/install.sh | WDX_SOURCE=speciesnet WDX_PATH=/data/camtrap WDX_LAT=11.41 WDX_LON=76.69 bash

Blank images, people and vehicles are never sent. One agent serves one location, so use one setup per camera site.

Want a person to check the results first? Use SpeciesNet Studio instead of the agent: it runs SpeciesNet, lets you confirm, correct or flag each image, and sends the reviewed results here from its Export dialog, marked as confirmed by a reviewer. Get its key with:

curl -X POST https://wlnw.org/api/v1/register \
  -H 'content-type: application/json' \
  -d '{"name":"my-camera-site","source":"speciesnet-studio"}'

Use one route per camera: the agent sends unchecked predictions automatically, Studio sends checked ones.

Bat detector

Record with an ultrasonic recorder, classify the recordings with BatDetect2, and point the agent at the results folder:

curl -fsSL https://wlnw.org/agent/install.sh | WDX_SOURCE=batdetect2 WDX_PATH=/data/bats/results WDX_LAT=51.51 WDX_LON=-0.13 bash

BatDetect2's default model knows UK species. Elsewhere, use a model trained for your region, or the names will be wrong.

Other software (Kaleidoscope, SonoBat and similar)

If your software can export a table of detections, the agent can read it. You tell it which columns hold the species, the time and the score. The CSV guide has a worked example.

Your own detector or code

Send detections straight to the API in the open WDX format. Get a key, then post events:

curl -X POST https://wlnw.org/api/v1/register \
  -H 'content-type: application/json' \
  -d '{"name":"my-station","source":"other"}'

curl -X POST https://wlnw.org/api/v1/events \
  -H "Authorization: Bearer wn_YOUR_KEY" \
  -H "content-type: application/x-ndjson" \
  --data-binary @events.wdx.ndjson

I want to set one up

Three kinds of station, from easiest to most involved. Each links to the maker's own guide for the build, then you come back here to connect it.

A bird listening station

The most popular way to start. It sits in a garden or on a balcony and identifies birds by their song, all day, every day.

  1. 1Get the parts: a Raspberry Pi (4B, 5, 3B+ or Zero 2 W), a microSD card of 32 GB or more, a USB microphone (or a USB sound card with a small lavalier microphone), and a power supply. For outdoors, add a weatherproof box.
  2. 2Install the listening software: follow the BirdNET-Pi guide, or BirdNET-Go if you prefer. Set your latitude and longitude in its settings.
  3. 3Let it listen for a day and check that it is identifying birds in its own web page.
  4. 4Connect it: run the one line install above.

Prefer something ready made? A BirdWeather PUC is a finished device that reports to BirdWeather, and so to Wildlife Network, with nothing to build.

A bat detector

Bats call above the range of human hearing, so you need a recorder that captures ultrasound.

  1. 1Get a recorder: an AudioMoth is the common low cost choice. Set it to a sample rate of 250 kHz or more and schedule it from dusk to dawn.
  2. 2Put it out near water, a hedge line or a woodland edge, a few metres up, away from rustling leaves.
  3. 3Collect the recordings and copy them to a computer.
  4. 4Classify them with BatDetect2, which writes a result file for each recording.
  5. 5Connect it: run the bat detector install above, pointing at the results folder.

A camera trap

For mammals and ground birds. A camera takes a picture when something moves in front of it.

  1. 1Get a trail camera and an SD card. Any model that saves ordinary photos works.
  2. 2Mount it at about knee height on a game trail or by water, facing north or south to avoid direct sun, with nothing moving in front.
  3. 3Collect the card every few weeks and copy the images to a computer. Keep the file dates when copying, since the agent uses them as the time of each sighting.
  4. 4Classify the images with SpeciesNet.
  5. 5Connect it: run the camera trap install above with the camera's location.

Check that it is working

What is shared, and your rights

If something goes wrong

The installer finds no databaseTell it the source and path, as in the BirdNET-Go example above.
"no coordinates" in the logAdd latitude and longitude to /etc/wdx-agent.ini.
"server rejected the whole batch"The key was registered for a different source. Register a new one for the right source.
Nothing is sentRun the dry run. If it shows 0 events, everything is below min_confidence or already sent.
Something elseThe agent guide has a longer list, and you can open an issue.

Full reference, every setting, and manual install steps: the wdx-agent guide. Problems or questions: open an issue.

How your data is used in the measures: Methods. Made by Arun Rajiah.