|
|
(64 välissä olevaa versiota 6 käyttäjän tekeminä ei näytetä) |
Rivi 1: |
Rivi 1: |
| {{metodi}}
| | #REDIRECT[[Väestön kohdekohtainen ympäristöperäisen haitta-ainealtistumisen arviointi]] |
| | |
| ==Kysymys==
| |
| | |
| Kuinka arvioidaan kohdekohtaisesti väestön ympäristöperäinen altistuminen haitta-aineelle sekä altistumisesta aiheutuva terveysriski?
| |
| | |
| ==Vastaus==
| |
| | |
| ===Ennakolta määritellyt laskentaparametrit===
| |
| | |
| <t2b index="Parametri,Lyhenne,Yksikkö,Henkilö" obs="Arvo" unit="useita">
| |
| Altistumisperiodin pituus|At|vrk|Aikuinen|365
| |
| Altistumisperiodin pituus|At|vrk|Lapsi|365
| |
| Kehon paino|Bw|kg|Aikuinen|70
| |
| Kehon paino|Bw|kg|Lapsi|15
| |
| Hengitystiheys|Ir.air|m3/h|Aikuinen|0.83
| |
| Hengitystiheys|Ir.air|m3/h|Lapsi|0.32
| |
| Oleskeluaika sisätiloissa (keskiarvo altistumsperiodille)|Ef.air.indoor|h/vrk|Aikuinen|22.86
| |
| Oleskeluaika sisätiloissa (keskiarvo altistumsperiodille)|Ef.air.indoor|h/vrk|Lapsi|21.14
| |
| Juomaveden kulutus|Ir.dw|l/vrk|Aikuinen|0.7
| |
| Juomaveden kulutus|Ir.dw|l/vrk|Lapsi|0.2
| |
| Altistumistiheys, juomavesi|Ef.dw|vrk/vuosi|Aikuinen|365
| |
| Altistumistiheys, juomavesi|Ef.dw|vrk/vuosi|Lapsi|365
| |
| Niellyn maa-aineksen määrä|Ir.soil|mg/vrk/ton|Aikuinen|50
| |
| Niellyn maa-aineksen määrä|Ir.soil|mg/vrk|Lapsi|150
| |
| Maa-aineksen kiinnittyminen iholle|Soil.ad.skin|mg/cm2/vrk|Aikuinen|0.25
| |
| Maa-aineksen kiinnittyminen iholle|Soil.ad.skin|mg/cm2/vrk|Lapsi|0.25
| |
| Maa-ainekselle altistuvan ihon osuus|F.skin.soil||Aikuinen|0.05
| |
| Maa-ainekselle altistuvan ihon osuus|F.skin.soil||Lapsi|0.2
| |
| Altistumistiheys, maa-aines|Ef.soil|vrk/vuosi|Aikuinen|255
| |
| Altistumistiheys, maa-aines|Ef.soil|vrk/vuosi|Lapsi|255
| |
| Vihannesten kokonaiskulutus (keskiarvo altistumsperiodille)|Ir.lfc|kg/vrk|Aikuinen|0.110
| |
| Vihannesten kokonaiskulutus (keskiarvo altistumsperiodille)|Ir.lfc|kg/vrk|Lapsi|0.055
| |
| Juuresten kokonaiskulutus (keskiarvo altistumsperiodille)|Ir.tfc|kg/vrk|Aikuinen|0.200
| |
| Juuresten kokonaiskulutus (keskiarvo altistumsperiodille)|Ir.tfc|kg/vrk|Lapsi|0.100
| |
| Marjojen kokonaiskulutus (keskiarvo altistumsperiodille)|Ir.berries|kg/vrk|Aikuinen|0.044
| |
| Marjojen kokonaiskulutus (keskiarvo altistumsperiodille)|Ir.berries|kg/vrk|Lapsi|0.035
| |
| Paikallisten vihannesten osuus kokonaiskulutuksesta (keskiarvo altistumsperiodille)|F.lfc.loc||Aikuinen|0.1
| |
| Paikallisten vihannesten osuus kokonaiskulutuksesta (keskiarvo altistumsperiodille)|F.lfc.loc||Lapsi|0.1
| |
| Paikallisten juuresten osuus kokonaiskulutuksesta (keskiarvo altistumsperiodille)|F.tfc.loc||Aikuinen|0.1
| |
| Paikallisten juuresten osuus kokonaiskulutuksesta (keskiarvo altistumsperiodille)|F.tfc.loc||Lapsi|0.1
| |
| Paikallisten marjojen osuus kokonaiskulutuksesta (keskiarvo altistumsperiodille)|F.berries.loc||Aikuinen|0.5
| |
| Paikallisten marjojen osuus kokonaiskulutuksesta (keskiarvo altistumsperiodille)|F.berries.loc||Lapsi|0.5
| |
| Peseytymiseen kuluva aika|Ed.bw|h/vrk|Aikuinen|0.25
| |
| Peseytymiseen kuluva aika|Ed.bw|h/vrk|Lapsi|0.25
| |
| Altistumistiheys, pesuvesi|Ef.bw|vrk/vuosi|Aikuinen|365
| |
| Altistumistiheys, pesuvesi|Ef.bw|vrk/vuosi|Lapsi|365
| |
| Pesuvedelle altistuvan ihon osuus|F.skin.bw||Aikuinen|1
| |
| Pesuvedelle altistuvan ihon osuus|F.skin.bw||Lapsi|1
| |
| Uidessa niellyn pintaveden määrä|Ir.sw|l/uintikerta|Aikuinen|0.05
| |
| Uidessa niellyn pintaveden määrä|Ir.sw|l/uintikerta|Lapsi|0.05
| |
| Uintikerran kesto|Ed.sw|h/uintikerta|Aikuinen|0.25
| |
| Uintikerran kesto|Ed.sw|h/uintikerta|Lapsi|0.25
| |
| Altistumistiheys, pintavesi|Ef.sw|Uintikerta/vuosi|Aikuinen|30
| |
| Altistumistiheys, pintavesi|Ef.sw|Uintikerta/vuosi|Lapsi|30
| |
| Pintavedelle altistuvan ihon osuus|F.skin.sw||Aikuinen|1
| |
| Pintavedelle altistuvan ihon osuus|F.skin.sw||Lapsi|1
| |
| </t2b>
| |
| | |
| ===Mallifunktio===
| |
| | |
| <rcode name="answer" include="page:OpasnetBaseUtils|name:generic">
| |
| | |
| library(OpasnetBaseUtils)
| |
| library(xtable)
| |
| | |
| page <- "Op_fi2814"
| |
| | |
| C.air.outdoor <- 0.118/1000
| |
| C.air.indoor <- 0.118/1000
| |
| C.soil <- 2645
| |
| C.dw <- 0.06
| |
| C.lfc <- 2.5
| |
| C.tfc <- 0.9
| |
| C.berries <- 1.9
| |
| C.bw <- 0.06
| |
| C.sw <- 0.003
| |
| | |
| Abs.skin.soil <- 0.003
| |
| Kp <- 0.001
| |
| | |
| #Riskinarviointi <- function(Whatever){
| |
| data <- op_baseGetData("opasnet_base", page)
| |
| data <- tidy(data)
| |
| | |
| #############Riskinarvioinnin laskenta
| |
| | |
| #Aikuinen, haitta-aineen päivittäinen saanti
| |
| | |
| data.a <- data[data$Henkilö == "Aikuinen",]
| |
| Bw.a <- data.a[data.a$Lyhenne == "Bw",][,5]
| |
| At.a <- data.a[data.a$Lyhenne == "At",][,5]
| |
| | |
| ##Hengitystiet
| |
| | |
| ###Ilma
| |
| | |
| Ir.air.a <- data.a[data.a$Lyhenne == "Ir.air",][,5]
| |
| Ef.air.indoor.a <- data.a[data.a$Lyhenne == "Ef.air.indoor",][,5]
| |
| | |
| Air.inh.a <- ((C.air.outdoor * (24-Ef.air.indoor.a/24)) + (C.air.indoor * (Ef.air.indoor.a/24)) * Ir.air.a) / (Bw.a * At.a)
| |
| | |
| ##Ruuansulatuskanava
| |
| | |
| ###Juomavesi
| |
| | |
| Ir.dw.a <- data.a[data.a$Lyhenne == "Ir.dw",][,5]
| |
| Ef.dw.a <- data.a[data.a$Lyhenne == "Ef.dw",][,5]
| |
| | |
| Dw.ing.a <- (C.dw * Ir.dw.a * Ef.dw.a) / (Bw.a * At.a)
| |
| | |
| ###Maaperä
| |
| | |
| Ir.soil.a <- data.a[data.a$Lyhenne == "Ir.soil",][,5]
| |
| Ef.soil.a <- data.a[data.a$Lyhenne == "Ef.soil",][,5]
| |
| | |
| Soil.ing.a <- (C.soil * (Ir.soil.a / 1000000) * Ef.soil.a) / (Bw.a * At.a)
| |
| | |
| ###Vihannekset
| |
| | |
| Ir.lfc.a <- data.a[data.a$Lyhenne == "Ir.lfc",][,5]
| |
| F.lfc.loc.a <- data.a[data.a$Lyhenne == "F.lfc.loc",][,5]
| |
| | |
| Lfc.ing.a <- (C.lfc * Ir.lfc.a * F.lfc.loc.a) / Bw.a
| |
| | |
| ###Juurekset
| |
| | |
| Ir.tfc.a <- data.a[data.a$Lyhenne == "Ir.tfc",][,5]
| |
| F.tfc.loc.a <- data.a[data.a$Lyhenne == "F.tfc.loc",][,5]
| |
| | |
| Tfc.ing.a <- (C.tfc * Ir.tfc.a * F.tfc.loc.a) / Bw.a
| |
| | |
| ###Marjat
| |
| | |
| Ir.berries.a <- data.a[data.a$Lyhenne == "Ir.berries",][,5]
| |
| F.berries.loc.a <- data.a[data.a$Lyhenne == "F.berries.loc",][,5]
| |
| | |
| Berries.ing.a <- (C.berries * Ir.berries.a * F.berries.loc.a) / Bw.a
| |
| | |
| ###Pintavesi
| |
| | |
| Ir.sw.a <- data.a[data.a$Lyhenne == "Ir.sw",][,5]
| |
| Ef.sw.a <- data.a[data.a$Lyhenne == "Ef.sw",][,5]
| |
| | |
| Sw.ing.a <- (C.sw * Ir.sw.a * Ef.sw.a) / (Bw.a * At.a)
| |
| | |
| ##Iho
| |
| | |
| Skin.sa.a <- (4 * Bw.a + 7) / (Bw.a + 90) * 10000 #Lasketaan ihon kokonaispinta-ala
| |
| | |
| ###Maaperä
| |
| | |
| Soil.ad.skin.a <- data.a[data.a$Lyhenne == "Soil.ad.skin",][,5]
| |
| F.skin.soil.a <- data.a[data.a$Lyhenne == "F.skin.soil",][,5]
| |
| | |
| Soil.derm.a <- (C.soil * Soil.ad.skin.a * 0.000001 * Skin.sa.a * F.skin.soil.a *Abs.skin.soil * Ef.soil.a) / (Bw.a * At.a)
| |
| | |
| ###Pesuvesi
| |
| | |
| Ef.bw.a <- data.a[data.a$Lyhenne == "Ef.bw",][,5]
| |
| Ed.bw.a <- data.a[data.a$Lyhenne == "Ef.bw",][,5]
| |
| F.skin.bw.a <- data.a[data.a$Lyhenne == "F.skin.bw",][,5]
| |
| | |
| Bw.derm.a <- (C.bw * 0.001 * Kp * Ef.bw.a * Ed.bw.a * F.skin.bw.a) / (Bw.a * At.a)
| |
| | |
| ###Pintavesi
| |
| | |
| Ef.sw.a <- data.a[data.a$Lyhenne == "Ef.sw",][,5]
| |
| Ed.sw.a <- data.a[data.a$Lyhenne == "Ef.sw",][,5]
| |
| F.skin.sw.a <- data.a[data.a$Lyhenne == "F.skin.sw",][,5]
| |
| | |
| Sw.derm.a <- (C.sw * 0.001 * Kp * Ef.sw.a * Ed.sw.a * F.skin.sw.a) / (Bw.a * At.a)
| |
| | |
| Tot.intake.a <- Air.inh.a + Dw.ing.a + Soil.ing.a + Lfc.ing.a + Tfc.ing.a + Berries.ing.a + Sw.ing.a + Soil.derm.a + Bw.derm.a + Sw.derm.a
| |
| | |
| | |
| #Lapsi, haitta-aineen päivittäinen saanti
| |
| | |
| data.c <- data[data$Henkilö == "Lapsi",]
| |
| Bw.c <- data.c[data.c$Lyhenne == "Bw",][,5]
| |
| At.c <- data.c[data.c$Lyhenne == "At",][,5]
| |
| | |
| ##Hengitystiet
| |
| | |
| ###Ilma
| |
| | |
| Ir.air.c <- data.c[data.c$Lyhenne == "Ir.air",][,5]
| |
| Ef.air.indoor.c <- data.c[data.c$Lyhenne == "Ef.air.indoor",][,5]
| |
| | |
| Air.inh.c <- ((C.air.outdoor * (24-Ef.air.indoor.c/24)) + (C.air.indoor * (Ef.air.indoor.c/24)) * Ir.air.c) / (Bw.c * At.c)
| |
| | |
| ##Ruuansulatuskanava
| |
| | |
| ###Juomavesi
| |
| | |
| Ir.dw.c <- data.c[data.c$Lyhenne == "Ir.dw",][,5]
| |
| Ef.dw.c <- data.c[data.c$Lyhenne == "Ef.dw",][,5]
| |
| | |
| Dw.ing.c <- (C.dw * Ir.dw.c * Ef.dw.c) / (Bw.c * At.c)
| |
| | |
| ###Maaperä
| |
| | |
| Ir.soil.c <- data.c[data.a$Lyhenne == "Ir.soil",][,5]
| |
| Ef.soil.c <- data.c[data.c$Lyhenne == "Ef.soil",][,5]
| |
| | |
| Soil.ing.c <- (C.soil * (Ir.soil.c / 1000000) * Ef.soil.c) / (Bw.c * At.c)
| |
| | |
| ###Vihannekset
| |
| | |
| Ir.lfc.c <- data.c[data.c$Lyhenne == "Ir.lfc",][,5]
| |
| F.lfc.loc.c <- data.c[data.c$Lyhenne == "F.lfc.loc",][,5]
| |
| | |
| Lfc.ing.c <- (C.lfc * Ir.lfc.c * F.lfc.loc.c) / Bw.c
| |
| | |
| ###Juurekset
| |
| | |
| Ir.tfc.c <- data.c[data.c$Lyhenne == "Ir.tfc",][,5]
| |
| F.tfc.loc.c <- data.c[data.c$Lyhenne == "F.tfc.loc",][,5]
| |
| | |
| Tfc.ing.c <- (C.tfc * Ir.tfc.c * F.tfc.loc.c) / Bw.c
| |
| | |
| ###Marjat
| |
| | |
| Ir.berries.c <- data.c[data.c$Lyhenne == "Ir.berries",][,5]
| |
| F.berries.loc.c <- data.c[data.c$Lyhenne == "F.berries.loc",][,5]
| |
| | |
| Berries.ing.c <- (C.berries * Ir.berries.c * F.berries.loc.c) / Bw.c
| |
| | |
| ###Pintavesi
| |
| | |
| Ir.sw.c <- data.c[data.c$Lyhenne == "Ir.sw",][,5]
| |
| Ef.sw.c <- data.c[data.c$Lyhenne == "Ef.sw",][,5]
| |
| | |
| Sw.ing.c <- (C.sw * Ir.sw.c * Ef.sw.c) / (Bw.c * At.c)
| |
| | |
| ##Iho
| |
| | |
| Skin.sa.c <- (4 * Bw.c + 7) / (Bw.c + 90) * 10000 #Lasketaan ihon kokonaispinta-ala
| |
| | |
| ###Maaperä
| |
| | |
| Soil.ad.skin.c <- data.c[data.c$Lyhenne == "Soil.ad.skin",][,5]
| |
| F.skin.soil.c <- data.c[data.c$Lyhenne == "F.skin.soil",][,5]
| |
| | |
| Soil.derm.c <- (C.soil * Soil.ad.skin.c * 0.000001 * Skin.sa.c * F.skin.soil.c *Abs.skin.soil * Ef.soil.c) / (Bw.c * At.c)
| |
| | |
| ###Pesuvesi
| |
| | |
| Ef.bw.c <- data.c[data.c$Lyhenne == "Ef.bw",][,5]
| |
| Ed.bw.c <- data.c[data.c$Lyhenne == "Ef.bw",][,5]
| |
| F.skin.bw.c <- data.c[data.c$Lyhenne == "F.skin.bw",][,5]
| |
| | |
| Bw.derm.c <- (C.bw * 0.001 * Kp * Ef.bw.c * Ed.bw.c * F.skin.bw.c) / (Bw.c * At.c)
| |
| | |
| ###Pintavesi
| |
| | |
| Ef.sw.c <- data.c[data.c$Lyhenne == "Ef.sw",][,5]
| |
| Ed.sw.c <- data.c[data.c$Lyhenne == "Ef.sw",][,5]
| |
| F.skin.sw.c <- data.c[data.c$Lyhenne == "F.skin.sw",][,5]
| |
| | |
| Sw.derm.c <- (C.sw * 0.001 * Kp * Ef.sw.c * Ed.sw.c * F.skin.sw.c) / (Bw.c * At.c)
| |
| | |
| Tot.intake.c <- Air.inh.c + Dw.ing.c + Soil.ing.c + Lfc.ing.c + Tfc.ing.c + Berries.ing.c + Sw.ing.c + Soil.derm.c + Bw.derm.c + Sw.derm.c
| |
| | |
| | |
| ###########Ilmoitetaan tulokset
| |
| | |
| | |
| cat("Laskennassa käytetty haitta-aineen pitoisuus väliaineessa (mg/kg) \n")
| |
| | |
| Pitoisuus <- data.frame(Ulkoilma=C.air.outdoor, Sisäilma=C.air.indoor, Juomavesi=C.dw, Maaperä=C.soil, Vihannekset=C.lfc, Juurekset=C.tfc, Marjat=C.berries, Pesuvesi=C.bw, Pintavesi=C.sw)
| |
| | |
| print(xtable(Pitoisuus), type = 'html')
| |
| | |
| | |
| cat("Keskimääräinen päivittäinen altistuminen haitta-aineelle (µg/kg), aikuinen \n")
| |
| | |
| Kokonaissaanti.a <- data.frame(Ilma=Air.inh.a, Juomavesi=Dw.ing.a, Maaperä.rsk=Soil.ing.a, Vihannekset=Lfc.ing.a, Juurekset=Tfc.ing.a, Marjat=Berries.ing.a, Pintavesi.rsk=Sw.ing.a, Maaperä.iho=Soil.derm.a, Pesuvesi.iho=Bw.derm.a, Pintavesi.iho=Sw.derm.a, Kokonaissaanti=Tot.intake.a)*1000
| |
| | |
| print(xtable(Kokonaissaanti.a), type = 'html')
| |
| | |
| | |
| cat("Keskimääräinen päivittäinen altistuminen haitta-aineelle (µg/kg), lapsi \n")
| |
| | |
| Kokonaissaanti.c <- data.frame(Ilma=Air.inh.c, Juomavesi=Dw.ing.c, Maaperä.rsk=Soil.ing.c, Vihannekset=Lfc.ing.c, Juurekset=Tfc.ing.c, Marjat=Berries.ing.c, Pintavesi.rsk=Sw.ing.c, Maaperä.iho=Soil.derm.c, Pesuvesi.iho=Bw.derm.c, Pintavesi.iho=Sw.derm.c, Kokonaissaanti=Tot.intake.c)*1000
| |
| | |
| | |
| #Kokonaissaanti.c <- data.frame(Altistusreitti = c("Ilma", "Juomavesi", ...), Henkilö = , Arvo = c(Air.inh.c, Dw.ing.c, Soil.ing.c...)
| |
| #, Vihannekset=Lfc.ing.c, Juurekset=Tfc.ing.c, Marjat=Berries.ing.c, Pintavesi.rsk=Sw.ing.c, Maaperä.iho=Soil.derm.c, Pesuvesi.iho=Bw.derm.c, Pintavesi.iho=Sw.derm.c, Kokonaissaanti=Tot.intake.c)*1000
| |
| | |
| print(xtable(Kokonaissaanti.c), type = 'html')
| |
| | |
| | |
| cat("Osuus kokonaissaannista, aikuinen \n")
| |
| | |
| Saanti.osuus.a <- Kokonaissaanti.a / Kokonaissaanti.a$Kokonaissaanti
| |
| print(xtable(Saanti.osuus.a), type = 'html')
| |
| | |
| cat("Osuus kokonaissaannista, lapsi \n")
| |
| | |
| Saanti.osuus.c <- Kokonaissaanti.c / Kokonaissaanti.c$Kokonaissaanti
| |
| print(xtable(Saanti.osuus.c), type = 'html')
| |
| | |
| #return(Kokonaissaanti.c)
| |
| #} | |
| | |
| </rcode>
| |
| | |
| ===Vaihtoehtokoodi===
| |
| | |
| Tämä koodi käyttää funktiota haluttujen rivien slaissaamiseen.
| |
| | |
| <rcode name="answer" include="page:OpasnetBaseUtils|name:generic">
| |
| | |
| cat("Ladataan funktioita. \n")
| |
| | |
| library(OpasnetBaseUtils)
| |
| library(xtable)
| |
| | |
| ########################## tf is a function that takes one large table, finds matching rows and
| |
| #### produces a standard-format vector that can be operated with easily. Parameters:
| |
| # condition = a vector with conditions for each condition column. The length must be ncol(col.condition).
| |
| ############ External parameters (these must be defined as objects before the function is run;
| |
| ##### they are not given in the function but they are used by it):
| |
| # data = a data frame that contains the data
| |
| # col.condition = vector with names of columns that contain the indices that must match in the data
| |
| # col.common = vector with names of columns that are used as indices in calculations.
| |
| # col.result = the column that contains the actual values.
| |
| | |
| tf <- function(condition, ...) {
| |
| | |
| # Take the part of data that fits the condition. Drop all columns but col.common and col.result.
| |
| out <- data[data[col.condition] == condition, c(col.common, col.result)]
| |
| | |
| # Merge the selected data with all col.common and drop possible extra rows so that the outcome always has the same size.
| |
| out <- merge(unique(data[col.common]), out, all = TRUE)
| |
| out <- out[rownames(unique(out[col.common])), ]
| |
| return(out[, col.result])
| |
| }
| |
| | |
| ####################Funktio väestön ympäristöperäisen haitta-ainealtistumisen määrittelyyn
| |
| ########Saanti lasketaan yksikössä mg/kg/d kun ympäristön haitta-ainepitoisuudet on ilmoitettu yksiköissä mg/m3 (ilma), mg/l (vesi) sekä mg/kg (kiinteät väliaineet)
| |
| | |
| Chronic.environmental.exposure.to.toxic.substances <- function(C.air.outdoor, C.air.indoor, data, ...) {
| |
| | |
| ##Hengitystiet
| |
| | |
| Air.inh <- ((C.air.outdoor * ((24 - tf("Ef.air.indoor")) / 24)) + (C.air.indoor * (tf("Ef.air.indoor") / 24))) * tf("Ir.air") / (tf("Bw") * tf("At"))
| |
| | |
| ##Ruuansulatuskanava
| |
| | |
| ###Juomavesi
| |
| | |
| Dw.ing <- C.dw * tf("Ir.dw") * tf("Ef.dw") / (tf("Bw") * tf("At"))
| |
| | |
| ###Maaperä
| |
| | |
| Soil.ing <- C.soil * (tf("Ir.soil") / 1000000) * tf("Ef.soil") / (tf("Bw") * tf("At"))
| |
| | |
| ###Vihannekset
| |
| | |
| Lfc.ing <- C.lfc * tf("Ir.lfc") * tf("F.lfc.loc") / tf("Bw")
| |
| | |
| ###Juurekset
| |
| | |
| Tfc.ing <- C.tfc * tf("Ir.tfc") * tf("F.tfc.loc") / tf("Bw")
| |
| | |
| ###Marjat
| |
| | |
| Berries.ing <- C.berries * tf("Ir.berries") * tf("F.berries.loc") / tf("Bw")
| |
| | |
| ###Pintavesi
| |
| | |
| Sw.ing <- C.sw * tf("Ir.sw") * tf("Ef.sw") / (tf("Bw") * tf("At"))
| |
| | |
| ##Iho
| |
| | |
| Skin.sa <- (4 * tf("Bw") + 7) / (tf("Bw") + 90) * 10000 #Lasketaan ihon kokonaispinta-ala
| |
| | |
| ###Maaperä
| |
| | |
| Soil.derm <- C.soil * tf("Soil.ad.skin") * 0.000001 * Skin.sa * tf("F.skin.soil") * Abs.skin.soil * tf("Ef.soil") / (tf("Bw") * tf("At"))
| |
| | |
| ###Pesuvesi
| |
| | |
| Bw.derm <- C.bw * 0.001 * Kp * tf("Ef.bw") * tf("Ed.bw") * Skin.sa * tf("F.skin.bw") / (tf("Bw") * tf("At"))
| |
| | |
| ###Pintavesi
| |
| | |
| Sw.derm <- C.sw * 0.001 * Kp * tf("Ef.sw") * tf("Ed.sw") * Skin.sa * tf("F.skin.sw") / (tf("Bw") * tf("At"))
| |
| | |
| | |
| #Laskennan jälkeen lisätään yhteiset sarakkeet col.common ja kootaan altistuminen kaikkien altistumisreittien kautta allekkain yhteen tauluun.
| |
| | |
| common <- merge(unique(data[col.common]), data.frame(temp=1))[-(length(col.common)+1)]
| |
| | |
| out <- data.frame(common, Altistumisreitti = rep(c("Hengitystiet", "Juomavesi", "Maaperä (ruuansulatuskanava)", "Vihannekset", "Juurekset", "Marjat", "Pintavesi (ruuansulatuskanava)", "Maaperä (iho)", "Pesuvesi (iho)", "Pintavesi (iho)", "Taustasaanti"), each = nrow(common)), Result = c(Air.inh, Dw.ing, Soil.ing, Lfc.ing, Tfc.ing, Berries.ing, Sw.ing, Soil.derm, Bw.derm, Sw.derm, Background.intake.adult, Background.intake.child))
| |
| return(out)
| |
| | |
| }
| |
| | |
| | |
| #################Funktio ympäristön terveysperusteisen laadun tarkasteluun
| |
| | |
| Health.based.environmental.quality <- function(Concentration, EQC){
| |
| | |
| #Ympäristöpitoisuuksien vertailu haitta-aineen terveysperusteisiin ohjearvopitoisuuksiin
| |
| | |
| HEQ.air.outdoor <- C.air.outdoor / HEQC.air.outdoor #Ulkoilma
| |
| HEQ.air.indoor <- C.air.indoor / HEQC.air.indoor #Sisäilma
| |
| HEQ.dw <- C.dw / HEQC.dw #Juomavesi
| |
| HEQ.soil <- C.soil / HEQC.soil #Maaperä
| |
| HEQ.lfc <- C.lfc / HEQC.lfc #Vihannekset
| |
| HEQ.tfc <- C.tfc / HEQC.tfc #Juurekset
| |
| HEQ.berries <- C.berries / HEQC.berries #Marjat
| |
| HEQ.sw <- C.sw / HEQC.sw #Pintavesi
| |
| | |
| out <- data.frame(Väliaine = c("Ulkoilma", "Sisäilma", "Juomavesi", "Maaperä", "Vihannekset", "Juurekset", "Marjat", "Pintavesi"), Result = c(HEQ.air.outdoor, HEQ.air.indoor, HEQ.dw, HEQ.soil, HEQ.lfc, HEQ.tfc, HEQ.berries, HEQ.sw))
| |
| return(out)
| |
| }
| |
| | |
| | |
| | |
| #################Funktio väestön ympäristöperäisestä haitta-ainealtistumisesta aiheutuvan terveysriskin karakterisointiin
| |
| | |
| Health.risk.characterisation.of.chronic.exposure.to.toxic.substances <- function(Exposure, Toxicity){
| |
| | |
| ###Päivittäinen kokonaissaanti
| |
| | |
| ####expo = Chronic.environmental.exposure.to.toxic.substances -funktion tuottama altistumistaulu
| |
| | |
| Tot.intake.adult <- expo[expo$Henkilö == "Aikuinen",]
| |
| Tot.intake.adult <- sum(Tot.intake.adult$Result)
| |
| HQ.intake.adult <- Tot.intake.adult / TDI
| |
| MOS.intake.adult <- NOAEL.ing / Tot.intake.adult
| |
| | |
| Tot.intake.child <- expo[expo$Henkilö == "Lapsi",]
| |
| Tot.intake.child <- sum(Tot.intake.child$Result)
| |
| HQ.intake.child <- Tot.intake.child / TDI
| |
| MOS.intake.child <- NOAEL.ing / Tot.intake.child
| |
| | |
| Tot.intake.lifetime <- (Tot.intake.child * 6 + Tot.intake.adult * 64) / 70
| |
| HQ.intake.lifetime <- Tot.intake.lifetime / TDI
| |
| MOS.intake.lifetime <- NOAEL.ing / Tot.intake.lifetime
| |
| | |
| ###Päivittäinen hengitystiealtistuminen
| |
| | |
| C.inhaled.air <- (C.air.outdoor * ((24 - tf("Ef.air.indoor")) / 24)) + (C.air.indoor * (tf("Ef.air.indoor") / 24))
| |
| | |
| | |
| HQ.inhalation <- C.air.outdoor / TCA
| |
| MOS.inhalation <- NOAEC.inh / C.air.outdoor
| |
| | |
| ###Elinikäinen syöpäriski
| |
| | |
| Cancer.risk.intake <- Tot.intake.lifetime * Cancer.unit.risk.intake
| |
| Cancer.cases.intake <- Cancer.risk.intake * Population
| |
| | |
| Cancer.risk.inhalation <- C.air.outdoor * Cancer.unit.risk.inhalation
| |
| Cancer.cases.inhalation <- Cancer.risk.inhalation * Population
| |
| | |
| ###Kootaan kaikki riski-indikaattorit yhteen tauluun
| |
| | |
| Noncancer.risk <- data.frame(Altistumisreitti = rep(c("Kokonaissaanti", "Hengitystiet"), each=6), Terveysvaikutus = c("Muu kuin genotoksinen karsinogeneesi"), Riski.indikaattori = rep(rep(c("Vaaraosamäärä (HQ)", "Turvamarginaali (MOS)"), each=3), times=2), Altistumistaso = c("Aikuinen", "Lapsi", "Elinikäinen"), Result = c(HQ.intake.adult, HQ.intake.child, HQ.intake.lifetime, MOS.intake.adult, MOS.intake.child, MOS.intake.lifetime, HQ.inhalation, HQ.inhalation, HQ.inhalation, MOS.inhalation, MOS.inhalation, MOS.inhalation))
| |
| | |
| Cancer.risk <- data.frame(Altistumisreitti = rep(c("Kokonaissaanti", "Hengitystiet"), each=2), Terveysvaikutus = c("Genotoksinen karsinogeneesi"), Riski.indikaattori =c("Yksilön syöpäriski (per 100 000)", "Odotetut syöpätapaukset väestössä"), Altistumistaso = c("Elinikäinen"), Result = c(Cancer.risk.intake*100000, Cancer.cases.intake, Cancer.risk.inhalation*100000, Cancer.cases.inhalation))
| |
| | |
| out <- merge(Noncancer.risk, Cancer.risk, all=TRUE)
| |
| return(out)
| |
| | |
| }
| |
| | |
| | |
| ###########Tuloslaskenta
| |
| | |
| cat("Ladataan dataa. \n")
| |
| | |
| ####Parametrien määrittely
| |
| | |
| C.air.outdoor <- 0.118/1000
| |
| C.air.indoor <- 0.118/1000
| |
| C.soil <- 2645
| |
| C.dw <- 0.06
| |
| C.lfc <- 2.5
| |
| C.tfc <- 0.9
| |
| C.berries <- 1.9
| |
| C.bw <- 0.06
| |
| C.sw <- 0.003
| |
| Abs.skin.soil <- 0.003
| |
| Kp <- 0.001
| |
| Background.intake.adult <- 0
| |
| Background.intake.child <- 0
| |
| | |
| HEQC.air.outdoor <- 0.001
| |
| HEQC.air.indoor <- 0.001
| |
| HEQC.dw <- 2
| |
| HEQC.soil <- 10000
| |
| HEQC.lfc <- NaN
| |
| HEQC.tfc <- NaN
| |
| HEQC.berries <- NaN
| |
| HEQC.sw <- NaN
| |
| | |
| TCA <- 0.001
| |
| TDI <- 0.14
| |
| NOAEC.inh <- 0.6
| |
| NOAEL.ing <- 16.3
| |
| Cancer.unit.risk.intake <- 1.5
| |
| Cancer.unit.risk.inhalation <- 2
| |
| Population <- 10000
| |
| | |
| page <- "Op_fi2814"
| |
| data <- tidy(op_baseGetData("opasnet_base", page))
| |
| | |
| ### Määritellään ulkoiset parametrit Altistumislaskennan taulukon muokkaamista varten.
| |
| col.common <- "Henkilö"
| |
| col.result <- "Result"
| |
| col.condition = "Yksikkö" # Tämä on vain tilapäinen demonstraatio siitä että eri sarakkeita voi käyttää.
| |
| | |
| col.condition <- "Lyhenne" # Varsinaisesti meitä kiinnostavat sarakkeen Lyhenne määrittämät asiat.
| |
| | |
| | |
| ###Altistumisen arvioinnin perusteena käytetyt ympäristön haitta-ainepitoisuudet
| |
| | |
| Environmental.concentration <- data.frame(Väliaine=c("Ulkoilma","Sisäilma","Juomavesi","Maaperä","Vihannekset","Juurekset","Marjat","Pesuvesi","Pintavesi"), Pitoisuus=c(C.air.outdoor,C.air.indoor,C.dw,C.soil,C.lfc,C.tfc,C.berries,C.bw,C.sw))
| |
| | |
| cat("Altistumisen arvioinnin perusteena käytetyt ympäristön haitta-ainepitoisuudet (ilma: mg/m3, vesi: mg/l, kiinteät väliaineet: mg/kg) \n")
| |
| Environmental.concentration
| |
| #print(xtable(Environmental.concentration), type = 'html')
| |
| | |
| Abs.skin.soil <- 0.003
| |
| Kp <- 0.001
| |
| Background.intake.adult <- 0
| |
| Background.intake.child <- 0
| |
| | |
| ###Altistumislaskennan tulostaulu
| |
| | |
| expo <- Chronic.environmental.exposure.to.toxic.substances(C.air.outdoor, C.air.indoor, data)
| |
| intake.adult <- expo[expo$Henkilö == "Aikuinen",]
| |
| intake.child <- expo[expo$Henkilö == "Lapsi",]
| |
| intake.tot <- data.frame(Altistumisreitti="Kokonaissaanti", Aikuinen=sum(intake.adult$Result)*1000, Lapsi=sum(intake.child$Result)*1000)
| |
| | |
| intake.table <- data.frame(Altistumisreitti=intake.adult$Altistumisreitti, Aikuinen=(intake.adult$Result*1000), Lapsi=(intake.child$Result*1000))
| |
| intake.table <- merge(intake.table,intake.tot,all=TRUE)
| |
| intake.table$Elinikäinen <- (intake.table$Lapsi * 6 + intake.table$Aikuinen * 64) / 70
| |
| | |
| intake.fractions.adult <- (intake.table$Aikuinen / intake.tot$Aikuinen)*100
| |
| intake.fractions.child <- (intake.table$Lapsi / intake.tot$Lapsi)*100
| |
| intake.fractions.lifetime <- intake.table$Elinikäinen / ((intake.tot$Lapsi * 6 + intake.tot$Aikuinen * 64)/70)
| |
| intake.fractions.table <- data.frame(Altistumisreitti=intake.table$Altistumisreitti, Aikuinen=intake.fractions.adult, Lapsi=intake.fractions.child, Elinikäinen=intake.fractions.lifetime)
| |
| | |
| cat("Altistumisen arviointi. \n")
| |
| cat("Keskimääräinen päivittäinen haitta-aineen saanti (µg/kg/vrk). \n")
| |
| print(xtable(intake.table), type = 'html')
| |
| cat("Eri altistumisreittien osuus päivittäisestä saannista (%). \n")
| |
| print(xtable(intake.fractions.table), type = 'html')
| |
| | |
| | |
| ###Ympäristöpitoisuuksien terveysperusteisen viitearvovertailun tulostaulu
| |
| | |
| cat("Haitta-aineen pitoisuus ympäristössä suhteutettuna terveysperusteiseen viitearvoon.\n")
| |
| HEQ.table <- Health.based.environmental.quality(Concentration, EQC)
| |
| print(xtable(HEQ.table), type = 'html')
| |
| | |
| | |
| ###Terveysriskin karakterisoinnin tulostaulu
| |
| | |
| risk <- Health.risk.characterisation.of.chronic.exposure.to.toxic.substances(Exposure, Toxicity)
| |
| risk.adult <- risk[risk$Altistumistaso == "Aikuinen",]
| |
| risk.child <- risk[risk$Altistumistaso == "Lapsi",]
| |
| risk.lifetime <- risk[risk$Altistumistaso == "Elinikäinen",]
| |
| | |
| risk.table.a <- data.frame(Altistumisreitti=risk.adult$Altistumisreitti, Terveysvaikutus=risk.adult$Terveysvaikutus, Riski.indikaattori=risk.adult$Riski.indikaattori, Aikuinen=risk.adult$Result, Lapsi=risk.child$Result)
| |
| risk.table.b <- data.frame(Altistumisreitti=risk.lifetime$Altistumisreitti, Terveysvaikutus=risk.lifetime$Terveysvaikutus, Riski.indikaattori=risk.lifetime$Riski.indikaattori, Elinikäinen=risk.lifetime$Result)
| |
| | |
| risk.table <- merge(risk.table.a, risk.table.b, all=TRUE)
| |
| | |
| cat("Kroonisesta ympäristöperäisestä haitta-ainealtistumisesta aiheutuvan terveysriskin karakterisointi. \n")
| |
| print(xtable(risk.table), type = 'html')
| |
| | |
| | |
| | |
| | |
| </rcode>
| |
| | |
| ===Arvioinnin tulos===
| |
| | |
| <rcode include="page:OpasnetBaseUtils|name:generic|page:Väestön_kohdekohtainen_ympäristöperäisen_haitta-ainealtistumisen_ja_terveysriskin_arviointi|name:answer"
| |
| variables="
| |
| name:C.air.outdoor|default:0.5|description:Haitta-aineen pitoisuus ulkoilmassa (µg/m3)|
| |
| name:C.air.indoor|default:0.5|description:Haitta-aineen pitoisuus sisäilmassa (µg/m3)|
| |
| name:C.dw|default:100|description:Haitta-aineen pitoisuus juomavedessä (mg/l)|
| |
| name:C.soil|default:1000|description:Haitta-aineen pitoisuus maaperässä (mg/kg)|
| |
| name:C.lfc|default:5|description:Haitta-aineen pitoisuus vihanneksissa (mg/kg tuorepainoa)|
| |
| name:C.tfc|default:5|description:Haitta-aineen pitoisuus juureksissa (mg/kg tuorepainoa)|
| |
| name:C.berries|default:5|description:Haitta-aineen pitoisuus marjoissa (mg/kg tuorepainoa)|
| |
| name:C.bw|default:0.5|description:Haitta-aineen pitoisuus pesuvedessä (mg/l)|
| |
| name:C.sw|default:0.5|description:Haitta-aineen pitoisuus pintavedessä (mg/l)|
| |
| name:Backgound.intake|default:100|description:Haitta-aineen päivittäinen muusta kuin tutkimuksen kohteena olevasta ympäristöstä aiheutuva taustasaanti(mg/kg/d)|
| |
| name:TDI|default:100|description:Haitta-aineen turvallisen päivittäisen saannin viitearvo (mg/kg/d)|
| |
| name:TCA|default:100|description:Haitta-aineen turvallisen päivittäisen hengitystiealtistumisen viitearvo (mg/m3)|
| |
| name:NOAEL.ing|default:100|description:Haitta-aineen päivitäisen saannin NOAEL/LOAEL-arvo (mg/kg/d)|
| |
| name:NOAEC.inh|default:100|description:Haitta-aineen päivitäisen hengitystiealtistumisen NOAEC/LOAEC-arvo (mg/kg/d)|
| |
| name:Cancer.unit.risk.intake|default:100|description:Haitta-aineen päivitäisen saannin yksikkösyöpäriski (mg/kg/d)|
| |
| name:NOAEC.inh|default:100|description:Haitta-aineen päivitäisen hengitystiealtistumisen yksikkösyöpäriski (µg/m3)|
| |
| name:Population|default:10000|description:Altistuvan väestön määrä
| |
| ">
| |
| | |
| library(OpasnetBaseUtils)
| |
| library(xtable)
| |
| | |
| #juomavesi(page, C.dw, Ir.dw, Ef.dw, Bw, At)
| |
| | |
| | |
| #Intake.dw <- juomavesi(page, C.dw, Ir.dw, Ef.dw, Bw, At)
| |
| #print(xtable(Intake.dw), type = 'html')
| |
| | |
| C.dw
| |
| | |
| </rcode>
| |