Achtergrond

Data ophalen vanuit een script

Behalve via de diverse interactieve selectiepagina's is het ook mogelijk de selectie te benaderen vanuit een script, bv. gebruikmakend van wget.

Aankondiging

Haal je op dit moment automatisch grote hoeveelheden data op met een script via daggegevens.knmi.nl? De manier om data op te halen die hieronder beschreven staat, stopt eind 2026. We adviseren deze gebruikers over te stappen op het KNMI Dataplatform (KDP).

De gevalideerde daggegevens zijn hier te vinden, de gevalideerde uurgegevens hier. Wie toegang nodig heeft tot de meest recente (voorlopige) gegevens, kan deze gegevens aanvullen met de ongevalideerde data. Deze zijn in aparte datasets te vinden per dag en per uur. Zie ook de documentatiepagina.

Een voordeel van deze route ten opzichte van Daggegevens is dat de data altijd up-to-date is. Nieuw binnengekomen data worden direct doorgezet naar KDP.  Wanneer de data is gevalideerd, zijn deze wijzigingen binnen 5 minuten zichtbaar in de gevalideerde dataset. Wijzigingen bij Daggegevens worden slechts eenmaal per dag doorgevoerd en lopen 48 uur achter. Via de Notification Service is het mogelijk om berichten te ontvangen bij nieuwe data en updates van bestaande data.

Overstappen naar KDP vereist een API-key en mogelijk een aanpassing van bestaande scripts. Op de website van het KDP kan kosteloos een API-key worden aangevraagd en zijn verschillende Python-voorbeeldscripts te vinden.

URL: https://www.daggegevens.knmi.nl/klimatologie/daggegevens

 

Behalve via de interactieve selectiepagina is het ook mogelijk de selectie te benaderen vanuit een script, bv. gebruikmakend van wget. Aangezien het selectieformulier werkt via de POST-methode, moeten de parameters van de selectie als "POST-data" worden doorgegeven. Bij wget ziet dit er als volgt uit:

wget -O bestand --no-check-certificate --post-data="variabele=waarde&variabele=waarde&...." https://www.daggegevens.knmi.nl/klimatologie/daggegevens
(om het resultaat van de aanvraag in het gespecificeerde bestand op te vangen. Als "bestand" vervangen is door "-", wordt de uitvoer naar STDOUT gestuurd). De volgende, vetgedrukte parameters worden herkend:

start (verplicht)
De volledige datum (start) in het format YYYYMMDD.
 

end (verplicht)
De volledige datum (end) in het format YYYYMMDD.
 

inseason
Wanneer deze variabele ingevuld is, worden van elk jaar tussen begin- en einddatum alleen de dagen geselecteerd die binnen het seizoen (bday,bmonth)-(eday,emonth) vallen. Bijvoorbeeld, als inseason=Y en de begin- en einddatum zijn respectievelijk 19731101 en 20030303, dan bevat de uitvoer alleen de dagen tussen deze twee data die in de periode 1 november t/m 3 maart vallen, terwijl 19730406 en 20080406 alle 6-aprils in de jaren 1973 t/m 2008 opleveren.
 

vars
Lijst van gewenste variabelen in willekeurige volgorde, aangeduid met hun acroniemen (zoals op de selectiepagina) gescheiden door ':', bijvoorbeeld 'TG:TN:EV24'. Hierin zijn de volgende acroniemen gedefiniëerd om groepen van variabelen aan te duiden:

WIND = DDVEC:FG:FHX:FHX:FX wind TEMP = TG:TN:TX:T10N temperatuur SUNR = SQ:SP:Q Zonneschijnduur en globale straling PRCP = DR:RH:EV24 neerslag en potentiële verdamping PRES = PG:PGX:PGN druk op zeeniveau VICL = VVN:VVX:NG zicht en bewolking MSTR = UG:UX:UN luchtvochtigheid ALL alle variabelen Default is ALL.

stns
Lijst van gewenste stations (nummers) in willekeurige volgorde, gescheiden door ':'.
Geen default waarde; Stations móeten zijn gespecificeerd.
ALL staat voor álle stations.
 

fmt
Standaard is de output van het script in CSV-formaat, met fmt=xml is de output in XML-formaat, met fmt=json in JSON-formaat.

Voorbeeld:
stns=235:280:260&vars=VICL:PRCP&byear=1970&bmonth=1&bday=1&eyear=2009&emonth=8&eday=18

of

stns=235:280:260&vars=VICL:PRCP&start=19700101&end=20090818


Dit levert op: voor stations 235, 280 en 260 de variabelen m.b.t zicht, bewolking, neerslag en potentiële verdamping van 1 januari 1970 t/m 18 augustus 2009.

