Op jacht naar sneeuwjacht

In mijn herinnering is het 1978 geweest. Maar misschien een jaartje later. Ik ben 6 jaar (of 7). Ik groei op op een veehouderij in de Achterhoek en elke dag fiets ik met twee buurjongens de twee kilometers naar school.

Maar vandaag niet.

Het heeft de hele nacht gesneeuwd. Het sneeuwt nog steeds en er staat een harde wind. Mijn vader haalt de auto. Mijn blauwe laarsjes met gele zolen knerpen door de verse sneeuw en ik stap in. We rijden 200 m om de buurjongens op te halen en we rijden naar school. Het voelt bijzonder. Het is mijn eerste herinnering aan sneeuwjacht. En aan het pijnlijke gevoel van harde oostenwind op je gezicht.

Sneeuwjacht. Het was hét woord vorige week. We zouden sneeuw krijgen én wind. Even werd gespeculeerd op een sneeuwstorm, maar daarvoor waaide het niet hard genoeg.

Ik had deze week de KNMI-data op het programma staan voor deze blog. En eigenlijk had ik bedacht dat deze blog niet zou zijn, maar wel informatief. Maar de witte wereld buiten geeft inspiratie. Deze week gaan we op jacht naar sneeuwjacht.

Zoals ik vorige week schreef is de KNMI-data benaderbaar vanuit scripts. De instructies staan op de website. Belangrijker: ook hier zijn twee “packages” beschikbaar die het makkelijk maken om de KNMI-data te benaderen. U weet wel, een “package” is een kant-en-klaar pakket code waarmee u uw eigen Python-implementatie “opvoert” zodat u kan doen wat nodig is.

Een oude programmeur in Python-land

Ik programmeer inmiddels bijna 40 jaar; ik ben niet oud maar ik was vroeg…. Mijn allereerste programmeerervaring was op een Sinclair ZX-81; een computer die mijn broer kocht in de vroege jaren ’80 (van de vorige eeuw….). Een computer met een fabelachtig geheugen van 1 kilobyte.

Een ZX-81 (bron: Wikipedia)

De programmeertaal was BASIC, een uitvinding (geen grap) van Bill Gates. Het verhaal over de opkomst van de hobby-computers is fascinerend en kunt u terugvinden in het boek “The Innovators” van Walter Isaacson.

Na BASIC kwam Pascal, de onderwijstaal van de HTS, waarin ik het volhield tot mijn afstuderen op de TU Delft. Daarna maakte ik veel vlieguren in Fortran90. Het leerproces van deze talen was altijd hetzelfde, met dikke boeken naast de computer. En Pascal werd op de HTS onderwezen.

Python is anders dan alle talen die ik tot nu toe kende. Het meest moest ik wennen aan hoe geintegreerd deze taal is met het internet. Er zijn wel boeken over Python, maar het beste is om gewoon te beginnen en foutmeldingen (want die krijg je veelvuldig) te kopieren in Google. Je vind dan ten minste vijf oplossingen voor je probleem. En ook de enorme rijkdom aan packages op Github blijft mij verbazen. Over de mogelijkheid om vanuit je script het internet te benaderen schreef ik vorige week. Ik heb daarvan nog maar net het begin gezien.

knmy

(naschrift oktober 2022: het KNMI heeft de data-website gewijzigd waardoor het mooie knmy niet meer werkt. Wel heb ik van knmy genoeg geleerd om mijn eigen downloader voor KNMI-data te schrijven en deze heb ik beschikbaar gesteld op github) 

Ik heb twee packages voor KNMI-data getest. Het handigst in gebruik vond ik “knmy”. Dat kent twee functies, eentje voor het downloaden van dagelijkse data (beschikbaar vanaf 1901) en eentje voor het downloaden van uursdata (beschikbaar vanaf 1951). het alternatief is "knmi-py" maar daarmee had ik constant ruzie (hou er bij deze opmerking wel rekening mee dat het probleem zich altijd bevind tussen de monitor en de rugleuning van mijn stoel). Met de hand downloaden kan natuurlijk ook nog steeds als u dat fijner vindt.

