Mantle + Upper Curst, Lower Curst, OIB
| Reference | Sun, S-S, McDonough, WF Chemical and isotopic systematics of oceanic basalts: implications for mantle composition and processes, 1989 [ref] |
| Data | bulk |
| Input | ppm |
require('ggplot2');
cmp <- read.csv("constants_oceanic_basalts_compositions.csv", sep=";", stringsAsFactors=F);
crust <- read.csv("constants_continental_curst_taylor1985.csv", sep=",", stringsAsFactors=F);
spdgrams.ree_pm_sun_wm_taylor <- function(ppm_data, el_order = NULL)
{
ns <- el_order;
if (is.null(el_order)) {
ns <- c('Cs', 'Rb', 'Ba', 'Th', 'U', 'Nb', 'Ta', 'La', 'Ce', 'Pb', 'Pr',
'Sr', 'Nd', 'Zr', 'Hf', 'Sm', 'Eu', 'Gd', 'Tb', 'Dy', 'Y', 'Ho',
'Er', 'Tm', 'Yb', 'Lu');
}
pmsc <- c();
for (n in ns)
pmsc <- c(pmsc, subset(cmp, element == n)$primitive_mantle);
lcrust <- c();
ucrust <- c();
oib <- c();
for (n in ns) {
if(n %in% crust$Element)
{
lcrust <- c(lcrust, subset(crust, Element == n)$lower_crust);
ucrust <- c(ucrust, subset(crust, Element == n)$upper_crust);
}
else
{
lcrust <- c(lcrust,0.0);
ucrust <- c(ucrust,0.0);
}
}
for (n in ns)
oib <- c(oib, subset(cmp, element == n)$OIB);
cr <- data.frame(rbind(lcrust,ucrust));
names(cr) <- c(paste0(ns,'_ppm'));
print(cr);
ds <- selectNames(ppm_data,c(paste0(ns,'_ppm')));
print(ds);
ds <-rbind(ds,cr);
names(ds) <- ns;
print(ds);
ret <- c();
values <- cbind(c(ppm_data$Name, "Lower Crust", "Upper Crust"), rowApply(`/`,ds,pmsc));
names(values)[1] <- 'Name';
print(values);
ret$values <- values;
ret$grades <- ns;
ret$labels <- c('REE', 'Sample/Primitive Mantle');
return(ret);
}
spdgrams.ree_pm_sun_wm_taylor.test <- function()
{
spdgrams.ree_pm_sun_wm_taylor(data.frame(Name=c('Test'),Eu_ppm=c(34.5)));
}