Question
What are the current total mercury concentrations in different fish species in Finland?
Answer
{{#opasnet_base_link:Op_en4004}}
The results contain e.g. the KERTY database with thousands of mercury measurements from different parts of Finland, both inland lakes and the Baltic Sea.
Rationale
Data
The table below is data from EU-kalat 1 project (2003), and the values are about Baltic herring. (Other fish species were measured but data are not here).[1]
Mercury in Baltic herring(mg /kg f.w.)|
1 | 1 | 1 | 0.0005 |
2 | 2 | 1 | 0.0005 |
3 | 3 | 1 | 0.0005 |
4 | 2 | 1 | 0.005 |
5 | 2 | 4 | 0.005 |
6 | 5 | 2 | 0.006 |
7 | 2 | 1 | 0.007 |
8 | 1 | 1 | 0.008 |
9 | 2 | 1 | 0.008 |
10 | 3 | 2 | 0.008 |
11 | 3 | 2 | 0.008 |
12 | 2 | 2 | 0.009 |
13 | 3 | 2 | 0.009 |
14 | 3 | 3 | 0.01 |
15 | 2 | 2 | 0.011 |
16 | 3 | 2 | 0.011 |
17 | 1 | 1 | 0.012 |
18 | 2 | 1 | 0.014 |
19 | 4 | 2 | 0.015 |
20 | 4 | 3 | 0.015 |
21 | 1 | 1 | 0.018 |
22 | 3 | 2 | 0.018 |
23 | 2 | 1 | 0.02 |
24 | 2 | 2 | 0.021 |
25 | 2 | 2 | 0.022 |
26 | 4 | 2 | 0.022 |
27 | 6 | 4 | 0.022 |
28 | 8 | 4 | 0.024 |
29 | 6 | 3 | 0.025 |
30 | 5 | 2 | 0.026 |
31 | 4 | 3 | 0.027 |
32 | 5 | 4 | 0.027 |
33 | 8 | 4 | 0.027 |
34 | 6 | 4 | 0.028 |
35 | 5 | 3 | 0.03 |
36 | 2 | 1 | 0.031 |
37 | 7 | 5 | 0.031 |
38 | 3 | 2 | 0.033 |
39 | 10 | 4 | 0.033 |
40 | 6 | 3 | 0.038 |
41 | 10 | 5 | 0.038 |
42 | 12 | 5 | 0.039 |
43 | 6 | 4 | 0.04 |
44 | 5 | 5 | 0.043 |
45 | 7 | 5 | 0.043 |
46 | 7 | 4 | 0.048 |
47 | 6 | 3 | 0.049 |
48 | 6 | 3 | 0.049 |
49 | 3 | 2 | 0.051 |
50 | 9 | 5 | 0.054 |
51 | 9 | 4 | 0.066 |
52 | 7 | 5 | 0.069 |
53 | 3 | 5 | 0.072 |
54 | 11 | 4 | 0.083 |
55 | 11 | 5 | 0.107 |
Calculations
+ Show code- Hide code # This is code Op_en4004/conc_mehg on page [[Mercury concentrations in fish in Finland]]
library(OpasnetUtils)
conc_mehg <- Ovariable(
"conc_mehg",
dependencies = data.frame(
Name = c("Hg"),
Ident = "Op_en4004/Hg" # [[Mercury concentrations in fish in Finland]] Contains Kerty measurements
),
formula = function(...) {
test <- paste(Hg$Parameter, Hg$Naytelaji, Hg$Helcom.alue)
meanSalm <- Hg$Result[test == "MeanLog lohi "]
meanHerrN <- Hg$Result[test == "MeanLog silakka C-Selkämeri"]
meanHerrS <- Hg$Result[test == "MeanLog silakka H-Pohjoinen Itämeri"]
sdSalm <- Hg$Result[test == "SDLog lohi "]
sdHerrN <- Hg$Result[test == "SDLog silakka C-Selkämeri"]
sdHerrS <- Hg$Result[test == "SDLog silakka H-Pohjoinen Itämeri"]
N <- openv$N
out <- data.frame(
Exposure_agent = "MeHg", # Assuming all mercury in fish is methylmercury
Fish = rep(c("Herring", "Salmon"), each = N),
Iter = rep(1:N, 2),
Country = rep(c("FI", "SWE", "DK", "EST"), each = 2*N),
Result = 10^c(
rnorm(N, meanHerrN, sdHerrN),
rnorm(N, meanSalm, sdSalm),
rnorm(N, meanHerrS, sdHerrS),
rnorm(N, meanSalm, sdSalm),
rnorm(N, meanHerrS, sdHerrS),
rnorm(N, meanSalm, sdSalm),
rnorm(N, meanHerrS, sdHerrS),
rnorm(N, meanSalm, sdSalm)
)
)
return(Ovariable(
output=out,
marginal=colnames(out) %in% c("Exposure_agent","Fish","Country")
))
}
)
objects.store(conc_mehg)
cat("Ovariable conc_mehg stored.\n")
| |
- 6.10.2017 data.frame Hg initiated [2]
+ Show code- Hide code # This is code Op_en4004/Hg on page [[Mercury concentrations in fish in Finland]]
library(OpasnetUtils)
Hg <- opbase.data(
"Op_en4004",
subset = "Kerty database"
# include = list(Naytelaji = c("lohi", "silakka")) # Probably ä in the title causes trouble
)[c(8,9,12,15,16,17,20,21,22)]
Hg$Conc <- as.numeric(as.character(Hg$Tulos))
Hg <- Hg[!is.na(Hg$Conc),]
Hg$Year <- as.numeric(as.character(substr(Hg$Alkupäivä, 7,8)))
Hg$Century <- ifelse(Hg$Year < 18, 2000, 1900)
Hg$Year <- Hg$Century + Hg$Year
colnames(Hg)[4] <- "Naytelaji" # remove ä
Hg[Hg$Naytelaji == "lohi" , "Helcom-alue"] <- ""
oprint(aggregate(Hg["Conc"], by = Hg[c("Helcom-alue", "Naytelaji")], FUN=length))
oprint(aggregate(
Hg["Conc"],
by = Hg[c("Naytelaji", "Century")],
FUN=length
))
Hg <- rbind(
data.frame(
Parameter = "Mean",
aggregate(Hg$Conc, by = Hg[c("Helcom-alue", "Naytelaji")], FUN=mean)
),
data.frame(
Parameter = "SD",
aggregate(Hg$Conc, by = Hg[c("Helcom-alue", "Naytelaji")], FUN=sd)
),
data.frame(
Parameter = "MeanLog",
aggregate(log10(Hg$Conc), by = Hg[c("Helcom-alue", "Naytelaji")], FUN=mean)
),
data.frame(
Parameter = "SDLog",
aggregate(log10(Hg$Conc), by = Hg[c("Helcom-alue", "Naytelaji")], FUN=sd)
),
data.frame(
Parameter = "N",
aggregate(Hg$Conc, by = Hg[c("Helcom-alue", "Naytelaji")], FUN=length)
)
)
colnames(Hg)[colnames(Hg)=="x"] <- "Result"
Hg$Compound <- "Mercury (µg/g)"
oprint(Hg)
objects.store(Hg)
cat("Data.frame Hg stored.\n")
| |
See also
References