Met knmy onder de motorkap van mijn script had ik snel uitgevonden dat er geen sneeuwdata zit in de dagelijkse gegevens. Jammer. Onze analyse kan niet verder terug dan 1951 met behulp van de uursgegevens. Maar 70 jaar is ook lang.

Het KNMI registreert sneeuw op een eenvoudige manier. Namelijk met 0 (het sneeuwt niet) of 1 (het sneeuwt). De neerslagregistratie loopt gewoon door en die geeft millimeters regenval aan; in sommige periodes dus gesmolten sneeuw.

Ik download dus in ieder geval de regenval en de indicator voor sneeuwval. Vanwege onbedwingbare nieuwsgierigheid download ik ook de temperatuur. De indicator voor sneeuwval en de gemeten neerslag zet ik om in twee kolommen “gevallen regen” en “gevallen sneeuw”.

De definitie van sneeuwjacht

In de wetenschap is de definitie de basis van alles. De zoek-opdracht “Sneeuwjacht definitie” in Google levert een mooi lijstje op. Het meest duidelijk is Wikipedia - sneeuwjacht: “Sneeuwjacht is sneeuwval met windstoten boven windkracht 5”. Dus niet de gemiddelde wind maar de windstoten. Terug naar de data. Zitten de windstoten erbij? Ja, maar niet in Beaufort maar in decimeters per seconde. Delen door 10 geeft de betere eenheid meters per seconde.

Het laatste stukje van de puzzel vinden we in de windschaal van Beaufort, te vinden op https://www.knmi.nl/kennis-en-datacentrum/uitleg/windschaal-van-beaufort. Windkracht 5 komt overeen met 8 tot 11 m/s.

Plaatjes kijken – alle data

De data is binnen dus we gaan…. plaatjes kijken. Om je data te leren kennen kan je van iedere variabele (kolom) in je data een histogram maken om gevoel te krijgen voor de spreiding. Of je kan de variabelen paarsgewijs tegen elkaar uitzetten om te zien welke verbanden zich aftekenen. We hebben een dataset met vier variabelen “geoogst”, dus dat betekent vier histogrammen en zes unieke paarsgewijze plots. Tien grafieken, dus een hoop werk zou je zeggen. Deze manier van data bekijken is echter een heel veel gebruikte, dus…. bestaat er een commando voor. Het resultaat staat hieronder.

Pairwise scatterplot gemaakt van KNMI-data "De Bilt" vanaf 1951

Dit soort prenten geeft enorm veel informatie en het loont de moeite ze goed te bekijken. We beginnen bij de histogrammen die op de diagonaal zijn gezet. De temperatuur (linksboven) beweegt zich tussen ruwweg -20 graden en +30 graden en lijkt dit op het oog redelijk symmetrisch te doen met een gemiddelde rond 5 graden. We doen daar nu verder geen systematisch onderzoek naar; het gaat om de eerste indruk.

De windstoten zijn een voorbeeld van een zogenaamde “scheve” verdeling waarbij de meeste waarnemingen relatief mild zijn maar de uitschieters naar de hoge kant wat verder door kunnen schieten dan de uitschieters naar de lage kant. Dat betekent dat de veel misbruikte “normale” verdeling waarschijnlijk niet toe te passen is op deze data. Dan weten we dat vast; doen we vandaag ook niets mee.

De histogrammen voor sneeuwval en regenval laten beide een heel hoog aantal zien op nul. Deze histogrammen zijn daardoor niet zo informatief; ze tonen vooral dat het in Nederland heel vaak niet regent of sneeuwt.

Gaan we verder naar de paarsgewijze plotjes. Om te beginnen: een computer heeft geen tijdgebrek, dus de plaatjes rechts boven de diagonaal zijn dezelfde plaatjes als de plaatjes links onder maar 90 graden gedraaid.

De paarsgewijze plotjes zijn voor de combinatie regenval/sneeuwval niet zo interessant. Door de definitie die ik heb gebruikt sluiten sneeuw- en regenval elkaar uit. Dus neerslag is of regen of sneeuw. We doen niet aan nuances als natte of droge sneeuw, hagel, ijsregen etc. Deze plotjes tonen slechts wat ik er zelf heb in gestopt.

