Skip to content

App Oppervlaktereductie

Siebe Bosch edited this page Mar 21, 2023 · 12 revisions

Oppervlaktereductie c.q. gebiedsreductie

Introductie

De statistiek van neerslag op één locatie wijkt af van de statistiek van neerslag die over een groot gebied valt. Immers: het regent nooit overal even hard. Hoe groter het gebiedsoppervlak, hoe kleiner de oppervlaktegemiddelde neerslagsom die hoort bij de gegeven herhalingstijd en neerslagduur. Doorgaans ligt de reductiefactor ergens tussen de 0.85 en 1.00.

Om de statistieken van puntneerslag te kunnen toepassen op een groot gebied is het dus nodig om de neerslagvolumes uit Meteobase te corrigeren. Meteobase biedt de gebruiker de mogelijkheid om dit te doen. Onder het menu Statistiek - Oppervlaktereductie vindt u de app Oppervlaktereductie.

image

De gebruiker geeft een gebiedsgrootte (in km2) op en de app produceert voor een groot aantal combinaties van neerslagduren en herhalingstijden de bijbehorende reductie. De mate van reductie is uitgedrukt als een fractie die moet worden toegepast op het puntneerslagvolume.

image

De basis achter deze app is het R-script van Aart Overeem (KNM). U vindt het script van Overeem en bijbehorende brongegevens hier.

Het script betrekt zijn kansverdelingsparameters voor de GEV-kansverdeling uit tekstbestanden die in diezelfde map staan. Voor iedere neerslagduur is er een eigen tekstbestand met daarin de parameterwaarden voor de GEV-kansverdeling:

  • Tabel_GEV_area_15min.dat
  • Tabel_GEV_area_30min.dat
  • Tabel_GEV_area_60min.dat
  • Tabel_GEV_area_120min.dat
  • Tabel_GEV_area_04H.dat
  • Tabel_GEV_area_08H.dat
  • Tabel_GEV_area_12H.dat
  • Tabel_GEV_area_24H.dat
  • Tabel_GEV_area_02D.dat
  • Tabel_GEV_area_04D.dat
  • Tabel_GEV_area_08D.dat
  • Tabel_GEV_area_09D.dat

Merk op dat het gebiedsoppervlakte in deze bestanden is uitgedrukt in pixels van de KNMI-rasters. Een pixel beslaat 5.73 km2.

Ten behoeve van Meteobase hebben wij een Python-schil om dit R-script heen geschreven en ondergebracht in de regenduurlijnen-API. De Python-broncode vindt u hier.

Werking van het oorspronkelijke script

Het R-script van Aart Overeem berekent neerslagvolumes (mm) voor alle combinaties van de volgende herhalingstijd en neerslagduur:

  • herhalingstijden (jaren): [0.5, 1, 2, 5, 10, 20, 25, 30, 50, 100]
  • neerslagduren (uren): [0.25, 0.5, 1, 2, 4, 8 , 12, 24, 48, 96, 192, 216]

Dit gebeurt op basis van de eerdergenoemde tabellen waarin voor iedere neerslagduur en gebiedsgrootte de parameterwaarden van de GEV-kansverdeling zijn vastgelegd. De gebruiker kan zijn gebiedsoppervlak opgeven in km2. Als onder- en bovengrens voor het op te geven gebiedsoppervlak geldt resp. 5.73 km2 (één pixel van KNMI-rasters) en 968.37 km2. De berekende neerslagvolumes worden weggeschreven naar een tekstbestand.

Bewerking van het script ten behoeve van Meteobase

Voor Meteobase was de wens om te komen tot reductiefactoren als functie van het gebiedsoppervlak. Bovendien moest het script kunnen draaien op de server van Meteobase. Om dit te bewerkstelligen hebben wij om het script heen een Python-schil geschreven. Bij iedere bevraging wordt het script tweemaal uitgevoerd:

  • eenmaal voor het opgegeven gebiedsoppervlak
  • eenmaal voor het minimum-gebiedsoppervlak van 5.73 km2 Door de berekende volumes op elkaar te delen verkrijgen we de reductiefactor. Voor iedere combinatie van neerslagduur en herhalingstijd wordt deze reductiefactor in de grafiek geplot, waarna de gebruiker die kan downloaden; zowel als afbeelding als in csv-formaat.

Implementatie

De app bestaat uit een Python-API, geschreven in Flask en geserveerd door een lichtgewicht Waitress-server. Diezelfde server verzorgt ook de communicatie met de regenduurlijnen-app.

De Waitress-server kan op de Meteobase-server worden gestart door python\run_wiwb.bat te starten.