R: Heavy metals in mosses in Galicia.

mosses {sm} | R Documentation

## Heavy metals in mosses in Galicia.

### Description

Mosses are used as a means of measuring levels of heavy metal concentrations in the atmosphere, since most of the nutrient uptake of the mosses is from the air. This technique for large-scale monitoring of long-range transport processes has been used in Galicia, in North-West Spain, over the last decade, as described by Fernandez et al. (2005). In 2006, in both March and September, measurements of different metals were collected at 148 points lying almost in a regular grid over the region with 15 km spacing in north-south and east-west directions. According to the ecologists' expertise, the period between the two samples, passing from a humid to a dry season, is enough time to guarantee the independence of the observed processes.

The dataset consists of a list with six components

`loc.m` | a two-column matrix containing grid locations of the March monitoring sites
`loc.s` | a two-column matrix containing grid locations of the September monitoring sites
`Co.m` | cobalt concentration (log scale) in March
`Co.s` | cobalt concentration (log scale) in September
`Hg.m` | mercury concentration (log scale) in March
`Hg.s` | mercury concentration (log scale) in September

Source: The data were kindly made available by the Ecotoxicology and Vegetal Ecophysiology research group in the University of Santiago de Compostela.

### References

Fernandez, J., Real, C., Couto, J., Aboal, J., Carballeira, A. (2005). The effect of sampling design on extensive biomonitoring surveys of air pollution. Science of the Total Environment, 337, 11-21.

### Examples

    ## Not run:
    # Comparison of Co in March and September

    with(mosses, {

       nbins <- 12
       vgm.m <- sm.variogram(loc.m, Co.m, nbins = nbins, original.scale = TRUE,
                            ylim = c(0, 1.5))
       vgm.s <- sm.variogram(loc.s, Co.s, nbins = nbins, original.scale = TRUE,
                            add = TRUE, col.points = "blue")

       trns <- function(x) (x / 0.977741)^4
       del <- 1000
       plot(vgm.m$distance.mean, trns(vgm.m$sqrtdiff.mean), type = "b",
             ylim = c(0, 1.5), xlab = "Distance", ylab = "Semi-variogram")
       points(vgm.s$distance.mean - del, trns(vgm.s$sqrtdiff.mean), type = "b",
             col = "blue", pch = 2, lty = 2)

       plot(vgm.m$distance.mean, trns(vgm.m$sqrtdiff.mean), type = "b",
             ylim = c(0, 1.5), xlab = "Distance", ylab = "Semi-variogram")
       points(vgm.s$distance.mean - del, trns(vgm.s$sqrtdiff.mean), type = "b",
             col = "blue", pch = 2, lty = 2)
       segments(vgm.m$distance.mean, trns(vgm.m$sqrtdiff.mean - 2 * vgm.m$se),
             vgm.m$distance.mean, trns(vgm.m$sqrtdiff.mean + 2 * vgm.m$se))
       segments(vgm.s$distance.mean - del, trns(vgm.s$sqrtdiff.mean - 2 * vgm.s$se),
             vgm.s$distance.mean - del, trns(vgm.s$sqrtdiff.mean + 2 * vgm.s$se),
             col = "blue", lty = 2)

       mn <- (vgm.m$sqrtdiff.mean + vgm.s$sqrtdiff.mean) / 2
       se <- sqrt(vgm.m$se^2 + vgm.s$se^2)
       plot(vgm.m$distance.mean, trns(vgm.m$sqrtdiff.mean), type = "n",
            ylim = c(0, 1.5), xlab = "Distance", ylab = "Semi-variogram")
       polygon(c(vgm.m$distance.mean, rev(vgm.m$distance.mean)),
            c(trns(mn - se), rev(trns(mn + se))),
            border = NA, col = "lightblue")
       points(vgm.m$distance.mean, trns(vgm.m$sqrtdiff.mean))
       points(vgm.s$distance.mean, trns(vgm.s$sqrtdiff.mean), col = "blue", pch = 2)

       vgm1 <- sm.variogram(loc.m, Co.m, nbins = nbins, varmat = TRUE,
                            display = "none")
       vgm2 <- sm.variogram(loc.s, Co.s, nbins = nbins, varmat = TRUE,
                            display = "none")

       nbin  <- length(vgm1$distance.mean)
       vdiff <- vgm1$sqrtdiff.mean - vgm2$sqrtdiff.mean
       tstat <- c(vdiff %*% solve(vgm1$V + vgm2$V) %*% vdiff)
       pval  <- 1 - pchisq(tstat, nbin)
       print(pval)
    })

    # Assessing isotropy for Hg in March

    with(mosses, {
       sm.variogram(loc.m, Hg.m, model = "isotropic")
    })

    # Assessing stationarity for Hg in September

    with(mosses, {
       vgm.sty <- sm.variogram(loc.s, Hg.s, model = "stationary")
       i <- 1
       image(vgm.sty$eval.points[[1]], vgm.sty$eval.points[[2]], vgm.sty$estimate[ , , i],
             col = topo.colors(20))
       contour(vgm.sty$eval.points[[1]], vgm.sty$eval.points[[2]], vgm.sty$sdiff[ , , i],
             col = "red", add = TRUE)
    })

    ## End(Not run)

[Package sm version 2.2-5.4 Index]