Grt-Opx: Aranovich, Kosyakova, 1987 <A>

Details

This sensor from TPF collection

Article
Collibration
Precision
Ranges
Renew sensors

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

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

Source

source("utilities_tpf.r");

sensors.t.grt_opx_aranovich_kosyakova_1987_a <- function(Grt, Opx, P, ...){
    Opx <- tpf.recalc_minaral("OPX",Opx);
    Grt <- tpf.recalc_minaral("GRT",Grt);

    A <- Grt$Al_pfu / (Grt$Al_pfu + Grt$Cr_pfu + Grt$Ti_pfu + Grt$Fe_p3_pfu);
    B <- Grt$Cr_pfu / (Grt$Al_pfu + Grt$Cr_pfu + Grt$Ti_pfu + Grt$Fe_p3_pfu);
    C <- Grt$Mg_pfu / (Grt$Mg_pfu + Grt$Fe_p2_pfu + Grt$Mn_pfu + Grt$Ca_pfu + Grt$Na_pfu + Grt$K_pfu);
    D <- Grt$Fe_p2_pfu / (Grt$Mg_pfu + Grt$Fe_p2_pfu + Grt$Mn_pfu + Grt$Ca_pfu + Grt$Na_pfu + Grt$K_pfu);
    F <- Grt$Ca_pfu / (Grt$Mg_pfu + Grt$Fe_p2_pfu + Grt$Mn_pfu + Grt$Ca_pfu + Grt$Na_pfu + Grt$K_pfu);
    X1 <- ((Opx$Al_c4_pfu + Opx$Al_c6_pfu - abs(Opx$Na_pfu - Opx$Cr_pfu) - 2 * Opx$Ti_pfu) / 2);
    X2 <- ((Opx$Al_c4_pfu + Opx$Al_c6_pfu - abs(Opx$Na_pfu - Opx$Cr_pfu) - 2 * Opx$Ti_pfu) / 2 + Opx$Mg_pfu + Opx$Fe_p2_pfu + Opx$Fe_p3_pfu + Opx$Ca_pfu);
    Y <- Opx$Mg_pfu / (Opx$Mg_pfu + Opx$Fe_p2_pfu + Opx$Fe_p3_pfu + Opx$Ca_pfu + (Opx$Al_c4_pfu + Opx$Al_c6_pfu - abs(Opx$Na_pfu - Opx$Cr_pfu) - 2 * Opx$Ti_pfu) / 2);
    Z <- Opx$Fe_p2_pfu / (Opx$Fe_p2_pfu + Opx$Fe_p3_pfu + Opx$Mg_pfu + Opx$Ca_pfu + (Opx$Al_c4_pfu + Opx$Al_c6_pfu - abs(Opx$Na_pfu - Opx$Cr_pfu) - 2 * Opx$Ti_pfu) / 2);
    X <- X1 / X2;
    PP <- P * 1000;
    U <- log(D * Y / C / Z);
    W <- 1.987 * U + 0.49 * B - 1.688 * (Y - Z) + 2.654 + F * (3 * C + 3.436 * D + 1.466 *      F + 0.658 * (D - C));
    S <- 1218 * B - 2372 * (Y - Z) - 5204 * X + F * (6600 * C + 7322 * D + 3226 * F + 1506.5 * (D - C));
    T <- (4766 + 0.0239 * PP + S) / W - 273;
    warning(" ACCURACY: +/-50-70 C");
    return(data.frame(Name=paste0(Grt$Name,"-", Opx$Name),P=P,T_calc=T));
}

sensors.t.grt_opx_aranovich_kosyakova_1987_a.args <- function(){
    ars <- list();
    ars$minerals <- c("Grt", "Opx");
    ars$ranges <- c("P");
    return(ars);
}

#sensors.t.grt_opx_aranovich_kosyakova_1987_a.test <- function(){
#
#}
, ,