Opasnet Suomi
Terveysvaikutukset
HUOM! Tällä hetkellä malli laskee ainoastaan murskausprosessin pölypäästöt ja niiden leviämisen 10-15 km:n säteellä olevaan väestöön. Mallia päivitetään jatkuvasti.
+ Näytä koodi- Piilota koodi
library(OpasnetBaseUtils)
library(ggplot2)
earth.radius <- 6372.8 # quadratic mean or root mean square approximation of the average great-circle
# circumference derives a radius of about 6372.8 km (Wikipedia)
central.angle <- function(s.la, s.lo, f.la, f.lo) 2 * asin((sin((s.la - f.la) / 2)^2 + cos(s.la) * cos(f.la) * sin((s.lo - f.lo) / 2)^2)^0.5)
dtheta.y <- 1/earth.radius*180/pi # central angle increase per 1 kilometer north from a given point assuming no displacement on x axis
dtheta.x <- 2*asin(sin(1/(2*earth.radius))/cos(LA/180*pi))*180/pi # central angle increase per 1 kilometer east from a given point
# - assuming no displacement on y axis
# Populaatio data
pop.locs <- op_baseGetLocs("heande_base", "Heande3182", apply.utf8 = FALSE)
pop.slice.la <- pop.locs[pop.locs$ind == "Latitude", "loc_id"][pop.locs[pop.locs$ind == "Latitude", "loc"] < LA + 10.5 * dtheta.y &
pop.locs[pop.locs$ind == "Latitude", "loc"] > LA - 10.5 * dtheta.y]
pop.slice.lo.inverse <- pop.locs[pop.locs$ind == "Longitude", "loc_id"][pop.locs[pop.locs$ind == "Longitude", "loc"] > LO + 10.5 * dtheta.x |
pop.locs[pop.locs$ind == "Longitude", "loc"] < LO - 10.5 * dtheta.x]
pop <- op_baseGetData("heande_base", "Heande3182", include = pop.slice.la, exclude = pop.slice.lo.inverse)[, -c(1,2,6)]
pop$Longitude <- as.numeric(as.character(pop$Longitude))
pop$Latitude <- as.numeric(as.character(pop$Latitude))
pop$LObin <- cut(pop$Longitude, breaks = LO + ((-11:10) + 0.5 ) * dtheta.x)
pop$LAbin <- cut(pop$Latitude, breaks = LA + ((-11:10) + 0.5 ) * dtheta.y)
# Pitoisuus data
pitoisuus <- function(n, paasto, L.matrix) { #, X_coord, Y_coord) {
ID.list <- tapply(1:nrow(L.matrix), L.matrix[,c("Kaupunki", "Vuosi", "Tyyppi")], list)
ID.list.samples <- sample(ID.list, n, replace = TRUE)
ID.vec <- unlist(ID.list.samples)
#c.matrix <- pitoisuus(L.matrix, Paasto) #, X_coord, Y_coord)
l.matrix <- L.matrix[ID.vec,]
l.matrix$obs <- rep(1:n, each = length(ID.vec)/n)
c.matrix <- merge(l.matrix, paasto)
c.matrix <- model.frame(I(Paasto * k) ~., data = c.matrix)
colnames(c.matrix)[1] <- "Pitoisuus"
return(c.matrix)
}
PILTTI.matrix <- op_baseGetData("heande_base", "Heande3181")[,-c(1,2,9)] # unit: ugm^-3/Mga^-1
PILTTI.matrix$dy <- as.numeric(as.character(PILTTI.matrix$dy))
PILTTI.matrix$dx <- as.numeric(as.character(PILTTI.matrix$dx))
colnames(PILTTI.matrix)[colnames(PILTTI.matrix)=="Result"] <- "k"
Paasto <- data.frame(Paasto = murskaus.maara * paasto.kerroin / 1e6) # unit: Mga^-1
C.matrix <- pitoisuus(N, Paasto, PILTTI.matrix) # unit: ugm^-3
C.matrix$LObin <- cut(C.matrix$dx / 1000 * dtheta.x + LO, breaks = LO + ((-11:10) + 0.5 ) * dtheta.x)
C.matrix$LAbin <- cut(C.matrix$dy / 1000 * dtheta.y + LA, breaks = LA + ((-11:10) + 0.5 ) * dtheta.y)
# Yhdistys
pop.paasto <- merge(C.matrix, pop)
pop.paasto.korjaus <- data.frame(Pitoisuus = pop.paasto$Pitoisuus, Vaesto = pop.paasto$Result / N)
plot1 <- ggplot(pop.paasto.korjaus, aes(x = Pitoisuus, weight = Vaesto)) + geom_histogram(binwidth =
(max(pop.paasto.korjaus$Pitoisuus[pop.paasto.korjaus$Vaesto!=0]) -
min(pop.paasto.korjaus$Pitoisuus[pop.paasto.korjaus$Vaesto!=0]))/100) +
xlim(min(pop.paasto.korjaus$Pitoisuus[pop.paasto.korjaus$Vaesto!=0]) - 0.000001,
max(pop.paasto.korjaus$Pitoisuus[pop.paasto.korjaus$Vaesto!=0]) + 0.000001)
plot1 + geom_vline(xintercept = 40, colour = "red") # Ohjearvo
exposure.pop <- tapply(pop.paasto$Pitoisuus * pop.paasto$Result, pop.paasto[,c("obs")], sum)
bg.mort <- 45182/5203826 # same values as used in PILTTI
erf <- 0.0097 # J. T. Tuomisto, A. Wilson, et al. Uncertainty in mortality response to airborne fine particulate matter... 2008
# unit: 1/ugm^-3
mort.out <- erf * bg.mort * exposure.pop
qplot(mort.out, geom="density")
cat("Odotusarvo kuolemille vuodessa:", mean(mort.out), "\n")
cat("Ohjearvon 40 ugm^-3 mukaisen altistusrajan ylitti", sum(pop.paasto.korjaus$Vaesto[pop.paasto.korjaus$Pitoisuus>40]), "asukasta.\n")
- Oletusarvot Siilinjärven Yaralle, yhdelle tonnille murskattua malmia vuodessa olettaen että murskaustapa on kuivaseulonta ilman avulla (suurin päästökerroin). Katso: Metallimalmin murskausprosessin pölypäästöt.
- Havainnollisia lähtöarvojen muutoksia:
- Luikonlahden koordinaatit (pienempi väestö kaivoksen ympärillä): latitude=62.936836, longitude=28.70749
- Hienomurskaus kostealle malmille: päästökerroin 9.1 (oletus: kuiva malmi 72.6)
Katso myös
Avainsanat
Kaivosteollisuus, mineraali
Viitteet
Aiheeseen liittyviä tiedostoja
| id | Tiedoston nimi | Viimeksi muokattu | Koko (kB) |
|---|