# SOURCE: ROYAL NETHERLANDS METEOROLOGICAL INSTITUTE (KNMI) # Comment: These time series are inhomogeneous because of station relocations and changes in observation techniques. As a result, these series are not suitable for trend analysis. For climate change studies we refer to the homogenized series of monthly temperatures of De Bilt or the Central Netherlands Temperature . # # # STN LON(east) LAT(north) ALT(m) NAME # 235: 4.785 52.924 0.50 DE KOOY # 280: 6.586 53.125 3.50 EELDE # 260: 5.177 52.101 2.00 DE BILT # # YYYYMMDD = Date (YYYY=year MM=month DD=day); # VVN = Minimum visibility; 0: <100 m, 1:100-200 m, 2:200-300 m,..., 49:4900-5000 m, 50:5-6 km, 56:6-7 km, 57:7-8 km,..., 79:29-30 km, 80:30-35 km, 81:35-40 km,..., 89: >70 km) # VVNH = Hourly division in which VVN was measured; # VVX = Maximum visibility; 0: <100 m, 1:100-200 m, 2:200-300 m,..., 49:4900-5000 m, 50:5-6 km, 56:6-7 km, 57:7-8 km,..., 79:29-30 km, 80:30-35 km, 81:35-40 km,..., 89: >70 km) # VVXH = Hourly division in which VVX was measured; # NG = Mean daily cloud cover (in octants, 9=sky invisible); # DR = Precipitation duration (in 0.1 hour); # RH = Daily precipitation amount (in 0.1 mm) (-1 for <0.05 mm); # RHX = Maximum hourly precipitation amount (in 0.1 mm) (-1 for <0.05 mm); # RHXH = Hourly division in which RHX was measured; # EV24 = Potential evapotranspiration (Makkink) (in 0.1 mm); # # STN,YYYYMMDD, VVN, VVNH, VVX, VVXH, NG, DR, RH, RHX, RHXH, EV24 # 235,19700101, 60, 8, 65, 7, 4, 0, 0, 0, , 4 235,19700102, 30, 8, 75, 22, 8, 14, 21, 6, , 2 235,19700103, 60, 3, 70, 2, 5, 2, 5, 3, , 3

CSV-uitvoerformaat
Zoals hierboven te zien is, houdt de uitvoer zich aan het volgende formaat voor een selectie van NVAR variabelen voor NSTN stations :

Header, regels 1 t/m NSTN+NVAR+11, beginnend met een '#':

1 t/m 5   disclaimer 8 t/m 7+NSTN   stationslijst: nummer, longitude, lattitude, hoogte en naam 9+NSTN t/m 8+NSTN+NVAR   geselecteerde variabelen met hun omschrijving 10+NSTN+NVAR   kolomaanduidingen Data, regel NSTN+NVAR+12 en verder.

Data, regel NSTN+NVAR+12 en verder.
Achtereenvolgens stationsnummer, 8-cijferige datum (YYYYMMDD) en de waarden van gekozen variabelen in komma-gescheiden kolommen.

 

URL: https://www.daggegevens.knmi.nl/klimatologie/monv/reeksen

Het ophalen van dagelijkse waarden van de neerslagstations gaat op exact dezelfde manier als hierboven beschreven voor de dagelijkse (AWS) gegevens, behalve dat alle parameters optioneel zijn en dat de variabelen (`vars') niet gespecificeerd kunnen/hoeven worden. Indien alle parameters weggelaten worden dan worden de gegevens aangeboden van alle stations over de periode 1e dag van de vorige maand tot aan de meest recente gevalideerde data.

De CSV-uitvoer heeft de vorm

STN,YYYYMMDD, RD, SX, 458,19731101, 0, 0, Aalsmeer 458,19731102, 0, 0, Aalsmeer 458,19731103, 0, 0, Aalsmeer

stationsnummer, datum, neerslag in 0.1 mm en sneeuwdek in cm (codecijfer boven 996).

URL: https://www.daggegevens.knmi.nl/klimatologie/uurgegevens

Het ophalen van uurlijkse data kan op dezelfde wijze als met de dagelijkse data (zie hierboven), met de volgende verschillen in de herkende parameters:

start (verplicht)
De volledige datum (start) in het format YYYYMMDDHH.
 

end (verplicht)
De volledige datum-tijd (end) in het format YYYYMMDDHH.
Het eerste en laatste uur in het HH-gedeelte bepalen de uren die voor elke dag geleverd worden (1-24), in overeeenkomst met het aan te geven dagdeel in de interactieve selectie. Dus start=2006060606, end=2008080808 resulteren voor elke dag steeds in het 6e, 7e en 8e uur, terwijl start=2006060622, end=2008080806 bv. de nachtelijke uren 22, 23 .... 5, 6 geeft.
 

vars
Lijst van gewenste variabelen in willekeurige volgorde, aangeduid met hun acroniemen (zoals op de selectiepagina) gescheiden door ':', bijvoorbeeld 'DD:FH:FF:FX'.
De voorgedefinieerde sets van variabelen zijn hier:

WIND = DD:FH:FF:FX Wind TEMP = T:T10N:TD Temperatuur SUNR = SQ:Q Zonneschijnduur en globale straling PRCP = DR:RH Neerslag en potentiële verdamping VICL = VV:N:U Zicht, bewolking en relatieve vochtigheid WEER = M:R:S:O:Y:WW Weerverschijnselen, weertypen ALL alle variabelen

stns
Lijst van gewenste stations (nummers) in willekeurige volgorde, gescheiden door ':'.
Geen default waarde; Stations móeten zijn gespecificeerd.
ALL staat voor álle stations.
 

fmt
Standaard is de output van het script in CSV-formaat, met fmt=xml is de output in XML-formaat, met fmt=json in JSON-formaat.

Aan elke uitgevoerde regel in CSV-formaat wordt na de datum het uur ingevoegd, gescheiden door een komma, vb:

# STN,YYYYMMDD, HH, VV, N, U # 240,19980909, 22, 75, 1, 83 240,19980909, 23, 75, 1, 88 240,19980909, 24, 75, 2, 89 240,19980910, 1, 58, 8, 96 240,19980910, 2, 65, 7, 95 240,19980910, 3, 62, 7, 97 240,19980910, 4, 68, 6, 93 240,19980910, 5, 66, 7, 91 240,19980910, 6, 61, 7, 93

Niet gevonden wat u zocht? Zoek meer achtergrond artikelen