Schone Maaswaterketen · open data

Maas-meetdata

Meetreeksen van de hele Maas, van de bron in Frankrijk tot Keizersveer, in één taal en op één adres. Geen account en geen sleutel nodig.

https://sta.wbd-rd.nl/maas/v1.1 Open
…meetpunten
…meetreeksen
…waarden
…landen

Voorbeeld van wat je ermee bouwt: het levende rapport van het meetnet Schone Maaswaterketen. Dat is de nulrapportage, maar het rekent zichzelf uit deze API.

Hoe het in elkaar zit

MEETPUNTThing Things('rws:eijsden') naam, ligging, land, rivier-km langs de hele Maas MEETREEKSDatastream Datastreams('rws:eijsden: CONCTTE.Cl.nf.TP') één stof · één eenheid · één bron WAARDEObservation tijd · result · status nieuwste waarde: … heeftheeft …:dag = daggemiddelde van een continue reeks
Elke link in een antwoord leidt naar de volgende stap. Klik dus gewoon door: meetpunt → reeksen → waarden.

Vijf recepten, elk één link

Elke link werkt in de browser, in QGIS en in Excel (Gegevens → Van het web). $-opties kun je combineren en aanpassen. Wil je alles zien wat kan, gebruik dan de OpenAPI-beschrijving of de OGC SensorThings-standaard.

In Python

import requests, pandas as pd

url = "https://sta.wbd-rd.nl/maas/v1.1/Datastreams('rws:eijsden:T.NVT.NVT.SB')/Observations"
params = {"$filter": "phenomenonTime ge 2026-01-01T00:00:00Z", "$orderby": "phenomenonTime",
          "$select": "phenomenonTime,result,resultQuality", "$top": 10000}
rows = []
while url:                                  # max 10.000 per pagina: volg @iot.nextLink
    page = requests.get(url, params=params, timeout=60).json()
    rows += page["value"]
    url, params = page.get("@iot.nextLink"), None
df = pd.DataFrame(rows)

Wat de velden betekenen

VeldBetekenis
resultDe waarde, altijd in de eenheid van de reeks (unitOfMeasurement, Aquo). Omrekeningen zijn al gedaan; ammonium en nitraat staan bijvoorbeeld overal "als N".
resultQualityStatus bij de bron: ongecontroleerd → gecontroleerd → definitief, of twijfelachtig of afgekeurd. Een status kan later nog veranderen; de dienst werkt hem bij. In CSV staat de status tussen extra aanhalingstekens, omdat dit veld JSON is.
parameters/censoring<LOQ of <LOD: de waarde ligt onder de bepalingsgrens; result is dan die grens. >: boven het meetbereik.
parameters/bronStatusDe ruwe statusvelden van de bron, onveranderd, zodat je kunt herleiden waar een status vandaan komt.
phenomenonTimeMeettijd in UTC. Bij een daggemiddelde is het een interval (UTC-dag), met parameters min, max en n.
properties/groupDe sleutel om bronnen te vergelijken: dezelfde groep is dezelfde stof, ook als de bronnen een eigen code hebben (bijvoorbeeld PFOS lineair bij RWS en totaal bij Hub'Eau).
properties/riverKmAfstand vanaf de bron langs de Maas, in km (Chooz ≈ 465, Eijsden ≈ 606, Keizersveer ≈ 845). Dit is een eigen as voor sorteren en profielen, niet de officiële kilometrering. Leeg bij zijrivieren.
properties/bronNaam, website en licentie van de bron. De bron blijft leidend: deze dienst bevat een kopie.

Bronnen en licenties

BronMeetpuntenLicentieWebsite
laden…

Gebruik je de data, vermeld dan de bron. Bij CC BY en Licence Ouverte is naamsvermelding een voorwaarde.

Spelregels

10.000waarden per pagina. Volg @iot.nextLink voor de rest.
20 / sverzoeken per IP-adres. Daarboven krijg je 429; wacht dan even.
30 smaximale rekentijd per vraag. Maak de vraag kleiner met een tijdvenster of filter.
elk uurworden continue reeksen bijgewerkt, labreeksen elke dag. 14 dagen (lab 400) worden telkens opnieuw vergeleken met de bron.
3 jaarhistorie voor continue reeksen, 10 jaar voor lab, voor zover de bron die heeft. Het aanvullen loopt nog.
alleen lezenIedereen kan lezen. Data aanleveren of een fout melden? Neem contact op met R&D Waterschap Brabantse Delta.