Klimaat-API
Zevenentachtig jaar dagelijks klimaat, overal op het land, uit één archief — van 1 januari 1940 tot binnen een week van vandaag, op het ERA5-raster met 0,25° (ongeveer 28 km). Beantwoordt is dit normaal?, met het bewijs erbij.
Dagelijks klimaat#
climate2 credits, +1 per volledige periode van 365,25 dagen in het bereikDertien dagvelden voor elke landcoördinaat, van 1940 tot vorige week.
Parameters
| Parameter | Type | Standaard | Beschrijving |
|---|---|---|---|
lat | float | — | Verplicht. Elke coördinaat op het land; het archief is wereldwijd. |
lon | float | — | Verplicht. |
start | ISO date | 1 januari van het eindjaar | Het bereik is per verzoek begrensd — zie Abonnementen. |
end | ISO date | laatste dag van het archief | |
fields | csv | temperatuur en neerslag | Vraag aan /v1/climate/fields waarop deze run antwoord kan geven. |
series | bool | true | De waarden dag voor dag meesturen. Zet dit op false wanneer u alleen de aggregaten nodig hebt. |
format | string | json | json of csv. CSV is voorbehouden aan de betaalde abonnementen en levert de maandrijen. |
Dit is niet de uurlijkse historie
met een GROUP BY ervoor. De dagvelden worden één keer afgeleid, bij
de inname, op een daggrens die om fysische redenen is gekozen en niet uit
gemak, en de afgeleide velden — gevoelstemperatuur, zonneschijnduur, gemiddelde
luchtvochtigheid — worden berekend uit de volledige uurreeks en niet uit de
dagextremen.
Dagen worden op de ware middernacht afgesneden, niet op de
politieke tijdzone. De verschuiving is round(longitude / 15).
Dat is een bewuste keuze en ze is meetbaar: aggregeren op UTC vertekent het dagminimum in Alice Springs met 2,1 °C, omdat het minimum vlak voor zonsopgang valt. Een politieke tijdzone zou nog erger zijn — twee naburige cellen aan weerszijden van een grens zouden hun dagen op verschillende momenten afgesneden krijgen, en een kaart van dagmaxima zou de omtrek van de tijdzones tekenen.
De waarden zijn die van de rastercel, niet die van het punt. Wij passen de temperatuur niet aan uw exacte hoogte aan. Aanbieders die dat wel doen wijken op dezelfde coördinaat dus enkele tienden van een graad van ons af — tot 0,4 °C in onze eigen metingen — en geen van beide cijfers is verkeerd. Het onze is wat de heranalyse over die cel zegt; het hunne is diezelfde waarde plus een temperatuurgradiënt toegepast op een hoogteverschil. Wij publiceren de cel zodat u weet wat u krijgt: zie dekking en cellen.
Maandaggregaten#
climate2 credits, +1 per volledige periode van 365,25 dagen in het bereikDezelfde velden, geaggregeerd per kalendermaand.
Sommen voor de cumulatieven, gemiddelden en extremen voor de rest. Dezelfde prijs als de dagreeks, omdat dezelfde kolom wordt gelezen.
Vraag ze aan wanneer een maandcijfer is wat u werkelijk uitzet, in plaats van dertig keer zoveel data op te halen en die zelf te reduceren — traag is de overdracht, niet de rekenkunde.
Het klimaat van een plaats, in één aanroep#
climate3 credits, +1 per volledige periode van 365,25 dagen in het bereikMaandnormalen, jaarreeks, records, trends en Köppen — zonder bereiklimiet.
Parameters
| Parameter | Type | Standaard | Beschrijving |
|---|---|---|---|
lat | float | — | Verplicht. |
lon | float | — | Verplicht. |
start | ISO date | eerste dag van het archief | De hele reeks opvragen is het normale gebruik hiervan. |
end | ISO date | laatste dag van het archief | |
daily | bool | false | Voegt day_normals toe: de normaal van elke dag van het jaar over uw venster, met het aantal waarnemingen achter elk ervan. |
Alles wat een klimaatpagina over een locatie beweert, al gereduceerd: twaalf maandnormalen, één rij per volledig kalenderjaar, de allertijdenrecords met de data waarop ze vielen, de kleinste-kwadraten-opwarmingstrend met de significantie ervan, en de Köppen-Geiger-code. Voor elke landcoördinaat op aarde.
De prijs hangt af van het bereik, en het standaardbereik is het hele
archief. Geprijsd op 3 credits, +1 per volledige periode van 365,25 dagen in het bereik — een aanroep
zonder start beslaat dus 1940 tot vandaag en kost
89 credits, niet één. Op het gratis
abonnement zijn dat ongeveer 110 aanroepen per maand.
Het blijft de goedkope manier om dit antwoord te krijgen: het zelf samenstellen zou negen begrensde aanroepen van /v1/climate/daily over hetzelfde bereik vergen, die samen meer kosten en eenendertigduizend rijen teruggeven die u daarna nog moet reduceren. Maar het is geen simpele opzoeking, en een pagina die het per bezoeker aanroept zal een quotum leegtrekken. Zet het in de cache — voor een coördinaat verandert het antwoord hooguit eens per dag.
Geef start mee wanneer u niet de hele reeks nodig hebt: dertig
jaar kost 32 in plaats van 89.
Hier geldt geen bereiklimiet, anders dan bij
/v1/climate/daily. Die limiet bestaat omdat wie de reeks
dag voor dag kan ophalen het archief kan nabouwen; dit endpoint geeft helemaal
geen reeks terug. De volledige reeks komt terug in ongeveer 62 kB — 100 kB met
daily=true — tegenover de eenendertigduizend dagrijen waaruit ze
gereduceerd is: ze reconstrueert dus niets. Eén verzoek vervangt de negen
begrensde dagaanroepen die hetzelfde antwoord anders zou kosten.
daily=true is niet hetzelfde als
normals?daily=true
En daar zit het verschil. Het normalen-endpoint middelt over een WMO-venster van dertig jaar; dit middelt over het venster dat u hebt gevraagd — standaard het hele archief.
Het is de enige manier om „9,4 °C boven normaal voor een 30 juli” te
zeggen met zevenentachtig jaar achter die bewering in plaats van dertig. Elke dag
draagt zijn aantal waarnemingen mee, zodat verbreden naar een gecentreerde
vijftiendaagse normaal neerkomt op
Σ(mean·samples) / Σ(samples) — exact, en zonder een tweede
verzoek.
Twee conventies om te kennen voordat u met een andere bron vergelijkt
Een kalenderjaar komt alleen in de jaarreeks en in de trend terecht als het archief er minstens 360 dagen van bevat; het lopende jaar valt dus af. Een half jaar leest als een instorting van de neerslag en trekt een trendlijn met zich mee.
trends is null onder de tien volledige jaren.
Daaronder is een helling weerruis in de kleren van een klimaatsignaal, en wij
publiceren liever niets dan een zelfverzekerd verkeerd getal. Om dezelfde reden
draagt elke trend zijn eigen p_value en significant-vlag
— lees die voordat u de helling citeert.
WMO-normalen#
normals3 creditsEen dertigjarig gemiddelde over een WMO-referentieperiode.
Parameters
| Parameter | Type | Standaard | Beschrijving |
|---|---|---|---|
lat | float | — | Verplicht. |
lon | float | — | Verplicht. |
period | string | 1991-2020 | 1991-2020 of 1961-1990. Beide zijn WMO-referentieperioden. |
fields | csv | temperatuur en neerslag | |
daily | bool | false | De 366 dagnormalen met hun spreidingen meesturen, plus het warmte- en kouderecord van elke dag van het jaar. |
Een normaal is niet het gemiddelde van de periode die u toevallig hebt opgevraagd. Het is een dertigjarig gemiddelde over een venster dat de Wereld Meteorologische Organisatie vastlegt, zodat twee mensen die een normaal citeren hetzelfde citeren.
Dit vereist de scope normals, die
het dagarchief niet vereist. Een sleutel die
/v1/climate/daily probleemloos leest, kan hier toch een
403 scope_denied krijgen — zie Abonnementen voor
welk niveau hem bevat.
Als u „de normaal over de hele reeks” wilt in plaats van over een WMO-venster,
gebruik dan /v1/climate/summary — die vraagt
alleen de scope climate en geeft u zevenentachtig jaar in plaats van
dertig.
Twee normalen vergelijken#
normals6 creditsBeide WMO-perioden en het verschil ertussen, in één aanroep.
Dit is de vraag die de meeste mensen eigenlijk stellen wanneer ze om een normaal vragen — niet „wat is hier normaal” maar „hoeveel is het normale verschoven”.
Die in één verzoek beantwoorden garandeert dat de twee helften niet uit verschillende runs kunnen komen, en dat is precies de zwakte van het zelf berekenen uit twee aanroepen: het archief schuift er tussendoor op, en het verschil dat u publiceert bevat dan een versiewissel bovenop een klimaatverandering.
Dekking, velden en cellen#
De geleverde run en de data die hij beslaat. Geen sleutel nodig.
Waarop deze run antwoord kan geven, met eenheden, en welke velden afgeleid zijn. Geen sleutel nodig.
climate1 creditWelke cel voor een punt antwoordt, en hoe ver die weg ligt.
De licentievoorwaarden van dit archief. Geen sleutel nodig.
cells/resolve beantwoordt de vraag die elk rasterproduct gesteld
zou moeten worden voordat men het vertrouwt: welke cel lees ik eigenlijk, en
hoe ver ligt die van het punt waar ik naar vroeg? Bij 28 km kan die afstand
20 km bedragen, en dat weten is het verschil tussen een getal citeren en het
verantwoord citeren.
fields biedt hetzelfde contract als
/v1/historical/variables: het somt op wat de run
bevat en niet wat het product ooit zou kunnen bevatten, zodat een client die
erop gebouwd is niet breekt wanneer het archief groeit.
Zet de cel vast in plaats van de coördinaat wanneer een basislijn over de jaren vergelijkbaar moet blijven. Een coördinaat is stabiel, maar de cel die hem bedient zou verschuiven als het raster ooit verandert — en een basislijn die stilletjes verschuift is precies het gebrek dat dit endpoint moet voorkomen. De graaddagen-API volgt hetzelfde patroon, met een eigen pad: zie een cel vastzetten.