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.

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