Ero sivun ”Mikrobien määrä pohjavedessä” versioiden välillä

Opasnet Suomista
Siirry navigaatioon Siirry hakuun
(→‎Laskenta: siistitty)
Rivi 41: Rivi 41:


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.
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="
<rcode variables="
Rivi 121: Rivi 123:


mikrobit.pohjavesi <- EvalOutput(mikrobit.pohjavesi, N = 10)
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: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.inaktivaatioaika <- new("ovariable",
name = "mikrobit.inaktivaatioaika",
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 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: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.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 * ?
}
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 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: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.
mikrobipitoisuus.pohjavesi <- new("ovariable",
name = "mikrobipitoisuus.pohjavesi",
formula =  function(dependencies, ...) {
ComputeDependencies(dependencies, ...)
#Lasketaan mikrobien pitoisuus pohjavedessä.
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 = 100000)
cat(tuloste, "\n")
cat(tuloste, "\n")
print(mikrobit.pohjavesi)
print(mikrobit.pohjavesi)

Versio 8. joulukuuta 2012 kello 19.27


Kysymys

Mitä mikrobien määrä pohjavedessa kuvaa?

Vastaus

Mikrobien määrä pohjavedessä kuvaa eri mikrobien mitattuja pitoisuuksia pohjavedessä.

Perustelut

Data

Data perustuu kuviteltuun tilanteeseen.

Ero sivun ”Mikrobien määrä pohjavedessä” versioiden välillä(-)
ObsSymboliParametriSeliteArvoYksikköExcel
1KsvedenjohtavuusKyllästyneen tilan vedenjohtavuus1.00E-05m /sD9
2HspaksuusPohjavesivyöhykkeen paksuus5-15mD10
3RetäisyysEtäisyys päästölähteestä100mD11
4nhuokoisuusMaaperän huokoisuus0.35D12
5C0mikrobipit.lähdePäästölähteen mikrobipitoisuus = mikrobipitoisuus akviferissä1.00E+08# /lD13
6CAinaktivaatiopitPitoisuus jolloin mikrobien ajatellaan inaktivoituneen10# /lD14
7µinaktivaationopeusInaktivaatiokerroin0.011 /vrkD15
8tkulkeutumisaikaKulkeutumisaika405.0925926vrkD17: =D11/(D9*(D10/D11)/D12)/3600/24
9Ctmikrobipit.kohdePitoisuus tarkastelukohdassa1.74E+06# /lD18: =D13*EXP((-D15*D17))
10tininaktivaatioaikaInaktivaatioaika1610vrkD19: =LOG10(D14/D13)/(-D15/2.3)

Riippuvuudet

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ä:

Anna arvo vain jos se poikkeaa ylläolevasta oletusarvojen taulukosta

tilanne:

tuloste:

kaivon.tuotto:

vedenjohtavuus:

paksuus:

etäisyys:

huokoisuus:

mikrobipit.lähde:

inaktivaatiopit:

inaktivaationopeus:

+ Näytä koodi

Mikrobien inaktivaatioajan laskeminen:

Anna arvo vain jos se poikkeaa ylläolevasta oletusarvojen taulukosta

tilanne:

tuloste:

kaivon.tuotto:

vedenjohtavuus:

paksuus:

etäisyys:

huokoisuus:

mikrobipit.lähde:

inaktivaatiopit:

inaktivaationopeus:

+ Näytä koodi


Mikrobien kulkeutumisajan laskeminen:

Anna arvo vain jos se poikkeaa ylläolevasta oletusarvojen taulukosta

tilanne:

tuloste:

kaivon.tuotto:

vedenjohtavuus:

paksuus:

etäisyys:

huokoisuus:

mikrobipit.lähde:

inaktivaatiopit:

inaktivaationopeus:

+ Näytä koodi


Mikrobien pitoisuuden laskeminen:

Anna arvo vain jos se poikkeaa ylläolevasta oletusarvojen taulukosta

tilanne:

tuloste:

kaivon.tuotto:

vedenjohtavuus:

paksuus:

etäisyys:

huokoisuus:

mikrobipit.lähde:

inaktivaatiopit:

inaktivaationopeus:

+ Näytä koodi

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>