Weer-app voor je eigen plek: warmer, natter of zonniger dan normaal?
Een kleine app die het dichtstbijzijnde KNMI-station kiest en zegt hoe de laatste dag zich verhoudt tot dezelfde tijd van het jaar in 1991-2020: in graden, millimeters en zonuren, en als percentiel.
geef_project("lokale-weer-app")geef_bron("knmi-daggegevens")geef_bron("knmi-dataplatform")
Ik heb het project, de geteste aanroepen en de valkuilen. Ik bouw een app met KNMI daggegevens van het weer en KNMI Data Platform. Zo kan het eruitzien:
Dit bouw je zelf. Kopieer de prompt naar Claude, ChatGPT of Cursor, met de MCP-server aan, of volg de stappen hieronder.
(normaal 10,2°, gemiddeld over de dag)
- Min
- 5,7°
- Max
- 16,2°
- Warmste uur
- 15,9°15–16 u
Dit is een mockup, geen werkende versie, met de cijfers uit onze proefdraai van 16 oktober 2026 (KNMI-daggegevens, laatste complete dag 14 oktober 2026). De MCP-server zet je aan met het adres op Voor AI.
Voor wie
Wie een eigen weerwidget, een dagelijkse bot ("Gisteren was het in Groningen zonniger dan 89% van de oktoberdagen") of een les over klimaat wil maken. Ook voor lokale media die bij elk weerbericht willen zeggen of het uitzonderlijk was.
Wat je krijgt
Een script (en daarna een app) dat voor elke plek in Nederland het dichtstbijzijnde weerstation zoekt dat temperatuur, neerslag én zon meet, en de laatste complete dag vergelijkt met dezelfde kalenderdagen (zeven dagen ervoor en erna) in 1991-2020.
Proefdraai op 16 oktober 2026 voor de Grote Markt in Groningen: station 280 Groningen Airport Eelde (11 km). De laatste complete dag in de daggegevens was 14 oktober 2026. Die dag was het gemiddeld 11,6 °C tegen normaal 10,2 °C (warmer dan 64% van de 450 vergelijkbare dagen), viel er geen neerslag tegen normaal 2,0 mm (op 49% van die dagen bleef het ook droog) en scheen de zon 8,8 uur tegen normaal 4,0 uur: zonniger dan 89% van die dagen. Het warmste uur was 15,9 °C, van 15:00 tot 16:00 Nederlandse tijd.
Voor "nu" gebruik je het KNMI Data Platform: het nieuwste 10-minutenbestand (21:30 UTC) stond er om 21:33 UTC, drie minuten na de meting.
De Bilt is 1,8 graden warmer dan een eeuw geleden: gemiddeld 10,8 °C in 1996–2025, tegen 8,9 °C in 1901–1930
Jaargemiddelde temperatuur in De Bilt, 1901 – 2025, in °C. Het hoogste punt was 2024 (11,8).
Zo zou je kunnen starten6 stappen
- 1
Zoek het dichtstbijzijnde station
Er is geen aparte stationslijst-API, maar elk antwoord zónder fmt begint met commentaarregels met nummer, lengte, breedte, hoogte en naam van elk gevraagd station. Vraag stns=ALL voor één recente dag en reken de afstand uit. Let op: in die lijst stonden op 14 oktober 2026 47 stations, maar maar 34 met een temperatuur en 32 met temperatuur, neerslag én zon. Boeien en havens (IJmond 209, Wijdenes 248, Huibertgat 285) meten vaak alleen wind. Kies dus het dichtstbijzijnde station dat de variabelen die je nodig hebt ook echt heeft.
curl -X POST "https://www.daggegevens.knmi.nl/klimatologie/daggegevens" \ -d 'stns=ALL&vars=TG&start=20261014&end=20261014'
# STN LON(east) LAT(north) ALT(m) NAME # 209 4.518 52.465 0.00 IJmond # 260 5.180 52.100 1.90 De Bilt # 280 6.585 53.125 5.20 Groningen Airport Eelde # 380 5.762 50.906 114.30 Maastricht Airport # TG : Etmaalgemiddelde temperatuur (in 0.1 graden Celsius) / Daily mean temperature in (0.1 degrees Celsius) # STN,YYYYMMDD, TG 209,20261014, 215,20261014, 133 235,20261014, 142
- 2
Haal de laatste complete dag op
Vraag een paar dagen tot en met vandaag op en neem de nieuwste die er is. Op 16 oktober 2026 (avond) was dat 14 oktober: de daggegevens lopen een à twee dagen achter, en vandaag staat er nooit in. Waarden zijn gehele getallen in tienden: TG 116 is 11,6 °C, RH 9 is 0,9 mm, SQ 88 is 8,8 uur zon. RH -1 betekent minder dan 0,05 mm, geen ontbrekende waarde.
curl -X POST "https://www.daggegevens.knmi.nl/klimatologie/daggegevens" \ -d 'stns=280&vars=TG:TN:TX:RH:SQ&start=20261012&end=20261016&fmt=json'
[{"station_code":280,"date":"2026-10-12T00:00:00.000Z","TG":106,"TN":56,"TX":158,"RH":-1,"SQ":89}, {"station_code":280,"date":"2026-10-13T00:00:00.000Z","TG":130,"TN":97,"TX":176,"RH":9,"SQ":0}, {"station_code":280,"date":"2026-10-14T00:00:00.000Z","TG":116,"TN":57,"TX":162,"RH":0,"SQ":88}] - 3
Bouw het normaal uit 1991-2020
Haal dertig jaar in één verzoek op (10.958 dagen voor Eelde, ongeveer 700 kB) en bewaar het lokaal: het verandert niet meer. Neem per jaar de dagen binnen zeven dagen van dezelfde kalenderdag; dat geeft 450 vergelijkingsdagen en een stabieler normaal dan één kalenderdag (30 waarden). Behandel 29 februari en de jaarwisseling apart. Bij Eelde stond RH 1.254 keer op -1: tel dat als 0, niet als ontbrekend.
curl -X POST "https://www.daggegevens.knmi.nl/klimatologie/daggegevens" \ -d 'stns=280&vars=TG:RH:SQ&start=19910101&end=20201231&fmt=json'
[{"station_code":280,"date":"1991-01-01T00:00:00.000Z","TG":43,"RH":10,"SQ":43}, {"station_code":280,"date":"1991-01-02T00:00:00.000Z","TG":88,"RH":171,"SQ":0}, {"station_code":280,"date":"1991-01-03T00:00:00.000Z","TG":64,"RH":18,"SQ":10}, {"station_code":280,"date":"1991-01-04T00:00:00.000Z","TG":56,"RH":-1,"SQ":53}, ... {"station_code":280,"date":"2020-12-31T00:00:00.000Z","TG":17,"RH":-1,"SQ":0}] - 4
Uur voor uur, in Nederlandse tijd
Voor een dagverloop gebruik je /uurgegevens. Andere variabelen: T (temperatuur) in plaats van TG; TG vragen geeft HTTP 500 met een HTML-pagina. start en end zijn JJJJMMDDUU. Uur 1 is 00:00 tot 01:00 UTC en uur 24 is 23:00 tot 24:00 UTC. Tel er in de zomertijd twee uur bij op, in de wintertijd één: uur 14 op 14 oktober is 15:00 tot 16:00 in Nederland. SQ per uur is in tienden van een uur (10 = het hele uur zon).
curl -X POST "https://www.daggegevens.knmi.nl/klimatologie/uurgegevens" \ -d 'stns=280&vars=T:RH:SQ&start=2026101413&end=2026101416&fmt=json'
[{"station_code":280,"date":"2026-10-14T00:00:00.000Z","hour":13,"T":155,"RH":0,"SQ":7}, {"station_code":280,"date":"2026-10-14T00:00:00.000Z","hour":14,"T":159,"RH":0,"SQ":10}, {"station_code":280,"date":"2026-10-14T00:00:00.000Z","hour":15,"T":156,"RH":0,"SQ":10}, {"station_code":280,"date":"2026-10-14T00:00:00.000Z","hour":16,"T":142,"RH":0,"SQ":10}] - 5
Vandaag: de 10-minutenwaarnemingen van het KNMI Data Platform
Wil je ook het weer van nu, dan heb je het KNMI Data Platform nodig. Daar staat elke 10 minuten een NetCDF-bestand met alle automatische stations. Het vraagt een sleutel in de kop Authorization. Eigen sleutel: maak een account op developer.dataplatform.knmi.nl, log in, ga naar de API Catalogue en klik bij de Open Data API op "Request an API key". Schrijf hem meteen op: hij wordt maar één keer getoond. Die geeft 1.000 verzoeken per uur voor jou alleen. De anonieme sleutel op dezelfde site is gedeeld door iedereen (50 per minuut, 3.000 per uur) en gaf ons eerder een 429. Wij deden één aanroep: de nieuwste twee bestanden. Let op: het bestand van 21:20 werd om 21:33 nog bijgewerkt (lastModified), dus een bestand kan na verschijnen nog veranderen. Station 280 heet in deze bestanden 06280. Niet elke 10 minuten opnieuw vragen of er iets nieuws is: daarvoor is de Notification Service (MQTT).
https://api.dataplatform.knmi.nl/open-data/v1/datasets/10-minute-in-situ-meteorological-observations/versions/1.0/files?maxKeys=2&orderBy=created&sorting=desc
HTTP 200, x-ratelimit-limit: 3000, x-ratelimit-remaining: 1451 (anonieme sleutel, 16-10-2026 21:34 UTC) {"isTruncated": true, "resultCount": 2, "files": [ {"filename": "KMDS__OPER_P___10M_OBS_L2_202610162130.nc", "size": 156247, "created": "2026-10-16T21:33:41+00:00", "lastModified": "2026-10-16T21:34:11+00:00"}, {"filename": "KMDS__OPER_P___10M_OBS_L2_202610162120.nc", "size": 176204, "created": "2026-10-16T21:23:42+00:00", "lastModified": "2026-10-16T21:33:39+00:00"}], "maxResults": 2, "startAfterFilename": "", "nextPageToken": "eyJjcmVhdGVkIjog..."} - 6
Vergelijk en vertel het in gewone taal
Een verschil in graden zegt weinig zonder spreiding. Geef daarom ook het percentiel: "warmer dan 64% van de vergelijkbare dagen". Voor neerslag werkt een gemiddelde slecht (de helft van de dagen is droog en een paar buien trekken het omhoog): zeg liever hoeveel van de vergelijkbare dagen droog waren of meer dan 1 mm hadden. Zet de bron eronder: "KNMI, station 280 Groningen Airport Eelde, normaal 1991-2020, recente dagen voorlopig".
Hoe de bronnen samenkomen
- KNMI daggegevens van het weerKNMI Data Platformvia
stationsnummer (280 in de daggegevens, 06280 in de 10-minutenbestanden)De daggegevens geven het normaal en de laatste complete dag zonder sleutel; het Data Platform vult het gat van vandaag en gisteren met 10-minutenwaarnemingen van hetzelfde station.
Laat AI het bouwen
Plak deze prompt in Claude, ChatGPT, Cursor of Lovable. Hij noemt de echte endpoints, de koppelsleutels en de valkuilen, zodat de assistent meteen werkende code schrijft. Controleer de uitkomst altijd met de bron zelf.
Bouw een kleine weer-app (één webpagina met een eigen serverroute, of een Python-script) die voor een plek in Nederland zegt of de laatste dag warmer, natter of zonniger was dan normaal.
Invoer: een plaatsnaam of coördinaten (breedte, lengte in WGS84). Uitvoer: een kaart met drie regels, bijvoorbeeld "Temperatuur 11,6 °C, normaal 10,2 °C: warmer dan 64% van de vergelijkbare dagen", plus het station, de afstand en de datum.
Data: KNMI daggegevens, geen sleutel, POST met formuliervelden (geen JSON-body):
curl -A "mijn-project/1.0 (+jij@voorbeeld.nl)" -d "stns=280&vars=TG:RH:SQ&start=19910101&end=20201231&fmt=json" https://www.daggegevens.knmi.nl/klimatologie/daggegevens
Uurwaarden: hetzelfde op /klimatologie/uurgegevens met start/end als JJJJMMDDUU en vars=T:RH:SQ.
Wat je moet weten:
- Stationslijst: er is geen aparte lijst. Een aanroep zonder fmt (stns=ALL) geeft commentaarregels "# STN LON(east) LAT(north) ALT(m) NAME". Parse die en kies het dichtstbijzijnde station dat de variabelen echt heeft: van de 47 stations hadden er op 14 oktober 2026 maar 32 temperatuur, neerslag én zon. Lege velden in de CSV betekenen "niet gemeten".
- Alle waarden zijn gehele getallen in tienden: TG 116 = 11,6 °C, RH 9 = 0,9 mm, SQ 88 = 8,8 uur. RH -1 = minder dan 0,05 mm: tel als 0, niet als ontbrekend.
- De daggegevens lopen een à twee dagen achter. Vraag de laatste week op en neem de nieuwste datum die voor jouw station alle drie de waarden heeft. Noem in de app "laatste complete dag", niet "vandaag". Recente dagen zijn voorlopig.
- Normaal: 1991-2020, de dagen binnen ±7 dagen van dezelfde kalenderdag (450 dagen). Houd rekening met de jaarwisseling (een datum in januari kijkt terug naar december) en 29 februari. Cache de dertig jaar: die veranderen niet.
- Geef naast het gemiddelde het percentiel (aandeel vergelijkbare dagen dat kouder/minder zonnig was). Voor neerslag: aandeel droge dagen (< 0,1 mm) in plaats van alleen het gemiddelde.
- Uurgegevens: uur 1 = 00:00 tot 01:00 UTC, uur 24 = 23:00 tot 24:00 UTC. Omzetten naar Europe/Amsterdam (zomertijd +2, wintertijd +1). Vraag je TG op /uurgegevens, dan krijg je HTTP 500 met een HTML-pagina: daar heet het T.
- Het veld date is altijd 00:00 UTC van de dag ("2026-10-14T00:00:00.000Z"); gebruik alleen de eerste tien tekens, anders schuift de dag in een tijdzone-omzetting.
- Ruwe stationsreeksen, niet gehomogeniseerd. Prima voor "hoe was het vergeleken met normaal", niet voor trends. Zet "Bron: KNMI, CC BY 4.0" eronder.
- Zet altijd een eigen User-Agent; doe het ophalen in een serverroute of script, en vraag niet bij elke paginaweergave opnieuw dertig jaar op.
Optioneel "nu": het KNMI Data Platform (api.dataplatform.knmi.nl/open-data/v1/datasets/10-minute-in-situ-meteorological-observations/versions/1.0/files) met een eigen sleutel in de kop Authorization (aanvragen op developer.dataplatform.knmi.nl, API Catalogue, "Request an API key"). Lijst met orderBy=created&sorting=desc&maxKeys=1, haal via .../files/<naam>/url een tijdelijke downloadlink en lees het NetCDF-bestand (xarray of netCDF4). Stationsnummers daarin met 06 ervoor (06280). Lees variabelenamen en eenheden uit de attributen van het bestand. Zet de sleutel in een omgevingsvariabele, nooit in de code of in de browser. Niet pollen: gebruik de Notification Service als je elke 10 minuten iets nieuws wilt.
NIET gebruiken: Open-Meteo (robots.txt verbiedt alles).
Probeer het zelf
De kern van het project in een klein script. Nodig: Python 3.10+ en requests. Getest op 2026-10-16; hieronder de echte uitvoer van die proefdraai.
# Is het bij jou warmer, natter of zonniger dan normaal? Laatste complete dag van het dichtstbijzijnde KNMI-station,
# vergeleken met dezelfde kalenderdagen (±7 dagen) in 1991-2020. Bron: KNMI daggegevens, geen sleutel nodig.
import math, statistics, requests
from datetime import date, datetime, timedelta, timezone
from zoneinfo import ZoneInfo
KNMI = "https://www.daggegevens.knmi.nl/klimatologie"
UA = {"User-Agent": "mijn-project/1.0 (+jij@voorbeeld.nl)"}
PLEK, LAT, LON = "Groningen, Grote Markt", 53.2194, 6.5665 # zet hier je eigen plek
def post(pad, **velden):
r = requests.post(f"{KNMI}/{pad}", data=velden, headers=UA, timeout=120)
r.raise_for_status()
return r
# 1. Stations met coördinaten staan in de kop van het tekstantwoord (zonder fmt). Haal meteen de laatste dagen op.
vandaag = date.today()
tekst = post("daggegevens", stns="ALL", vars="TG:RH:SQ",
start=f"{vandaag - timedelta(days=6):%Y%m%d}", end=f"{vandaag:%Y%m%d}").text
stations, waarden = {}, {}
for regel in tekst.splitlines():
delen = regel.lstrip("# ").split()
if regel.startswith("# ") and len(delen) >= 5 and delen[0].isdigit(): # '# 280 6.585 53.125 5.20 Groningen Airport Eelde'
stations[int(delen[0])] = (float(delen[1]), float(delen[2]), " ".join(delen[4:]))
elif not regel.startswith("#") and regel.strip(): # ' 280,20261014, 118, 0, 65'
stn, dag, tg, rh, sq = [v.strip() for v in regel.split(",")]
if tg and rh and sq: # lege velden: station meet het niet
waarden.setdefault(int(stn), {})[dag] = (int(tg), int(rh), int(sq))
def km(lon, lat):
return 6371 * math.hypot(math.radians(lon - LON) * math.cos(math.radians(LAT)), math.radians(lat - LAT))
laatste = max(d for w in waarden.values() for d in w) # de daggegevens lopen 1 à 2 dagen achter
kandidaten = sorted((km(*stations[s][:2]), s) for s, w in waarden.items() if laatste in w)
afstand, stn = kandidaten[0]
tg, rh, sq = waarden[stn][laatste]
dag = datetime.strptime(laatste, "%Y%m%d").date()
print(f"{PLEK}: dichtstbijzijnde station met temperatuur, neerslag en zon is {stn} {stations[stn][2]} ({afstand:.0f} km)")
print(f"Laatste complete dag: {dag:%d-%m-%Y}\n")
# 2. Dezelfde kalenderdagen (±7) in 1991-2020, in één verzoek (ruim 10.000 dagen).
reeks = post("daggegevens", stns=stn, vars="TG:RH:SQ", start="19910101", end="20201231", fmt="json").json()
def in_venster(d):
dd = date(2001, int(d[5:7]), int(d[8:10])) if d[5:10] != "02-29" else date(2001, 2, 28)
verschil = abs((dd - date(2001, dag.month, dag.day)).days)
return min(verschil, 365 - verschil) <= 7
venster = [x for x in reeks if in_venster(x["date"]) and None not in (x["TG"], x["RH"], x["SQ"])]
t = [x["TG"] / 10 for x in venster]
r = [max(x["RH"], 0) / 10 for x in venster] # -1 = minder dan 0,05 mm: als 0 tellen
z = [x["SQ"] / 10 for x in venster]
def plek(w, lijst):
return 100 * sum(v < w for v in lijst) / len(lijst)
print(f"Vergelijking met {len(venster)} dagen rond {dag:%d-%m} in 1991-2020:")
print(f" temperatuur {tg/10:5.1f} °C normaal {statistics.mean(t):5.1f} °C warmer dan {plek(tg/10, t):.0f}% van die dagen")
print(f" neerslag {max(rh,0)/10:5.1f} mm normaal {statistics.mean(r):5.1f} mm droog (<0,1 mm) op {100*sum(v < .1 for v in r)/len(r):.0f}% van die dagen")
print(f" zon {sq/10:5.1f} uur normaal {statistics.mean(z):5.1f} uur zonniger dan {plek(sq/10, z):.0f}% van die dagen")
# 3. Uur voor uur: uur 1 = 00:00-01:00 UTC. Omzetten naar Nederlandse tijd voordat je het toont.
uren = post("uurgegevens", stns=stn, vars="T:RH:SQ", start=f"{laatste}01", end=f"{laatste}24", fmt="json").json()
warmst = max((u for u in uren if u["T"] is not None), key=lambda u: u["T"])
eind = (datetime(dag.year, dag.month, dag.day, tzinfo=timezone.utc) + timedelta(hours=warmst["hour"])).astimezone(ZoneInfo("Europe/Amsterdam"))
print(f"\nWarmste uur: {warmst['T']/10:.1f} °C, van {eind - timedelta(hours=1):%H:%M} tot {eind:%H:%M} Nederlandse tijd (uur {warmst['hour']} in UTC)")
Groningen, Grote Markt: dichtstbijzijnde station met temperatuur, neerslag en zon is 280 Groningen Airport Eelde (11 km) Laatste complete dag: 14-10-2026 Vergelijking met 450 dagen rond 14-10 in 1991-2020: temperatuur 11.6 °C normaal 10.2 °C warmer dan 64% van die dagen neerslag 0.0 mm normaal 2.0 mm droog (<0,1 mm) op 49% van die dagen zon 8.8 uur normaal 4.0 uur zonniger dan 89% van die dagen Warmste uur: 15.9 °C, van 15:00 tot 16:00 Nederlandse tijd (uur 14 in UTC)
Waar het misgaat
- Tienden: TG, TN, TX, RH en SQ zijn gehele getallen in tienden van een graad, millimeter of uur. Vergeet je te delen, dan was het 116 graden.
- RH -1 is geen ontbrekende waarde maar "minder dan 0,05 mm". Bij Eelde kwam dat in 1991-2020 1.254 keer voor. Gooi je die dagen weg, dan wordt het normaal te nat.
- Het dichtstbijzijnde station meet niet altijd wat je zoekt: van 47 stations hadden er op 14 oktober 2026 maar 32 temperatuur, neerslag en zon. Kies per variabele of filter op stations die alles hebben.
- Vandaag staat niet in de daggegevens, en gisteren vaak ook nog niet: op 16 oktober 2026 's avonds was 14 oktober de nieuwste dag, ook in /uurgegevens. Voor vandaag heb je het Data Platform met een sleutel nodig.
- Uurgegevens zijn in UTC en tellen van 1 tot 24 (uur 1 = 00:00 tot 01:00 UTC). Zonder omzetting zet je de warmste middag twee uur te vroeg.
- Een verkeerde variabele op het verkeerde endpoint (TG op /uurgegevens) geeft HTTP 500 met een HTML-pagina, geen JSON-foutmelding. Controleer de statuscode voordat je .json() doet.
- De anonieme sleutel van het Data Platform is gedeeld: x-ratelimit-remaining stond bij onze ene aanroep op 1.451 van 3.000 per uur, en op een ander moment gaf hij 429. Bouw niets blijvends op die sleutel.
Verder bouwen
- Dagelijkse bot: laat het script elke ochtend draaien en post alleen als een waarde in de bovenste of onderste 10% valt ("zonnigste 14 oktober sinds ..."). Zoek dan ook de rangorde over alle jaren sinds het station begon.
- Maand- en seizoensoverzicht: tel de afwijkingen op per maand en laat zien of deze herfst tot nu toe warmer en droger is dan 1991-2020, met een strook per dag.
- Combineer met Luchtmeetnet: zet windsnelheid (FG) en de uurwaarden stikstofdioxide naast elkaar en laat zien of windstille dagen bij jou slechtere lucht geven.
- Voor een plek ver van een station: gebruik ERA5 (account nodig) of interpoleer tussen de twee of drie dichtstbijzijnde stations, en zeg in de app hoe ver het station is.
Meer met deze data
Zomerse dagen (25 °C of warmer) in De Bilt (KNMI-metingen): gemiddeld 29 dagen per jaar in 1996–2025, 87% meer dan in 1901–1930
Zomerse dagen (25 °C of warmer) in De Bilt (KNMI-metingen), 1901 – 2025, in dagen per jaar. Het hoogste punt was 1947 (55).
Zonnestraling op een plat vlak in De Bilt (KNMI-metingen): gemiddeld 1.038 kWh per m² per jaar in 1996–2025, 8% meer dan in 1958–1987
Zonnestraling op een plat vlak in De Bilt (KNMI-metingen), 1958 – 2025, in kWh per m² per jaar. Dat is het hoogste punt in de reeks.
De bronnen2

KNMI daggegevens van het weerUitgewerkt
Dagwaarden van ruim vijftig weerstations: temperatuur, neerslag, zon en wind. De reeks van De Bilt begint in 1901.

KNMI Data Platform
Het KNMI zet zijn ruwe en bewerkte data op één platform: 10-minutenwaarnemingen van alle weerstations, radarbeelden, HARMONIE-weerverwachtingen, klimaatreeksen en satellietdata. Op 16 oktober 2026 stonden er 449 datasets, de meeste onder CC BY 4.0. Je haalt bestanden (NetCDF, HDF5, GRIB) op met de Open Data API; daarvoor is een sleutel nodig, maar het KNMI publiceert zelf een anonieme sleutel om te proberen.
Meer om te bouwen
Alert als de rivier bij jou te hoog of te laag staatAlert
Klimaatrisico-check voor een adresTool
Luchtkwaliteit-alert voor je eigen straatAlert
Natuur in je buurt: welke soorten zijn er gezien en hoe groen is het?App
Natuurbrandkaart: risico van vandaag, hittepunten en verbrande natuurKaart
Nederland naast Europa: een vergelijker voor elke indicatorTool