Stookwijzer API

Heel vroeger kregen we, als je geabonneerd was, via mail stookalerts:

Tegenwoordig is het automatische mail stookalert afgeschaft, waarover volgens mij overigens zelf geen waarschuwings alert is uitgestuurd.
Om tegenwoordig notificaties te ontvangen kun je een app op de mobiel downloaden.

Maar wat moet het uitstervend ras dat geen mobiel heeft ?

Kijk dan op de websitehttps://www.atlasleefomgeving.nl/stookwijzer. Deze is gericht op menselijke interactie: je vult een postcode in, klikt op adres of je klikt direct op de kaart en je krijgt in het scherm rechtsboven in door een achtergrondskleur verandering het resultaat: Geel, Oranje of Rood.

Zou het niet mooi zijn als je de stookwijzer kon benaderen via een API call met een lat/lon locatie (evt een tijd voor de verwachting) en het resultaat van de call ?
Zo kun je stookwijzer integreren in andere websites, zonder nog aan knoppen te draaien.

Of kan dat al en weet ik alleen niet hoe ?

De stookwijzer heeft geen directe API. Het advies wordt bepaald op basis van de windkracht en de LKI (luchtkwaliteitsindex). Daar zijn wel API’s voor.

De huidige implementatie van de stookwijzer is inderdaad hopeloos ingewikkeld. Ik heb er daarom maar zelf een gemaakt. Een waarbij je de lat/long coördinaten kunt aangeven en op basis daarvan een advies krijgt.

Als voorbeeld zie je hier het advies voor de Grote Markt in Haarlem:
https://leonwubbe.nl/stookwijzer.html?lat=52.377127&lon=4.633096

Als je hem voor je eigen locatie wilt maken, dan vul je bij lat en long je eigen GPS coordinaten in (opzoeken in Google Maps). De layout is nog niet helemaal zoals hij moet zijn, maar het is een begin. Opslaan in je favorieten en klaar is Waltert.

Iedere stad die het SLA een beetje serieus neemt zou zo’n link op zijn eigen site moeten plaatsen, vind ik.

1 like

Een tijdlang werkte dit:
https://www.lml.rivm.nl/stookalert/stookalert.json
Nu helaas niet meer

Wat over het algemeen heel interessant is, is om bij dergelijke websites eens de ‘onderwater’ view aan te zetten, dat kan in chrome/chromium met F12, of het ctrl-shift-J. Daarin selecteer je het tabje ‘Network’ en sub-tabje ‘Fetch/XHR’. Zo kan je alle netwerk-requests zien die door de pagina gedaan worden. Met ctrl-R kan je de pagina herladen en zien wat er op de achtergrond gebeurt. Vaak zie je dat daar ergens een .json wordt opgehaald met daarin de brondata, de URL daarvan kan je vaak ook zelf aanroepen.

Er worden meestal nog allemaal parameters in de URL meegegeven. Je kan het vaak wel gokken, ‘lat’ zal wel latitude zijn bijvoorbeeld. Soms is er ook een zogenaamde openapi beschikbaar, een gestandaardiseerde beschrijving van de API. Je kan bijvoorbeeld proberen achteraan de URL ‘/openapi’, ‘/swagger’ of ‘openapi.yaml’ te plakken. Je krijgt dan een mogelijk de openapi definitie van de interface, in sommige gevallen zelfs een interactieve pagina.

Voor Stookwijzer | Atlas Leefomgeving lijkt bovenstaande helaas niet zo simpel.

Beste Leon

Dank voor je uitleg ik begrijp nu hoe jij het stookwijzer advies berekent.

Toch ontbreekt er voor mij nog een klein LKI stukje in de puzzel. Jij berekent de LKI niet zelf , je vraagt het op bij luchtmeetnet via hun api:

Neem bv station Cabauw: https://api.luchtmeetnet.nl/open_api/concentrations?formula=lki&latitude=51.974489&longitude=4.923301

Dit geeft:

{ “formula”: “LKI”, “value”: 2.59999990463257, “timestamp_measured”: “2024-12-02T14:00:00+00:00” }, { “formula”: “LKI”, “value”: 2.40000009536743, “timestamp_measured”: “2024-12-02T15:00:00+00:00” },

We vertrouwen erop uit dat luchtmeetnet de LKI goed berekent en dat is natuurlijk prima op zich, maar ik kijk graag in die black box.

Documentatie over de api staat op Luchtmeetnet 2020 OpenAPI

Op Luchtmeetnet.nl wordt uitgelegd hoe de LKI wordt berekend.

Volgens mij is wat in deze documentatie beschreven staat de totale LKI.

In https://www.rivm.nl/bibliotheek/rapporten/2024-0083.pdf staan de volgende adviezen:

3) Hanteer het luchtkwaliteitsindex-getal voor PM2,5 in (LKI PM2,5) plaats van de totale luchtkwaliteitsindex (LKI):

4) Hanteer in de Stookwijzer tijdblokken van zes uur in plaats van één uur en stel de kleurcode voor een tijdblok tenminste één tijdblok voorafgaand aan het volgende tijdblok definitief vast.

Op Stookwijzer | Atlas Leefomgeving staan nu in ieder geval in de resultaten de 6 uurs tijdsblokken

Ik denk niet dat luchtmeetnet de LKI berekening inmiddels heeft aangepast van LKI_totaal naar LKI_PM25 ?

In de luchtmeetnet LKI documentatie staat: De stof met het hoogste indexgetal bepaalt de totale luchtkwaliteitsindex. Als alle stoffen hetzelfde indexgetal hebben dan wordt de totale index één punt hoger. Decimale LKI-waarden worden naar boven afgerond. Zo valt bijvoorbeeld een LKI van 0,9 in klasse 1 en een LKI van 3,1 in klasse 4.

Als je de LKI alleen baseert op PM25, dan komt een LKI van 1-2 overeen van een PM25 concentratie van 10-15 ug/m3 en is er geen sprake meer van het optellen van een extra punt ivm andere stoffen.

Verder vraag ik me af: waar komen 15 decimalen achter de komma voor LKI vandaan ?Zijn die het gevolg van geografische interpolatie, running averages of een glijdende mapping ?

Kortom wat is het exacte algorithme om de voor de stookwijzer relevante LKI te berekenen, misschien kan een ter zake kundige van het RIVM hier transparant licht in de duisternis brengen.

Kleinigheidje: in de api documentatie staan voor LKI datum tijd start en end parameters gedefinieerd, die lijken geen effect te hebben op de resultaten.

Tot slot: het is misschien een aardig idee om een nieuwe variant van Bertriks beroemde stofananas te maken : de stookalert ananas !

1 like