Gaan we naar de plaatjes in de uiterst linkse kolom. We zien dat de hardste windstoten zijn gemeten bij temperaturen tussen ongeveer -5 graden en +15 graden. Zeg maar Herfst-temperaturen. Dat weten we ook wel, maar het is leuk als het er ook uit komt.

Het plaatje daaronder is ook interessant. Het laat zien dat de hevigste sneeuwval optreedt bij temperaturen rond het vriespunt. Dat er boven 5 graden geen sneeuw meer voorkomt is makkelijk te begrijpen. Bij temperaturen onder -10 graden komt echter ook nauwelijks meer sneeuw voor. Ik vermoed dat dat komt omdat bij heel lage temperaturen de luchtvochtigheid heel laag wordt. Het is me al vaak opgevallen dat ik bij wat langer durende stevige vorst geen autoruiten meer hoef te krabben, hoe koud het ook is.

We waren op zoek naar sneeuwjacht, dus het plaatje waar het écht om gaat staat in de tweede kolom van links, derde van boven. Dit is het soort wolk waar niet goed een verband in te ontdekken valt. Blijkbaar zijn in combinatie met sneeuw alle windstoten mogelijk.

Plaatjes kijken als het sneeuwt

We zien al veel meer als we uit de data de metingen halen waarin sneeuw viel. Dan is per definitie de regenval nul, dus de regenval gooien we eruit. Dat geeft het plaatje hieronder.

Pairwise scatterplot van alle waarnemingen waarbij sneeuw viel tijdens de waarneming

Inmiddels heb ik u getraind in plaatjes kijken, dus neemt u daar de tijd voor. Ik kijk alleen met u naar het plaatje midden-onder. De sneeuwval gecombineerd met de windsnelheid in windstoten. Weet u nog? Windstoten boven 8 m/s gecombineerd met sneeuwval wordt aangemerkt als sneeuwjacht. Op het oog is in de helft van de metingen met sneeuw sprake van sneeuwjacht. Van sneeuwstorm is sprake vanaf 8 Beaufort, ofwel 18 m/s. Zelfs dat is in de afgelopen 70 jaar heel veel voorgekomen, ten minste, als het sneeuwde.

Ik geef u de statistieken van De Bilt sinds 1951, een periode van 70 jaar of ruim 560.000 uur. Daarvan hadden we afgerond 7.400 uur sneeuwval ofwel 1,7% van de tijd. In 3.500 uur daarvan was er sprake van sneeuwjacht, ofwel net geen 50% van de tijd dat het sneeuwde.

Sneeuwstorm hadden we in totaal 160 uur, ofwel 2% van de tijd dat het sneeuwde.

Weer in Nederland. Het sneeuwt weinig, maar áls het sneeuwt wees dan niet verrast dat het er bij waait.

1978 of 1979?

En was het nou de winter van 1978 of 1979 dat ik met mijn laarsjes door de sneeuw knerpte? De data vertelt het mij niet. In 1978 waren er sneeuwstormen (dus windkracht 8 met sneeuw) op 3 januari en 16 maart. In 1979 op 10 januari, 2 mei (een uurtje, maar toch!) en 15 december.

De momenten met sneeuwstorm in 1978 en 1979

Sneeuwstormen, geen sneeuwjacht maar sneeuwstorm! De lijst met sneeuwjacht was veel te lang voor deze blog.

Het waren barre tijden. Het was de tijd van de klimaatdiscussie van de jaren 1970 waarin de fetenschappers een prachtige consensus hadden bereikt: De ijstijd komt eraan!

Leesvoer voor tijdens de dooi

Na vrieskou komt gegarandeerd dooi aantal dagen in een modderige wereld. Pakt u dan, tussen het Python-programmeren door, het boek "The Innovators" van Walter Isaacson. Fascinerend verhaal over de herkomst van de computer (waarop ik dit nu schrijf) en het internet (waarop u het gaat lezen).

python data-analyse