Ero sivun ”Mikrobien määrä pohjavedessä” versioiden välillä
(Ak: Uusi sivu: {{muuttuja}} == Rajaus == Mikrobien määrä pohjavedessä kuvaa eri mikrobien mitattuja pitoisuuksia pohjavedessä. == Määritelmä == === Data === Data perustuu kuviteltuun ti…) |
(edistymisluokitus lisätty) |
||
(29 välissä olevaa versiota 6 käyttäjän tekeminä ei näytetä) | |||
Rivi 1: | Rivi 1: | ||
{{muuttuja}} | {{muuttuja}} | ||
{{edistymisluokitus|edistyminen=Luonnos}} | |||
[[Luokka:Pohjavesi]] | |||
[[Luokka:Sisältää R-koodia]] | |||
== | ==Kysymys== | ||
Mitä mikrobien määrä pohjavedessa kuvaa? | |||
==Vastaus== | |||
Mikrobien määrä pohjavedessä kuvaa eri mikrobien mitattuja pitoisuuksia pohjavedessä. | Mikrobien määrä pohjavedessä kuvaa eri mikrobien mitattuja pitoisuuksia pohjavedessä. | ||
== | ==Malli== | ||
'''Skenaariot''' | |||
*1a - Kulkeutuminen pohjavesivyöhykkeessä päästölähteestä raakavesilähteeseen. Ei imeytystä tai pumppausta. | |||
*1b - Kulkeutuminen pohjavesivyöhykkeessä päästölähteestä vedenottokaivoon. Ei imeytystä. | |||
*1c - Vedenottokaivon saastuminen viemäputken rikkoutumisen tai vuodon seurauksena, kun viemärivuoto tapahtuu pohjavesivyöhykkeessä. | |||
*1d - Mikrobien kulkeutuminen kaivoimeytyksestä vedenottokaivoon. Kyseessä on paineellinen akviferi, jossa vettä imeytetään hyvin johtavaan pohjavesivyöhykkeeseen, jonka yläpuolella on huonosti vettä johtava kerros. | |||
*1e - Mikrobien kulkeutuminen rantaimeytyksen kautta pohjavesivyöhykkeessä vedenottokaivoon. | |||
*2a - Kulkeutuminen pohjavesivyöhykkeen yläpuolella sijaitsevasta päästölähteestä raakavesilähteeseen. Ei imeytystä tai pumppausta. | |||
*2b - Kulkeutuminen pohjavesivyöhykkeen yläpuolella sijaitsevasta päästölähteestä vedenottokaivoon. | |||
*2c - Vedenottokaivon saastuminen viemäputken rikkoutumisen tai vuodon seurauksena, kun viemärivuoto tapahtuu pohjavesivyöhykkeen yläpuolisessa osittain kyllästyneessä vyöhykkeessä. | |||
*2d - Mikrobien kulkeutuminen sadetusimeytyksestä vedenottokaivoon. | |||
*2e - Mikrobien kulkeutuminen allasimeytyksestä vedenottokaivoon. | |||
<rcode | |||
embed=0 | |||
name='mikrobien_kulkeutuminen' | |||
variables=" | |||
name:sc_type|description:Valitse tyyppi|type:selection|options:;- valitse -;'1';1 - Mikrobien kulkeutuminen pohjavesivyöhykkeessä;'2';2 - Mikrobien kulkeutuminen päästölähteestä pohjavesivyöhykkeeseen ja edelleen| | |||
category:Skenaario| | |||
name:scenario|description:Valitse skenaario|type:selection|options:;- valitse -;'1a';a;'1b';b;'1c';c;'1d';d;'1e';e| | |||
category:Aliskenaariot 1|category_conditions:sc_type;'1'| | |||
name:scenario|description:Valitse skenaario|type:selection|options:;- valitse -;'2a';a;'2b';b;'2c';c;'2d';d;'2e';e| | |||
category:Aliskenaariot 2|category_conditions:sc_type;'2'| | |||
name:R|description:Etäisyys päästölähteestä (m)|default:100| | |||
category:Pohjavesialueen ominaisuudet 1|category_conditions:scenario;'1d'| | |||
name:H_2|description:Paineelliisen pohjavesivyöhykkeen paksuus (m)|default:10| | |||
name:R|description:Etäisyys päästölähteestä (m)|default:100| | |||
category:Pohjavesialueen ominaisuudet 2|category_conditions:scenario;'1a';'1b';'1c';'1e'| | |||
name:H_2|description:Pohjavesivyöhykeen paksuus (m)|default:10| | |||
name:R|description:Etäisyys päästölähteestä (m)|default:100| | |||
category:Pohjavesialueen ominaisuudet 3|category_conditions:sc_type;'2'| | |||
name:H_2|description:Pohjavesivyöhykeen paksuus (m)|default:10| | |||
name:H_us|description:Osittain kyllästyneen vyöhykkeen paksuus (m)|default:3| | |||
name:g_input_type|description:Valitse maalaji tai oma määritelmä|type:selection|options:;- valitse -;'Sora';Sora;'Karkea hiekka';Karkea hiekka;'Hiekka';Hiekka;'Hieno hiekka';Hieno hiekka;'Siltti';Siltti;'Savi';Savi;'Hiekkamoreeni';Hiekkamoreeni;'Hienoainesmoreeni';Hienoainesmoreeni;'custom1';Oma määritelmä| | |||
category:Maaperän rakenne ja hydrauliset ominaisuudet 1|category_conditions:scenario;'1a';'1b';'1c';'1d';'1e';'2d';'2e'| | |||
name:g_input_type|description:Valitse maalaji tai oma määritelmä|type:selection|options:;- valitse -;'Sora';Sora;'Karkea hiekka';Karkea hiekka;'Hiekka';Hiekka;'Hieno hiekka';Hieno hiekka;'Siltti';Siltti;'Savi';Savi;'Hiekkamoreeni';Hiekkamoreeni;'Hienoainesmoreeni';Hienoainesmoreeni;'custom2';Oma määritelmä| | |||
category:Maaperän rakenne ja hydrauliset ominaisuudet 2|category_conditions:scenario;'2a';'2b';'2c'| | |||
name:n_2|description:Huokoisuus pohjavesivyöhykkeessä|default:0.35| | |||
category:Maaperän rakenne ja hydrauliset ominaisuudet oma määritelmä 1|category_conditions:g_input_type;'custom1'| | |||
name:K_2|description:Vedenjohtavuus pohjavesivyöhykkeessä (m/s)|default:0.001| | |||
name:n_2|description:Huokoisuus pohjavesivyöhykkeessä 2|default:0.35| | |||
category:Maaperän rakenne ja hydrauliset ominaisuudet oma määritelmä|category_conditions:g_input_type;'custom2'| | |||
name:K_2|description:Vedenjohtavuus pohjavesivyöhykkeessä (m/s)|default:0.001| | |||
name:n_1|description:Huokoisuus osittain kyllästyneessä vyöhykkeessä|default:0.35| | |||
name:K_us|description:Vedenjohtavuus osittain kyllästyneessä vyöhykkeessä (m/s)|default:2.43e-07| | |||
name:theta|description:Tilavuusvesipitoisuus|default:'-'| | |||
name:Se|description:Kyllästysaste|default:'-'| | |||
name:lambda|description:Huokosten kokoa kuvaava parametri|default:'-'| | |||
name:q|description:Vuodon määrä (m^3/d)|default:100.0| | |||
category:Viemärivuoto 1|category_conditions:scenario;'1c'| | |||
name:h|description:Pohjaveden pinnankorkeus vedenottokaivossa(m)|default:10.0| | |||
name:hj|description:Pohjaveden pinnankorkeus jätevesiviemärin kohdalla (m)|default:13.0| | |||
name:q|description:Vuodon määrä (m^3/d)|default:100.0| | |||
category:Viemärivuoto 2|category_conditions:scenario;'2c'| | |||
name:H_v|description:Virtausnopeus akviferissä (m/s)|default:1.5| | |||
name:Q_i|description:Imeytyksen määrä (m3/d)|default:1000.0| | |||
category:Imeytys 1|category_conditions:scenario;'1d'| | |||
name:W|description:Sadetuksen määrä (m3/d)|default:500.0| | |||
category:Imeytys 2|category_conditions:scenario;'2d'| | |||
name:As|description:Sadetuksen pinta-ala (m^2)|default:50.0| | |||
name:W|description:Allasimeytyksen määrä (m3/d)|default:1000.0| | |||
category:Imeytys 3|category_conditions:scenario;'2e'| | |||
name:As|description:Imeytyksen pinta-ala (m^2)|default:2700.0| | |||
name:Q_2|description:Vedenottokaivon tuotto (m3/d)|default:1000.0| | |||
category:Vedenotto|category_conditions:scenario;'1b';'1c';'1d';'1e';'2b';'2c';'2d';'2e'| | |||
name:vesilähde|description:Vesilähde|type:selection| | |||
options:;- valitse -;'Pohjavesi';Pohjavesi;'Luonnontilainen joki';Luonnontilainen joki; | |||
'Vaikutuksen alainen joki';Vaikutuksen alainen joki;'Järvi';Järvi;'Jätevesi';Jätevesi;'custom';Oma määritelmä| | |||
category:Vesi| | |||
name:c_A|description:Mikrobin aktiivisuuden määräävä rajapitoisuus (1/l)|default:10.0| | |||
name:mu_type|description:Mikrobien inaktivaatio|type:selection|options:'default';Oletusarvot;'custom';Oma määritelmä| | |||
name:p_kampy|description:Kampylobakteeripitoisuus (mikrobia/l)|default:'-'| | |||
category:Patogeenien pitoisuudet|category_conditions:vesilähde;'custom'| | |||
name:p_salmo|description:Salmonellapitoisuus (mikrobia/l)|default:'-'| | |||
name:p_ecoli|description:E.colipitoisuus (mikrobia/l)|default:'-'| | |||
name:p_rotav|description:Rotaviruspitoisuus (mikrobia/l)|default:'-'| | |||
name:p_shige|description:Shigella (mikrobia/l)|default:'-'| | |||
name:p_giard|description:Giardiapitoisuus (mikrobia/l)|default:'-'| | |||
name:p_crypt|description:Cryptosporidiumpitoisuus (mikrobia/l)|default:'-'| | |||
name:mu|description:Mikrobien inaktivaatiokerroin (1/d)|default:0.01| | |||
category:Mikrobien inaktivaatio|category_conditions:mu_type;'custom' | |||
" | |||
> | |||
if (is.null(sc_type)) stop("Skenaariota ei ole määritetty!") | |||
if (is.null(scenario)) stop("Aliskenaariota ei ole määritetty!") | |||
if (is.null(g_input_type)) stop("Maaperän ominaisuuksia ei ole määritetty!") | |||
if (is.null(vesilähde)) stop("Mikrobipitoisuuksia ei ole määritetty!") | |||
library(OpasnetUtils) | |||
openv.setN(10) | |||
# Patogeenien pitoisuudet | |||
if (vesilähde == "custom"){ | |||
temp <- list(p_kampy, p_salmo, p_ecoli, p_rotav, p_shige, p_giard, p_crypt) | |||
Patogeeni = c("Kampylobakteeri", "Salmonella", "E.coli","Rotavirus","Shigella","Giardia", "Cryptosporidium") | |||
c_0 <- data.frame( | |||
Patogeeni, | |||
Patogeenin.tyyppi = c(rep("Bakteeri", 3), "Virus", "Alkueläin"), | |||
Result = suppressWarnings(as.numeric(temp)) | |||
) | |||
c_0 <- c_0[!is.na(c_0$Result), ] | |||
c_0 <- Ovariable("c_0", data = c_0) | |||
} else { | |||
objects.latest("Op_fi3939", "muuttuja") # RaakaPitoisuus, customoitia varten | |||
c_0@data <- c_0@data[as.character(c_0@data$Vesilähde) == vesilähde, ] | |||
#c_0 <- c_0[colnames(c_0) != c("Vesilähde")] | |||
#c_0 <- Ovariable("c_0", data = c_0) | |||
} | |||
# Inaktivaatiokertoimet | |||
if (mu_type == "default") { | |||
objects.latest("Op_fi3942", "muuttuja") | |||
} | |||
mu_1 <- mu | |||
mu_2 <- mu | |||
# Maaperän ominaisuudet | |||
if(!g_input_type %in% c("custom1", "custom2")) { | |||
objects.latest("Op_fi3940", "muuttuja") #n | |||
objects.latest("Op_fi3941", "muuttuja") #K | |||
if(scenario %in% c("2a","2b","2c")) { | |||
n_1 <- Ovariable("n_1", data = n@data[n@data$Maalaji == g_input_type,]) # huokoisuus osittain kyllästyneessä vyöhykkeessä | |||
colnames(n_1@data)[colnames(n_1@data) == "nResult"] <- "n_1Result" | |||
K_us <- 2.43e-07 # vedenjohtavuus osittain kyllästyneessä vyöhykkeessä | |||
n_2 <- Ovariable("n_2", data = n@data[n@data$Maalaji == g_input_type,]) | |||
colnames(n_2@data)[colnames(n_2@data) == "nResult"] <- "n_2Result" | |||
K_2 <- Ovariable("K_2", data = K@data[K@data$Maalaji == g_input_type,]) | |||
colnames(K_2@data)[colnames(K_2@data) == "KResult"] <- "K_2Result" | |||
} else { | |||
n_2 <- Ovariable("n_2", data = n@data[n@data$Maalaji == g_input_type,]) | |||
colnames(n_2@data)[colnames(n_2@data) == "nResult"] <- "n_2Result" | |||
K_2 <- Ovariable("K_2", data = K@data[K@data$Maalaji == g_input_type,]) | |||
colnames(K_2@data)[colnames(K_2@data) == "KResult"] <- "K_2Result" | |||
} | |||
} | |||
# Models | |||
time_pre <- function(H, n, K) { | |||
H*n/K | |||
} | |||
time_type1 <- function(R, n, K, H) { | |||
R^2*n/(K*H) | |||
} | |||
time_type2 <- function(n, H, R, Q) { | |||
2*pi*n*H*R^2/Q | |||
} | |||
concentration <- function(c_0, mu, t) { | |||
c_0*exp(-1*mu*t) | |||
} | |||
inactivation <- function(c_threshold, c_initial, mu){ | |||
-1*log(c_threshold/c_initial)/mu | |||
} | |||
scenario <- as.character(scenario) | |||
scenario <- strsplit(scenario, "")[[1]] | |||
# Model parameter values unique to scenario: | |||
if (scenario[1] == "1" & scenario[2] == "c") { # depends on Ks, hj, h, Hs, c_0 | |||
Q_a <- Ks*(hj-h)*Hs | |||
c_aq <- c_0*q/Q_a | |||
c_0 <- c_aq | |||
} | |||
=== Data === | if (scenario[1] == "1" & scenario[2] == "d") { # depends on c_0, Q_i and Q | ||
c_aq <- c_0*Q_i/Q | |||
c_0 <- c_aq | |||
} | |||
if (scenario[1] == "2" & scenario[2] == "c") { # depends on K_us, H_us, H_v, c_0 and q | |||
Q_us <- K_us*(H_us-H_v)^2 | |||
c_us <- c_0*q/Q_us | |||
c_0 <- c_us # not in the Excel but i think this is what is intended | |||
} | |||
if (scenario[1] == "2" & (scenario[2] == "d"|scenario[2] == "e")) { # depends on W and As | |||
vs <- W/As | |||
} | |||
# First pass. Only for scenarios beginning with 2. | |||
if (scenario[1]=="2") { | |||
if (scenario[2] == "a"|scenario[2] == "b") { # depends on H_us and K_us | |||
H_1 <- H_us | |||
K_1 <- K_us | |||
} | |||
if (scenario[2] == "c") { # depends on H_us, H_v and K_us | |||
H_1 <- H_us - H_v | |||
K_1 <- K_us | |||
} | |||
if (scenario[2] == "d"|scenario[2] == "e") { # depends on H_us and vs | |||
H_1 <- H_us | |||
K_1 <- vs | |||
} | |||
t_1 <- time_pre(H_1, n_1, K_1) # depends | |||
c_1 <- concentration(c_0, mu_1, t_1) # depends | |||
t_in_1 <- inactivation(c_A, c_0, mu_1) | |||
} else { | |||
t_1 <- 0 | |||
c_1 <- c_0 | |||
t_in_1 <- Inf | |||
} | |||
# Second pass. Model used depends on scenario second part. | |||
if (scenario[2] == "a") { | |||
t_2 <- time_type1(R, n_2, K_2, H_2) # depends | |||
} else { | |||
t_2 <- time_type2(n_2, H_2, R, Q_2) # depends | |||
} | |||
c_2 <- concentration(c_1, mu_2, t_2) # depends | |||
t_in_2 <- inactivation(c_A, c_1, mu_2) # depends | |||
cat("Pitoisuus\n") | |||
oprint(summary(c_2, marginals = c("Patogeeni", "Havainto"))) | |||
cat("Kulkeutumisaika\n") | |||
oprint(summary(t_1 + t_2)) | |||
cat("Inaktivaatioaika\n") | |||
oprint(summary(t_in_2, marginals = c("Patogeeni", "Havainto"))) | |||
</rcode> | |||
==Perustelut== | |||
===Data=== | |||
Data perustuu kuviteltuun tilanteeseen. | Data perustuu kuviteltuun tilanteeseen. | ||
=== | <t2b index="Symboli,Parametri,Selite,Havainto" locations="Arvo,Yksikkö,Excel" unit="-"> | ||
Ks|vedenjohtavuus|Kyllästyneen tilan vedenjohtavuus|1.00E-05|m /s|D9 | |||
Hs|paksuus|Pohjavesivyöhykkeen paksuus|5-15|m|D10 | |||
R|etäisyys|Etäisyys päästölähteestä|100|m|D11 | |||
n|huokoisuus|Maaperän huokoisuus|0.35||D12 | |||
C0|mikrobipit.lähde|Päästölähteen mikrobipitoisuus = mikrobipitoisuus akviferissä|1.00E+08|# /l|D13 | |||
CA|inaktivaatiopit|Pitoisuus jolloin mikrobien ajatellaan inaktivoituneen|10|# /l|D14 | |||
µ|inaktivaationopeus|Inaktivaatiokerroin|0.01|1 /vrk|D15 | |||
t|kulkeutumisaika|Kulkeutumisaika|405.0925926|vrk|D17: =D11/(D9*(D10/D11)/D12)/3600/24 | |||
Ct|mikrobipit.kohde|Pitoisuus tarkastelukohdassa|1.74E+06|# /l|D18: =D13*EXP((-D15*D17)) | |||
tin|inaktivaatioaika|Inaktivaatioaika|1610|vrk|D19: =LOG10(D14/D13)/(-D15/2.3) | |||
</t2b> | |||
===Riippuvuudet=== | |||
*[[Patogeenien pitoisuudet vedessä]] | |||
*[[Patogeenien inaktivaatioaika]] | |||
*[[Maaperän huokoisuus]] | |||
*[[Maaperän vedenjohtavuus]] | |||
===Yksikkö=== | |||
=== Yksikkö === | |||
<nowiki># /l</nowiki> | |||
=== | ===Laskenta=== | ||
Tämä laskenta kuvaa mikrobien kulkeutumista pohjavedessä tai maaperässä. | |||
== Tulokset == | Yksinkertaisimmillaan mikrobien voidaan arvioida kulkeutuvan päästölähteestä raakavesilähteeseen samalla nopeudella kuin vesi virtaa kyllästyneessä maaperässä. Päästölähteen oletetaan sijaitsevan pohjavesivyöhykkeessä ja virtauksen tapahtuvat lateraalisuunnassa. Päästölähteen virtaamaa ei ole tunnettu, joten pohjavesivyöhykkeen ja päästölähteen ja pohjavesivyöhykkeen mikrobipitoisuudet oletetaan samoiksi. Pumppausta ei ole huomioitu. Tiedot ovat tiedostosta Riskinarviointilaskelmat_inaktivaatio271112.xls. | ||
'''Kaikki laskennat yhdessä:''' | |||
<rcode variables=" | |||
category:Anna arvo vain jos se poikkeaa ylläolevasta oletusarvojen taulukosta| | |||
name:tilanne|type:selection|options:'suoravirtaus';Suoravirtaus;'kaivoimu';Kaivoimu|default:'suoravirtaus'| | |||
name:tuloste|type:selection|options:'kulkeutumisaika';Kulkeutumisaika;'mikrobipit.kohde';Mikrobipitoisuus kohteessa;'inaktivaatioaika';Inaktivaatioaika|default:'kulkeutumisaika'| | |||
name:kaivon.tuotto|default:1000| | |||
name:vedenjohtavuus|default:| | |||
name:paksuus|default:| | |||
name:etäisyys|default:| | |||
name:huokoisuus|default:| | |||
name:mikrobipit.lähde|default:| | |||
name:inaktivaatiopit|default:| | |||
name:inaktivaationopeus|default: | |||
"> | |||
library(OpasnetUtils) | |||
library(xtable) | |||
# Ensin valikoidaan tietolähde. Käyttäjän antama input on ensisijainen, jos sitä ei ole, kaivetaan Basesta oletusarvo. | |||
# Joka tapauksessa lähtötiedosta rakennetaan ovariable, olipa alkutieto NULL, NA, "", vektori tai data.frame. | |||
# Kannattaisi ehkä ottaa yleiseksi käytännöksi silloin kun data voi tulla käyttäjältä tai tietokannasta? | |||
apparate <- function(objname, source = "Op_fi1755") { | |||
obj <- get(objname) | |||
if(is.null(obj)) obj <- NA | |||
if(is.na(obj) | obj == "") { | |||
temp <- opbase.data(source) | |||
obj <- temp[temp$Parametri == objname & temp$Havainto == "Arvo", ]["Result"] | |||
} | |||
if(is.vector(obj)) obj <- data.frame(Result = obj) | |||
if(is.data.frame(obj)) obj <- new("ovariable", name = objname, data = obj) | |||
return(obj) | |||
} | |||
kaivon.tuotto <- apparate("kaivon.tuotto") | |||
vedenjohtavuus <- apparate("vedenjohtavuus") | |||
paksuus <- apparate("paksuus") | |||
etäisyys <- apparate("etäisyys") | |||
huokoisuus <- apparate("huokoisuus") | |||
mikrobipit.lähde <- apparate("mikrobipit.lähde") | |||
inaktivaatiopit <- apparate("inaktivaatiopit") | |||
inaktivaationopeus <- apparate("inaktivaationopeus") | |||
# Ovariable laskee mikrobipitoisuuden pohjavedessä, kulkeutumisajan ja inaktivaatioajan. Ulos annetaan yksi näistä kolmesta | |||
# riippuen lähtötiedon "tuloste" arvosta. | |||
mikrobit.pohjavesi <- new("ovariable", | |||
name = "mikrobit.pohjavesi", | |||
formula = function(dependencies, ...) { | |||
ComputeDependencies(dependencies, ...) | |||
#Lasketaan kulkeutumisaika kahdella eri tavalla riippuen tilanteesta. | |||
kulkeutumisaika <- 0 | |||
if(tilanne == "suoravirtaus") { | |||
kulkeutumisaika <- etäisyys / (vedenjohtavuus * (paksuus / etäisyys) / huokoisuus) / 3600 / 24 | |||
} | |||
if(tilanne == "kaivoimu") { | |||
kulkeutumisaika <- 2 * pi * huokoisuus * paksuus * etäisyys ^ 2 / kaivon.tuotto # Miksi 2 * ? | |||
} | |||
mikrobipit.kohde <- mikrobipit.lähde * exp(0 - inaktivaationopeus * kulkeutumisaika) | |||
inaktivaatioaika <- log10(inaktivaatiopit / mikrobipit.lähde) / (0 - inaktivaationopeus / 2.3) # Miksi 2.3? | |||
#Loputuloksena annetaan se kolmesta lasketusta outputista joka tulosteessa määritellään. | |||
return(get(tuloste)) | |||
}, | |||
dependencies = data.frame(Name = c( | |||
"tilanne", | |||
"tuloste", | |||
"kaivon.tuotto", | |||
"vedenjohtavuus", | |||
"paksuus", | |||
"etäisyys", | |||
"huokoisuus", | |||
"mikrobipit.lähde", | |||
"inaktivaatiopit", | |||
"inaktivaationopeus" | |||
)) | |||
) | |||
mikrobit.pohjavesi <- EvalOutput(mikrobit.pohjavesi, N = 10) | |||
cat(tuloste, "\n") | |||
print(mikrobit.pohjavesi) | |||
</rcode> | |||
'''Mikrobien inaktivaatioajan laskeminen:''' | |||
<rcode variables=" | |||
category:Anna arvo vain jos se poikkeaa ylläolevasta oletusarvojen taulukosta| | |||
name:tilanne|type:selection|options:'suoravirtaus';Suoravirtaus;'kaivoimu';Kaivoimu|default:'suoravirtaus'| | |||
name:kaivon.tuotto|default:1000| | |||
name:vedenjohtavuus|default:| | |||
name:paksuus|default:| | |||
name:etäisyys|default:| | |||
name:huokoisuus|default:| | |||
name:mikrobipit.lähde|default:| | |||
name:inaktivaatiopit|default:| | |||
name:inaktivaationopeus|default: | |||
"> | |||
library(OpasnetUtils) | |||
library(xtable) | |||
# Ensin valikoidaan tietolähde. Käyttäjän antama input on ensisijainen, jos sitä ei ole, kaivetaan Basesta oletusarvo. | |||
# Joka tapauksessa lähtötiedosta rakennetaan ovariable, olipa alkutieto NULL, NA, "", vektori tai data.frame. | |||
# Kannattaisi ehkä ottaa yleiseksi käytännöksi silloin kun data voi tulla käyttäjältä tai tietokannasta? | |||
apparate <- function(objname, source = "Op_fi1755") { | |||
obj <- get(objname) | |||
if(is.null(obj)) obj <- NA | |||
if(is.na(obj) | obj == "") { | |||
temp <- opbase.data(source) | |||
obj <- temp[temp$Parametri == objname & temp$Havainto == "Arvo", ]["Result"] | |||
} | |||
if(is.vector(obj)) obj <- data.frame(Result = obj) | |||
if(is.data.frame(obj)) obj <- new("ovariable", name = objname, data = obj) | |||
return(obj) | |||
} | |||
kaivon.tuotto <- apparate("kaivon.tuotto") | |||
vedenjohtavuus <- apparate("vedenjohtavuus") | |||
paksuus <- apparate("paksuus") | |||
etäisyys <- apparate("etäisyys") | |||
huokoisuus <- apparate("huokoisuus") | |||
mikrobipit.lähde <- apparate("mikrobipit.lähde") | |||
inaktivaatiopit <- apparate("inaktivaatiopit") | |||
inaktivaationopeus <- apparate("inaktivaationopeus") | |||
# Ovariable laskee mikrobipitoisuuden pohjavedessä, kulkeutumisajan ja inaktivaatioajan. Ulos annetaan yksi näistä kolmesta | |||
# riippuen lähtötiedon "tuloste" arvosta. | |||
mikrobit.inaktivaatioaika <- new("ovariable", | |||
name = "mikrobit.inaktivaatioaika", | |||
formula = function(dependencies, ...) { | |||
ComputeDependencies(dependencies, ...) | |||
#Lasketaan inaktivaatioaika. | |||
inaktivaatioaika <- log10(inaktivaatiopit / mikrobipit.lähde) / (0 - inaktivaationopeus / 2.3) # Miksi 2.3? | |||
#Loputuloksena annetaan se kolmesta lasketusta outputista joka tulosteessa määritellään. | |||
return(get(tuloste)) | |||
}, | |||
dependencies = data.frame(Name = c( | |||
"tilanne", | |||
"tuloste", | |||
"kaivon.tuotto", | |||
"vedenjohtavuus", | |||
"paksuus", | |||
"etäisyys", | |||
"huokoisuus", | |||
"mikrobipit.lähde", | |||
"inaktivaatiopit", | |||
"inaktivaationopeus" | |||
)) | |||
) | |||
mikrobit.pohjavesi <- EvalOutput(mikrobit.pohjavesi, N = 10) | |||
cat(tuloste, "\n") | |||
print(mikrobit.pohjavesi) | |||
</rcode> | |||
'''Mikrobien kulkeutumisajan laskeminen:''' | |||
<rcode variables=" | |||
category:Anna arvo vain jos se poikkeaa ylläolevasta oletusarvojen taulukosta| | |||
name:tilanne|type:selection|options:'suoravirtaus';Suoravirtaus;'kaivoimu';Kaivoimu|default:'suoravirtaus'| | |||
name:kaivon.tuotto|default:1000| | |||
name:vedenjohtavuus|default:| | |||
name:paksuus|default:| | |||
name:etäisyys|default:| | |||
name:huokoisuus|default:| | |||
name:mikrobipit.lähde|default:| | |||
name:inaktivaatiopit|default:| | |||
name:inaktivaationopeus|default: | |||
"> | |||
library(OpasnetUtils) | |||
library(xtable) | |||
# Ensin valikoidaan tietolähde. Käyttäjän antama input on ensisijainen, jos sitä ei ole, kaivetaan Basesta oletusarvo. | |||
# Joka tapauksessa lähtötiedosta rakennetaan ovariable, olipa alkutieto NULL, NA, "", vektori tai data.frame. | |||
# Kannattaisi ehkä ottaa yleiseksi käytännöksi silloin kun data voi tulla käyttäjältä tai tietokannasta? | |||
apparate <- function(objname, source = "Op_fi1755") { | |||
obj <- get(objname) | |||
if(is.null(obj)) obj <- NA | |||
if(is.na(obj) | obj == "") { | |||
temp <- opbase.data(source) | |||
obj <- temp[temp$Parametri == objname & temp$Havainto == "Arvo", ]["Result"] | |||
} | |||
if(is.vector(obj)) obj <- data.frame(Result = obj) | |||
if(is.data.frame(obj)) obj <- new("ovariable", name = objname, data = obj) | |||
return(obj) | |||
} | |||
kaivon.tuotto <- apparate("kaivon.tuotto") | |||
vedenjohtavuus <- apparate("vedenjohtavuus") | |||
paksuus <- apparate("paksuus") | |||
etäisyys <- apparate("etäisyys") | |||
huokoisuus <- apparate("huokoisuus") | |||
mikrobipit.lähde <- apparate("mikrobipit.lähde") | |||
inaktivaatiopit <- apparate("inaktivaatiopit") | |||
inaktivaationopeus <- apparate("inaktivaationopeus") | |||
# Ovariable laskee mikrobipitoisuuden pohjavedessä, kulkeutumisajan ja inaktivaatioajan. Ulos annetaan yksi näistä kolmesta | |||
# riippuen lähtötiedon "tuloste" arvosta. | |||
mikrobit.kulkeutumisaika <- new("ovariable", | |||
name = "mikrobit.kulkeutumisaika", | |||
formula = function(dependencies, ...) { | |||
ComputeDependencies(dependencies, ...) | |||
#Lasketaan kulkeutumisaika kahdella eri tavalla riippuen tilanteesta. | |||
kulkeutumisaika <- 0 | |||
if(tilanne == "suoravirtaus") { | |||
kulkeutumisaika <- etäisyys / (vedenjohtavuus * (paksuus / etäisyys) / huokoisuus) / 3600 / 24 | |||
} | |||
if(tilanne == "kaivoimu") { | |||
kulkeutumisaika <- 2 * pi * huokoisuus * paksuus * etäisyys ^ 2 / kaivon.tuotto # Miksi 2 * ? | |||
} | |||
#Loputuloksena annetaan se kolmesta lasketusta outputista joka tulosteessa määritellään. | |||
return(get(tuloste)) | |||
}, | |||
dependencies = data.frame(Name = c( | |||
"tilanne", | |||
"tuloste", | |||
"kaivon.tuotto", | |||
"vedenjohtavuus", | |||
"paksuus", | |||
"etäisyys", | |||
"huokoisuus", | |||
"mikrobipit.lähde", | |||
"inaktivaatiopit", | |||
"inaktivaationopeus" | |||
)) | |||
) | |||
mikrobit.pohjavesi <- EvalOutput(mikrobit.pohjavesi, N = 10) | |||
cat(tuloste, "\n") | |||
print(mikrobit.pohjavesi) | |||
</rcode> | |||
'''Mikrobien pitoisuuden laskeminen:''' | |||
<rcode variables=" | |||
category:Anna arvo vain jos se poikkeaa ylläolevasta oletusarvojen taulukosta| | |||
name:tilanne|type:selection|options:'suoravirtaus';Suoravirtaus;'kaivoimu';Kaivoimu|default:'suoravirtaus'| | |||
name:kaivon.tuotto|default:1000| | |||
name:vedenjohtavuus|default:| | |||
name:paksuus|default:| | |||
name:etäisyys|default:| | |||
name:huokoisuus|default:| | |||
name:mikrobipit.lähde|default:| | |||
name:inaktivaatiopit|default:| | |||
name:inaktivaationopeus|default: | |||
"> | |||
library(OpasnetUtils) | |||
library(xtable) | |||
# Ensin valikoidaan tietolähde. Käyttäjän antama input on ensisijainen, jos sitä ei ole, kaivetaan Basesta oletusarvo. | |||
# Joka tapauksessa lähtötiedosta rakennetaan ovariable, olipa alkutieto NULL, NA, "", vektori tai data.frame. | |||
# Kannattaisi ehkä ottaa yleiseksi käytännöksi silloin kun data voi tulla käyttäjältä tai tietokannasta? | |||
apparate <- function(objname, source = "Op_fi1755") { | |||
obj <- get(objname) | |||
if(is.null(obj)) obj <- NA | |||
if(is.na(obj) | obj == "") { | |||
temp <- opbase.data(source) | |||
obj <- temp[temp$Parametri == objname & temp$Havainto == "Arvo", ]["Result"] | |||
} | |||
if(is.vector(obj)) obj <- data.frame(Result = obj) | |||
if(is.data.frame(obj)) obj <- new("ovariable", name = objname, data = obj) | |||
return(obj) | |||
} | |||
kaivon.tuotto <- apparate("kaivon.tuotto") | |||
vedenjohtavuus <- apparate("vedenjohtavuus") | |||
paksuus <- apparate("paksuus") | |||
etäisyys <- apparate("etäisyys") | |||
huokoisuus <- apparate("huokoisuus") | |||
mikrobipit.lähde <- apparate("mikrobipit.lähde") | |||
inaktivaatiopit <- apparate("inaktivaatiopit") | |||
inaktivaationopeus <- apparate("inaktivaationopeus") | |||
# Ovariable laskee mikrobipitoisuuden pohjavedessä, kulkeutumisajan ja inaktivaatioajan. Ulos annetaan yksi näistä kolmesta | |||
# riippuen lähtötiedon "tuloste" arvosta. | |||
mikrobipitoisuus.pohjavesi <- new("ovariable", | |||
name = "mikrobipitoisuus.pohjavesi", | |||
formula = function(dependencies, ...) { | |||
ComputeDependencies(dependencies, ...) | |||
#Lasketaan mikrobien pitoisuus pohjavedessä. | |||
mikrobipit.kohde <- mikrobipit.lähde * exp(0 - inaktivaationopeus * kulkeutumisaika) | |||
#Loputuloksena annetaan se kolmesta lasketusta outputista joka tulosteessa määritellään. | |||
return(get(tuloste)) | |||
}, | |||
dependencies = data.frame(Name = c( | |||
"tilanne", | |||
"tuloste", | |||
"kaivon.tuotto", | |||
"vedenjohtavuus", | |||
"paksuus", | |||
"etäisyys", | |||
"huokoisuus", | |||
"mikrobipit.lähde", | |||
"inaktivaatiopit", | |||
"inaktivaationopeus" | |||
)) | |||
) | |||
mikrobipitoisuus.pohjavesi <- EvalOutput(mikrobit.pohjavesi, N = 100000) | |||
cat(tuloste, "\n") | |||
print(mikrobipitoisuus.pohjavesi) | |||
</rcode> | |||
===Tulokset=== | |||
{| {{prettytable}} | {| {{prettytable}} | ||
| | | | ||
|Clean | |||
|Medium | |||
|Contaminated | |||
|---- | |||
|Norovirus | |Norovirus | ||
|0 | |||
|204.167 | |||
|2166.667 | |||
|---- | |||
|Rotavirus | |Rotavirus | ||
|0 | |||
|204.167 | |||
|2166.667 | |||
|---- | |---- | ||
| | |Murine norovirus | ||
| | |0 | ||
|204.167 | |||
| | |2166.667 | ||
| | |||
|---- | |---- | ||
|} | |} | ||
==Katso myös== | |||
* [[Mikrobien määrä juomavedessä]] | |||
{{minera}} | |||
== Viitteet == | ==Viitteet== | ||
<references/> | |||
==Aiheeseen liittyviä tiedostoja== | |||
{{mfiles}} |
Nykyinen versio 30. lokakuuta 2014 kello 13.24
Moderaattori:Ei ole (katso kaikki) Kuinka ryhtyä moderaattoriksi? Sivun edistymistä ei ole arvioitu. Arvostuksen määrää ei ole arvioitu (ks. peer review). |
Lisää dataa
|
Edistymisluokitus |
---|
Opasnetissa lukuisat sivut ovat työn alla eri vaiheissa. Niiden tietosisältöön pitää siis suhtautua harkiten. Tämän sivun sisällön edistyminen on arvioitu:
|
Kysymys
Mitä mikrobien määrä pohjavedessa kuvaa?
Vastaus
Mikrobien määrä pohjavedessä kuvaa eri mikrobien mitattuja pitoisuuksia pohjavedessä.
Malli
Skenaariot
- 1a - Kulkeutuminen pohjavesivyöhykkeessä päästölähteestä raakavesilähteeseen. Ei imeytystä tai pumppausta.
- 1b - Kulkeutuminen pohjavesivyöhykkeessä päästölähteestä vedenottokaivoon. Ei imeytystä.
- 1c - Vedenottokaivon saastuminen viemäputken rikkoutumisen tai vuodon seurauksena, kun viemärivuoto tapahtuu pohjavesivyöhykkeessä.
- 1d - Mikrobien kulkeutuminen kaivoimeytyksestä vedenottokaivoon. Kyseessä on paineellinen akviferi, jossa vettä imeytetään hyvin johtavaan pohjavesivyöhykkeeseen, jonka yläpuolella on huonosti vettä johtava kerros.
- 1e - Mikrobien kulkeutuminen rantaimeytyksen kautta pohjavesivyöhykkeessä vedenottokaivoon.
- 2a - Kulkeutuminen pohjavesivyöhykkeen yläpuolella sijaitsevasta päästölähteestä raakavesilähteeseen. Ei imeytystä tai pumppausta.
- 2b - Kulkeutuminen pohjavesivyöhykkeen yläpuolella sijaitsevasta päästölähteestä vedenottokaivoon.
- 2c - Vedenottokaivon saastuminen viemäputken rikkoutumisen tai vuodon seurauksena, kun viemärivuoto tapahtuu pohjavesivyöhykkeen yläpuolisessa osittain kyllästyneessä vyöhykkeessä.
- 2d - Mikrobien kulkeutuminen sadetusimeytyksestä vedenottokaivoon.
- 2e - Mikrobien kulkeutuminen allasimeytyksestä vedenottokaivoon.
Perustelut
Data
Data perustuu kuviteltuun tilanteeseen.
Obs | Symboli | Parametri | Selite | Arvo | Yksikkö | Excel |
---|---|---|---|---|---|---|
1 | Ks | vedenjohtavuus | Kyllästyneen tilan vedenjohtavuus | 1.00E-05 | m /s | D9 |
2 | Hs | paksuus | Pohjavesivyöhykkeen paksuus | 5-15 | m | D10 |
3 | R | etäisyys | Etäisyys päästölähteestä | 100 | m | D11 |
4 | n | huokoisuus | Maaperän huokoisuus | 0.35 | D12 | |
5 | C0 | mikrobipit.lähde | Päästölähteen mikrobipitoisuus = mikrobipitoisuus akviferissä | 1.00E+08 | # /l | D13 |
6 | CA | inaktivaatiopit | Pitoisuus jolloin mikrobien ajatellaan inaktivoituneen | 10 | # /l | D14 |
7 | µ | inaktivaationopeus | Inaktivaatiokerroin | 0.01 | 1 /vrk | D15 |
8 | t | kulkeutumisaika | Kulkeutumisaika | 405.0925926 | vrk | D17: =D11/(D9*(D10/D11)/D12)/3600/24 |
9 | Ct | mikrobipit.kohde | Pitoisuus tarkastelukohdassa | 1.74E+06 | # /l | D18: =D13*EXP((-D15*D17)) |
10 | tin | inaktivaatioaika | Inaktivaatioaika | 1610 | vrk | D19: =LOG10(D14/D13)/(-D15/2.3) |
Riippuvuudet
- Patogeenien pitoisuudet vedessä
- Patogeenien inaktivaatioaika
- Maaperän huokoisuus
- Maaperän vedenjohtavuus
Yksikkö
# /l
Laskenta
Tämä laskenta kuvaa mikrobien kulkeutumista pohjavedessä tai maaperässä.
Yksinkertaisimmillaan mikrobien voidaan arvioida kulkeutuvan päästölähteestä raakavesilähteeseen samalla nopeudella kuin vesi virtaa kyllästyneessä maaperässä. Päästölähteen oletetaan sijaitsevan pohjavesivyöhykkeessä ja virtauksen tapahtuvat lateraalisuunnassa. Päästölähteen virtaamaa ei ole tunnettu, joten pohjavesivyöhykkeen ja päästölähteen ja pohjavesivyöhykkeen mikrobipitoisuudet oletetaan samoiksi. Pumppausta ei ole huomioitu. Tiedot ovat tiedostosta Riskinarviointilaskelmat_inaktivaatio271112.xls.
Kaikki laskennat yhdessä:
Mikrobien inaktivaatioajan laskeminen:
Mikrobien kulkeutumisajan laskeminen:
Mikrobien pitoisuuden laskeminen:
Tulokset
Clean | Medium | Contaminated | |
Norovirus | 0 | 204.167 | 2166.667 |
Rotavirus | 0 | 204.167 | 2166.667 |
Murine norovirus | 0 | 204.167 | 2166.667 |
Katso myös
Viitteet
Aiheeseen liittyviä tiedostoja
<mfanonymousfilelist></mfanonymousfilelist>