Ms: Tindle, 1990

Recalculation to 22 ox with F,Cl correction. Li2O and H2O not calculated.

Details

Reference Tindle, Andrew G., Webb, Peter C. Estimation of lithium contents in trioctahedral micas using microprobe data: application to micas from granitic rocks, 1990 [ref]
Input components SiO2_wtp, TiO2_wtp, Al2O3_wtp, FeO_wtp, MnO_wtp, MgO_wtp, CaO_wtp, Na2O_wtp, K2O_wtp, SrO_wtp, BaO_wtp, Rb2O_wtp, Cs2O_wtp, ZnO_wtp, SnO2_wtp, Ga2O3_wtp, F_wtp, Cl_wtp, Cr2O3_wtp, NiO_wtp, CuO_wtp
Calculated components Al_c4_pfu, Al_c6_pfu, Li_pfu, OH_pfu

Использовать Проверить

  • заголовок
  • краткое описание
  • статья
  • ссылка
  • карточка
  • подробное описание
  • код
  • тест

Source

recalc.ms_tindle <- function (wtp_data, ...)
{

base_names <- c('SiO2_wtp','TiO2_wtp','Al2O3_wtp','FeO_wtp','MnO_wtp','MgO_wtp','CaO_wtp','Na2O_wtp','K2O_wtp',
               'SrO_wtp','BaO_wtp','Rb2O_wtp','Cs2O_wtp','ZnO_wtp','SnO2_wtp','Ga2O3_wtp',
               'F_wtp','Cl_wtp','Cr2O3_wtp','NiO_wtp','CuO_wtp');

data <- selectNames(wtp_data,base_names);

step1_coeff <- c(30.045,39.95,33.9867,71.85,70.94,40.31,56.08,61.98,94.22,
             103.62,153.36,186.936,281.811,81.38,75.345,62.48,
             19,35.45,50.6667,74.7,79.55);

step1_data <- rowApply(`/`, data, step1_coeff);

step1_sum <- rowSums(step1_data);
F_Cl_corr <- step1_sum - step1_data$F_wtp - step1_data$Cl_wtp;
Ox_Num <- 22/F_Cl_corr;

step2_data <- rowApply(`*`, step1_data, Ox_Num);

pfu_names <- c('Si_pfu','Ti_pfu','Al_pfu','Fe_pfu','Mn_pfu','Mg_pfu','Ca_pfu','Na_pfu','K_pfu',
               'Sr_pfu','Ba_pfu','Rb_pfu','Cs_pfu','Zn_pfu','Sn_pfu','Ga_pfu',
               'F_pfu','Cl_pfu','Cr_pfu','Ni_pfu','Cu_pfu');

ox_norm <- c( 1/2,1/2,2/3,1/1,1/1,1/1,1/1,2/1,2/1,
              1/1,1/1,2/1,2/1,1/1,1/2,2/3,
              1,1,2/3,1/1,1/1);

step3_data <-  rowApply(`*`, step2_data, ox_norm) ;
names(step3_data) <- pfu_names;
step3_data$Name <- wtp_data$Name;

step3_data$Al_c4_pfu <- ifelse((step2_data$Al2O3_wtp/3)*2>8-step3_data$Si_pfu,8-step3_data$Si_pfu,(step2_data$Al2O3_wtp/3)*2);
step3_data$Al_c4_pfu <- ifelse(step3_data$Si_pfu>8,0,step3_data$Al_c4_pfu);
step3_data$Al_c6_pfu <- ifelse(step3_data$Si_pfu+(step2_data$Al2O3_wtp/3)*2<8,0,((step2_data$Al2O3_wtp/3)*2)-step3_data$Al_c4_pfu);

Li_ve <- 0.31134*data$F_wtp-0.075895;
Li_ve <- ifelse(Li_ve<0,0,Li_ve);

step3_data$Li_pfu <- Li_ve;

step3_data$OH_pfu = 4-(step3_data$Cl_pfu+step3_data$F_pfu)

return(step3_data[,c('Name',pfu_names,'Al_c4_pfu','Al_c6_pfu', 'Li_pfu', 'OH_pfu')]);
}

recalc.ms_tindle.test <- function () {
  src <- data.frame(Name='test',Na2O_wtp=0.28, MgO_wtp=9.31, 
  Al2O3_wtp=19.56, SiO2_wtp=34.25, Cl_wtp = 0.07, K2O_wtp=9.43, CaO_wtp=0.02,
  TiO2_wtp=2.3,Cr2O3_wtp=0.06,FeO_wtp =20.36);
 
  result <- recalc.ms_tindle (src);

  expect_equal(object = result$Al_c4_pfu,2.761, tolerance = 0.05);
  expect_equal(object = result$Al_c6_pfu,0.766, tolerance = 0.05);
  expect_equal(object = result$Li_pfu,0.0, tolerance = 0.05);
  expect_equal(object = result$Mg_pfu,2.123, tolerance = 0.05);
  expect_equal(object = result$OH_pfu,3.982, tolerance = 0.05);
}
  • recalc/ms_tindle.txt
  • Последние изменения: 2018/11/12 15:08
  • (внешнее изменение)