Vedlegg B til Teknisk kravspesifikasjon; Nedbøralgoritme Godkjent: Author: R Brækkan Side: 1 av 6 Vedlegg B; Nedbøralgoritme. Met.no geonor-algoritme (oppdatert 30/04-2009): Formålet med å lage en algoritme for bearbeiding av bøtteverdiene fra Geonor, er å få til en bedre kvalitet på de beregnede RR-verdiene som blir brukt både i varslingstjenesten og til samling av klimadata. Målet er å få til en så korrekt som mulig akkumulering av bøtteverdier i de situasjoner hvor det faktisk er nedbør. Ønsket har vært å filtrere bort så mye som mulig av den støyen som påvirker svingefrekvensen og dermed beregningene av bøtteverdien, som igjen kan gi uriktige akkumulerte verdier innenfor gitte oppsamlingsperioder. Type støy, årsaker etc blir ikke nærmere beskrevet i denne dokumentasjonen. Algoritmen innbefatter bruk av en ja/nei-sensor som skal si om det er nedbør eller ikke. Hvis ja/nei-sensor er i ustand, eller det ikke finnes en slik sensor på plassen, kan allikevel algoritmen benyttes, da den også beregner akkumulerte nedbørverdier i dette tilfellet. Dette vil trolig gi en forbedret kontroll og beregning av bøtteverdiene sammenlignet med det vi har pr. i dag. Algoritmen er en god blanding av våre egne, SMHIs og DMIs ideer omkring dette. Nedenfor beskrives diverse parametre og oppbygningen av algoritmen, blant annet v.h.a flytskjema: Instrumentverdiene: Fra Geonor leses (samples): 12 stk frekvensverdier pr. minutt (en verdi hvert 5. sekund). Av disse frekvensverdiene beregnes 12 stk bøtteverdier pr. minutt. Fra Ja/nei-sensor leses (samples): 12 stk strømsignalverdier (en verdi hvert 5.sekund). Av disse strømsignalverdiene kan vi beregne intensitetsverdier. Vi ønsker også å beregne en ja/nei-parameter som enten sier om vi har nedbør, ikke har nedbør, eller har en sensor som ikke virker. Vedlegg til Teknisk kravspesifikasjon
Godkjent: Author: R Brækkan. K Møen Side: 2 av 6 2 Data som ønskes lagret (lagring foregår på minuttbasis): Data som vi ønsker å lagre i databasen for beregning av akkumulert nedbør over gitte perioder, samt data som kan brukes til blant annet etterkontroll og analyse er: RA_01 (bøtteverdi 1 minutt) RR_010 (akkumulert nedbør innenfor en diskret 10 minuttersperiode) RR_1 (akkumulert nedbør for 1 time, dvs. 6 RR_010-perioder) RA_010g (medianverdi av de 10 siste RA_01-verdiene glidende på minuttnivå) ma_01 (signalstyrken fra Thies(ja/nei)-sensoren 1 minutt) Int_01 (nedbør-intensitetsverdien fra ja/nei 1 minutt) YesNo_01 ( ja/nei-verdi minuttverdi. Kan gi tre verdier: 0: Nei til nedbør, 1: Ja til nedbør, -99.9: intet signal fra ja/nei-sensoren) Bøtteverdiene: Figur 1: Prinsipp for bestemmelse av RA_01-verdiene. Bøtteverdiene som leses fra Geonor hvert 5. sekund er basert på frekvensverdiene fra geonorstrengen. Godkjente b-verdier skal være basert på en frekvens som ligger innenfor et gitt intervall på 1000-3500 Hz og at variasjonen i frekvensen mellom to naboverdier ikke skal være større enn 3 Hz. Hvis vi har en b-verdi som oppfyller grensetesten, men ikke sprangtesten settes b= -99.9. Merk: Algoritmen lar den neste b-verdien etter en verdi på - 99.9 godkjennes så lenge den godkjennes av grensetesten. Hvert minutt finner vi gjennomsnittet av de siste godkjente b-verdiene siste 2 minutter. Dette gir oss 1-minuttsbøtteverdier, RA_01, som er basis for videre beregning. 2
Godkjent: Author: R Brækkan. K Møen Side: 3 av 6 3 Ja/nei-verdiene: Ja/nei-sensorene som er i bruk sammen med nedbøralgoritmen er beskrevet i Appendiks. Både strømsignalverdiene og intensitetsverdiene fra nedbørdetektorene ønsker vi å lagre i databasen for analyse og etterkontroll av dataene selv om vi ikke benytter de direkte i algoritmen. I databasen lagres medianverdien av de 12 stk 5-sekundverdiene etter en grensetest, dvs. at vi får lagret Int_01 og ma_01. Akkumulering av korrigerte bøtteverdier i diskrete 10-minutters-perioder: Prinsippet i algoritmen er å akkumulere vekst i bøtteverdiene innenfor 10-minuttersintervall. Det er altså kun positive differanser innenfor intervallet som blir akkumulert med test mot en ja/nei-sensor. Metoden for dette er skissert nedenfor. Kurven i figur 2 er basert på RA_01-verdiene innenfor et diskret 10-min-intervall. Ideen bak algoritmen er for hvert diskrete 10-min-intervall å finne den laveste bøtteverdien etter at den høyeste er nådd. Max Corr 0 Min 0 10 min Corr 10 Time Figur 2: Prinsippet for beregning av korrigerte bøtteverdier. Definisjoner: RA_01: Den akkumulerte nedbøren i bøtta (bøtteverdien). 1-minuttsverdi. Corr0: Tidligere korrigerte bøtteverdi. Startverdi for 10-min-perioden. Corr10: Korrigerte bøtteverdi ved slutten av 10-min-perioden. Max: maksimum bøtteverdi i løpet av 10-min-perioden. Min: laveste bøtteverdi etter at den høyeste er nådd i 10-min-perioden. RA_diff: Bøtteverdien ved slutten av 10-min-perioden minus bøtteverdien ved starten av 10- min-perioden. 3
Godkjent: Author: R Brækkan. K Møen Side: 4 av 6 4 Videre forløp av algoritmen: Figur 3: Flytdiagrammet 4
Godkjent: Author: R Brækkan. K Møen Side: 5 av 6 5 Min, Max, Corr0 og Corr10 gis startverdier lik den første godkjente registrerte RA_01- verdien når algoritmen startes. Når det har gått minst 10 minutter siden start, testes kontinuerlig den siste RA_01-verdien mot Max- og Min-verdiene. For hver siste RA-01-verdi som er kontrollert mot Max/Min går vi i gjennom en test som spør om klokka er hel på et 10. minutt. Hvis ja på dette er vi klar for å se på det siste gjennomgåtte, diskrete 10 - minuttersintervallet, og vi går over i neste bolk. Vi spør først om vi har en ja/nei-sensor som virker? Hvis ja, sjekkes det først om Min > Corr0. Hvis ja på dette også, sjekker vi om ja/nei-sensoren har sagt ja eller nei til nedbør i perioden med tilhørende akkumulasjon av nedbør eller ei. Hvis Min Corr0 betyr det at vi ikke har hatt noen positiv tilvekst i bøtta og dermed setter akkumulert nedbør i perioden = 0 uavhengig av om ja/nei-sensoren sier ja eller nei til nedbør. I de tilfeller der Ja/nei-sensor slutter å virke, beregnes de akkumulerte nedbørverdiene ved hjelp av gamlemetoden uten algoritmen, dvs. ved differanser i bøtteverdiene (alternativ modus). I databasen taes det hele tiden vare på RA-verdiene 24 timer tilbake. Hvis Ja/neisensoren ikke virker over 2 10-minuttersperioder (2 ganger gjennom algoritmen), definerer vi det som at ja/nei-sensoren ikke kan brukes. Databasen vil da starte, ved første minutt etter disse 2 10-minuttersperiodene, å lagre akkumulerte verdier for RR_1 osv ut fra differanser i bøtteverdiene. RT-verdiene vil bli flagget med verdiene -99.9 når ja/neisensoren ikke virker. NB: Ved Beregning av RR_1 ved differanser i bøtteverdiene (i alternativ modus), husk at RR_1 >= 0. Vi ønsker ikke negative nedbørakkumuleringer. Hvis Ja/nei-sensor fungerer igjen, venter vi til timeskift (hel time) før vi går inn i algoritmen igjen og setter nye startverdier på Min, Max, Corr0 og Corr10. På denne måten får vi med oss fullstendige RR_1-verdier fra alternativ modus før vi går tilbake gjennom algoritmen på vanlig måte. Så lenge vi er i alternativ modus holdes RT = -99.9. Til slutt i algoritmen gjør vi et par tester til før vi endelig bestemmer RR_010-verdien for 10- minutters-perioden. Den første testen består i om vi har hatt tømming av bøtta i de siste 19 minuttene, og vi tester derfor om RA_01 < 50 mm (som vi antar skyldes en tømmeepisode). Hvis dette er riktig, velger vi å sette RR_010 = 0. Den siste testen vil luke ut akkumulert nedbør som kan skje i perioder hvor ja/nei-sensor sier ja til nedbør, samtidig som akkumulert nedbørverdi er på mer enn 35 mm i løpet av 10 minutter (som da kan skyldes store snø/isklumper/fugler etc som ramler ned i bøtta). Den registrerte norgesrekorden for nedbør i løpet av 10 minutter er omkring 25 mm. 35 mm i løpet av 10 minutter er vannvittig mye, og må sies å være svært usannsynlig i Norge. Derfor anser vi det som helt sikkert at verdier over 35 mm i løpet av 10 minutter ikke skyldes naturlig nedbør. I enden av dette flyt-diagrammet sitter vi nå igjen med en RR_010-verdi som enten er større eller lik 0. Disse RR_010-verdiene akkumuleres videre til RR_1-verdier (timesverdier), som igjen brukes til beregning av 6-, 12-, 24-timersnedbør osv. 5
Godkjent: Author: R Brækkan. K Møen Side: 6 av 6 6 Aktuell J/N sensor for kontroll input. Thies analog precipitation detector. Fra Thies-sensoren leser vi en strømsignal-verdi hvert 5. sekund som ligger innenfor intervallet 4-20 ma. Vi har bestemt at et strømsignal på 4.66 eller større sier JA til at det er nedbør (gir en 1 er i YesNo), mens en verdi mindre enn 4.66 sier NEI til at det er nedbør (gir en 0 er i YesNo). Verdien 4.66 tilsvarer en nedbørmengde på 0.1 mm i løpet av en time. Hvis vi ikke får noe signal fra Thies-sensoren settes YesNo= -99.9. Hvis medianverdien av de godkjente (altså verdier større enn -99.9) 5-sekundverdiene siste minutt er større enn 4.66, så settes YesNo_01 =1, ellers settes YesNo_01 =0. Hvis alle 12 stk. 5-sekundverdier er - 99.9 settes YesNo_01 = -99.9 (altså ja/nei virker ikke for minuttverdien). YesNo_01 lagres også i databasen. 6