What the radar sees,
above the Netherlands.
KNMI continuously parses its weather radar for birds. FlySafe turns that into an image every 30 minutes: how much movement is in the air right now, on a scale from zero to a hundred. My microphones in the garden only hear birds that fly low overhead. This page shows what else passes by without my hearing it.
Which days the birds moved.
One column per day, coloured by the dominant intensity category. Bar height = peak of that day. Striped columns are waiting for re-analysis: 10/30 days ready.
Re-analysis of the archive is still running. 61% of the readings have been reprocessed, the rest will follow automatically.
The vast majority is quiet.
- minimal 16% 68×
- low 53% 226×
- moderate 31% 132×
- high 0% 0×
- very high 0% 0×
Measured over the last 30 days. Only rows that have gone through the re-analysis are counted.
When things in nature happen.
Phenology sounds fancy, but it just means keeping track of when things happen in nature. The first time a chiffchaff sings, when the swifts are back, which months you hear a blackbird most. One year tells you nothing yet. Only when you stack several years side by side do you see things shift.
Some species the whole year. Others only on migration.
For each species the most active monthly pattern, scaled to that species’ peak month. Darker cell = relatively more active. Grey cell = no data yet for that month (registration started late November 2025).
| Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Merel | ||||||||||||
| Gierzwaluw | ||||||||||||
| Pimpelmees | ||||||||||||
| Ekster | ||||||||||||
| Koolmees | ||||||||||||
| Houtduif | ||||||||||||
| Kauw | ||||||||||||
| Roodborst | ||||||||||||
| Vink | ||||||||||||
| Turkse Tortel |
First time this year.
The date I first heard a migrant in 2026. From next year there will be a comparison column. Registration only started late November 2025.
| Species | First detection 2026 | Days ago |
|---|---|---|
| Tjiftjaf | 2 Feb | 211d |
| Zwartkop | 26 Feb | 187d |
| Gierzwaluw | 23 Mar | 162d |
| Boerenzwaluw | 30 Mar | 155d |
| Boompieper | 31 Mar | 154d |
| Fitis | 2 Apr | 152d |
| Tuinfluiter | 11 Apr | 143d |
| Koekoek | 12 Apr | 142d |
| Gele Kwikstaart | 4 May | 120d |
| Spotvogel | 13 May | 111d |
| Bonte Vliegenvanger | 14 Aug | 18d |
The data comes from KNMI's FlySafe. That system parses the signal from the Dutch weather radar for everything that is not precipitation and isolates the motion that fits bird migration. Every 30 minutes my NAS fetches the latest BirdTAM image, analyses the colour pixels in the graphic, and stores an average, a peak and a category in my own database. The PNG itself is kept alongside, for anyone who wants to see it up close.
With each new measurement a script also matches how many detections my microphones logged in the same period. That way I can see afterwards whether a busy radar lines up with busy microphones.
6,234 readings since 12 December. Last reading 19 days ago.