Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
kvalobs:kvalobs:aggregering [2015-05-12 06:12:30] pals [Spesielle regler] |
— (current) | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== kvAgregated ====== | ||
- | |||
- | |||
- | ==== Introduksjon ==== | ||
- | |||
- | Dette programmet mottar observasjoner fra kvalobs og genererer | ||
- | aggregerte verdier på grunnlag av disse. De aggregerte verdiene | ||
- | sendes så tilbake til kvalobs. | ||
- | |||
- | Følgende liste viser hvilke parametre fra kvalobs som generer hva: | ||
- | |||
- | |Fra|Til|Når| | ||
- | |TAN|TAN_12|06: | ||
- | |TAX|TAX_12|06: | ||
- | |TGN|TGN_12|06: | ||
- | | | | | | ||
- | |RR_01|RR_1|Hver time| | ||
- | |RR_1|RR_12|06: | ||
- | |RA|RR_12|06: | ||
- | |RR_12|RR_24|06: | ||
- | | | | | | ||
- | |TA og TAN_12|TAM_24|23: | ||
- | |UU|UUM_24|23: | ||
- | |NN|NNM_24|23: | ||
- | |PR og TA|PO|Hver time| | ||
- | |OT_1|OT_24|Midnatt| | ||
- | |||
- | Merk at det også genereres aggregerte verdier av de aggregerte | ||
- | verdiene, så dersom for eksempel en stasjon kun rapporterer RR_1 vil | ||
- | både RR_12 og RR_24 aggregeres. | ||
- | |||
- | Det er også verdt å merke seg at aggregeringene oppdateres etterhvert som grunnlagsdata oppdateres, så dersom for eksempel en observasjon av RR_1 endres av HQC, vil aggregerte verdier av RR_12 oppdateres tilsvarende. HQC kan endre på aggregerte verdier, men hvis grunnlagsdata endres, vil ny aggregering bli gjort og raden overskrives (med fhqc=0). | ||
- | |||
- | Aggregatoren beregner både originalverdi og korrigertverdi, | ||
- | |||
- | |||
- | ==== Aggregerte parametre ==== | ||
- | |||
- | De aggregerte parametrene vil ha lik stasjonsid, sensor og level som de parametrene som aggregeres. typeid, derimot, vil endres til å bli lik den negative verdien av den originale typeid. Dette medfører at aggregerte verdier lett kan skilles fra ikke-aggregerte verdier i kvalobs. | ||
- | |||
- | De aggregerte verdiene får kontrollflagg fylt ut med bare null-verdier, | ||
- | |||
- | |||
- | ==== Aggregerte parametre og kvalobs ==== | ||
- | |||
- | Det er viktig å merke seg at siden de aggregerte parametrene får | ||
- | negativ typeid, blir de av kvalobs oppfattet som forskjellige | ||
- | stasjoner fra " | ||
- | med negativ typeid ikke fins i obs_pgm, medfører at det ikke blir | ||
- | gjort noen kvalitetskontroll av de aggregerte verdiene. | ||
- | |||
- | |||
- | ==== Oppsett før kjøring ==== | ||
- | |||
- | For å kjøre kvAgregated må [[http:// | ||
- | |||
- | Under installasjon kjøres skriptet kvAgregateDbInit. Dette skriptet lager en cachedatabase for aggregatoren. For at den skal kunne brukes, må aggregatoren ha skriverettigheter dit. Databasen legges i fila {localstatedir}/ | ||
- | |||
- | <code bash> | ||
- | chmod kvalobs: | ||
- | </ | ||
- | |||
- | Dette skjer automatisk dersom aggregatoren er installert via en debian-pakke (som den nå er på produksjonsmaskinene). | ||
- | |||
- | ==== Start av kvAgregated ==== | ||
- | |||
- | Når kvAgregated startes vil den i begynne med å hente ned data fra | ||
- | kvalobs for de siste 24 timene. Dette er resurskrevende, | ||
- | bør ikke startes mens kvalobs har mye annet å gjøre, dvs at hver hele og | ||
- | halve time bør unngås for oppstart. | ||
- | |||
- | Etter oppstarten vil aggregerte data genereres fortløpende, | ||
- | som grunnlagsdata kommer inn. | ||
- | |||
- | kvAgregated tar flere kommandolinjeargumenter. For å få en liste over disse, kan du kjøre følgende kommando: | ||
- | |||
- | <code bash> | ||
- | kvAgregated --help | ||
- | </ | ||
- | |||
- | Opsjonene til kommandolinja lar deg styre aggregeringen på forskjellige måter. For eksempel kan du begrense hvilke stasjoner eller parametre som skal aggregeres, eller du kan få aggregatoren til å gå igjennom, og reprosessere gammel data. | ||
- | |||
- | |||
- | ==== Feilsituasjoner ==== | ||
- | |||
- | Hvis kvalobs går ned kan det være en god ide å også restarte kvAgregated. | ||
- | |||
- | Idet aggregatoren begynner å kjøre igjen, vil den automatisk gå igjennom data for de siste tre timene, for å se om det har kommet noe nytt å aggregere siden den gikk ned. | ||
- | |||
- | Hvis aggregatorene har vært lengre nede enn tre timer, må kommandolinjeopsjoner settes for å få aggregatoren til å prosessere data lengre bak enn tre timer. Kjør %%kvAgregated --help%% for detaljer. | ||
- | |||
- | |||
- | |||
- | |||
- | ==== Spesielle regler === | ||
- | |||
- | |||
- | === RR_1 fra RR_01 === | ||
- | |||
- | Siden det ikke kommer inn minuttverdier for nedbør når det ikke har regnet, må aggregering av minuttnedbør behandles anderledes enn andre verdier. | ||
- | |||
- | Når det faktisk kommer data for minuttnedbør, | ||
- | |||
- | === RA og RR_1 fra samme stasjon === | ||
- | |||
- | Hvis en stasjon rapporterer både RA og RR_1, vil aggregering av RR_12 fra RR_1 prioriteres over aggregering fra RA. | ||
- | |||
- | |||
- | === RR_12 fra RA === | ||
- | |||
- | RR_12 vil ikke aggregeres fra RA dersom RA-verdien har minket | ||
- | betraktelig siden sist aggregering (for eksempel dersom målebøtta har | ||
- | blitt tømt). | ||
- | |||
- | Følgende korrigeringsalgoritme er implementert: | ||
- | |||
- | |||
- | * Hvis RR_12(t) = RA(t)-RA(t-12) %%<%%= 0 Sett RR_12(t) = 0 | ||
- | |||
- | * Hvis RR_12(t) = RA(t)-RA(t-12) > 0 og RA(t-12)-RA(t-24) %%<=%% -100 sett RR_12(t) = RA(t)-RA(t-12) | ||
- | ellers: | ||
- | |||
- | * Hvis RR_12(t) = RA(t)-RA(t-12) > 0 og RA(t)-RA(t-24) %%<=%% 0 Sett RR_12(t) = 0 | ||
- | |||
- | * Hvis RR_12(t) = RA(t)-RA(t-12) > 0 og RA(t)-RA(t-24) > 0 og RA(t-12)-RA(t-24)> | ||
- | |||
- | * Hvis RR_12(t) = RA(t)-RA(t-12) > 0 og RA(t)-RA(t-24) >=0 og RA(t-12)-RA(t-24) < 0 sett RR_12(t) = RA(t)-RA(t-24) | ||
- | |||
- | === OT_24 fra OT_1 === | ||
- | |||
- | For stasjoner som sender inn minuttverdier for OT_1 benyttes kun minutt = 00 for å beregne OT_24. | ||
- | |||
- | === Middelverdier === | ||
- | |||
- | Noen døgnmiddelverdier (TA_24 og UU_24, men ikke NN_24) beregnes ved hjelp av Köppens formel. Konstanter for å gjøre disse beregningene hentes fra kvalobs-tabellen station_metadata, | ||
- | |||
- | === Trykk === | ||
- | |||
- | Det beregnes også PO utfra PR i aggregatoren. Stasjonsspesifikke konstanter hentes fra tabellen station_metadata i kvalobs-databasen. | ||
- | |||
- | Aggregert PO legges ikke inn i databasen hvis den aggregerte verdien er veldig nær den rapporterte originalverdien for PO. | ||
- | |||
- | == Algoritme for beregning av lufttrykket PO på stasjonen (QFE) når lufttrykket redusert til havets nivå PR (QFF) er kjent == | ||
- | |||
- | |||
- | PO = paramid 173 \\ | ||
- | PR = paramid 178 \\ | ||
- | TA = paramid 211 \\ | ||
- | UM = paramid 284 \\ | ||
- | TM = paramid 285 \\ | ||
- | |||
- | == Forutsetninger == | ||
- | |||
- | PR - Reduseet lufttrykk ved observasjonstidspunktet er kjent. | ||
- | TA - Lufttemperaturen på stasjonen, ved observasjonstidspunktet, | ||
- | UM - Årsmiddelverdi av luftfuktigheten på stasjonen er kjent. | ||
- | TM - Årsmiddelverdi av lufttemperaturen på stasjonen er kjent. | ||
- | Hp - Referansehøyden for lufttrykk på stasjonen er kjent. | ||
- | |||
- | Hp ligger i stinfosys.station.hp | ||
- | Um og Tm ligger i stinfosys.station_info.description (med code=' | ||
- | |||
- | Stasjonsvise vedier av Um, Tm, Hp må ligge som metadata i Kvalobs og Histkvalobs. Disse må oppdateres og være klargjort for å inneholde historikk (for Histkvalobs). | ||
- | |||
- | Beregning etter Metode 0 (ingen inversjonskorreksjon) | ||
- | eller Metode 1 (inversjonskorreksjon) er kjent. Stasjonsliste for Metode 1 må lages i Stinfosys – med historikk hvis det endres. | ||
- | Metode 1 er ikke tatt i bruk. | ||
- | |||
- | == Algoritme == | ||
- | |||
- | == Hvis Metode 0: == | ||
- | |||
- | PO = PR / e^(Hp/ | ||
- | |||
- | Y = (Cu+0.00325*Hp+273.2+TA)*29.29 | ||
- | Cu=Um*(2.5*10^(-5)*Hp + 0.10701)*0.0611213*e^(17.5043*Tm/ | ||
- | |||
- | == Hvis Metode 1 og TA < 1.5 (er ikke tatt i bruk): == | ||
- | |||
- | PO = PR / e^(Hp/ | ||
- | |||
- | Y = (Cu+0.00325*Hp+273.2+(TA*0.315)+1)*29.29 | ||
- | Cu=Um*(2.5*10^(-5)*Hp + 0.10701)*0.0611213*e^(17.5043*Tm/ | ||
- | |||
- | == Setting av flagg: == | ||
- | Controlinfo og useinfo settes lik flaggverdiene knyttet til PR. | ||
- | |||
- | |||