Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
kvalobs:kvalobs:aggregering [2015-05-04 08:31:43]
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:00 og 18:00| 
-|TAX|TAX_12|06:00 og 18:00| 
-|TGN|TGN_12|06:00 og 18:00| 
-|  |  |  | 
-|RR_01|RR_1|Hver time| 
-|RR_1|RR_12|06:00 og 18:00| 
-|RA|RR_12|06:00 og 18:00| 
-|RR_12|RR_24|06:00| 
-|  |  |  | 
-|TA og TAN_12|TAM_24|23:00| 
-|UU|UUM_24|23:00| 
-|NN|NNM_24|23:00| 
-|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, og legger det inn i databasen, uavhengig av om det fantes aggregerte verdier der fra før. Original og korrigert verdi beregnes hver for seg, med samme algoritme. 
- 
- 
-==== 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, med unntak av [[kvalobs:kvalobs-flagg#vurdering_av_grunnlagsdata_ved_aggregering_aggregation|fagg]], og [[kvalobs:kvalobs-flagg#manglende_observasjon_missing|fmis]], som settes i henhold til flaggdokumentet. Som ellers i kvalobs beregnes useinfo ut ifra kontrollinfo. 
- 
- 
-==== 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 "grunnlagsstasjonene". Dette, sammen med at stasjoner 
-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://www.sqlite.org/|sqlite3]] være installert. 
- 
-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}/lib/kvagregated/database.sqlite. localstatedir er normalt området /var eller /usr/local/var på maskinen. For å gi kvalobsbrukeren skriverettigheter til denne kan man for eksempel si: 
- 
-<code bash> 
-chmod kvalobs:kvalobs /var/lib/kvagregated/database.sqlite 
-</code> 
- 
-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, og programmet 
-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, etterhvert 
-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 
-</code> 
- 
-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, beregnes RR_1 som vanlig. Fra sommer 2011 prepareres datainput til kvalobs med 0.0 i første minutt i timen - slik at alle timer aggregeres. Hvis dette av en eller anne grunn ikke skjer, må kvdrift kjøre en jobb, som legger inn RR_01=0.0 på første minutt i timen der hvor det mangler aggregert RR_1-data i databasen - aggregator kjøres så manuelt for perioden. 
- 
-=== RA og RR_1 fra samme stasjon === 
- 
-Hvis en stasjon rapporterer både RA og RR_1, vil det 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)>=0     sett RR_12(t) = RA(t)-RA(t-12) 
- 
-   * 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, hvor metadatatypename=koppen_MÅNED, for eksempel koppen_06 for verdier som skal brukes i juni. 
- 
-=== 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, er kjent.  
-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='Tl' og  docformatid=0), men kan også genereres fra KLIMA eller DVH10. 
- 
-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) e^ betyr “e opphøyd i” 
- 
-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/(241.2+Tm)) 
- 
-== Hvis Metode 1 og TA < 1.5  (er ikke tatt i bruk): == 
- 
-PO = PR / e^(Hp/Y) e^ betyr “e opphøyd i” 
- 
-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/(241.2+Tm)) 
- 
-== Setting av flagg: == 
-Controlinfo og useinfo settes lik flaggverdiene knyttet til PR. 
- 
- 
  
  • kvalobs/kvalobs/aggregering.1430728303.txt.gz
  • Last modified: 2022-05-31 09:23:18
  • (external edit)