Feldspar Functions
- Thermobar.feldspar.H_Masotta2019(T, *, An_Plag, Ab_Plag, Si_Liq_cat_frac, Al_Liq_cat_frac, Na_Liq_cat_frac, Ca_Liq_cat_frac, K_Liq_cat_frac)[source]
Plagioclase-Hygrometer of Masotta et al. (2019), for trachytic systems. [Masotta and Mollo, 2019]
- Thermobar.feldspar.H_Put2005_eqH(T, *, An_Plag, Si_Liq_cat_frac, Al_Liq_cat_frac, Na_Liq_cat_frac, Ca_Liq_cat_frac, Pred_Ab_EqF, Pred_An_EqE, K_Liq_cat_frac, Mg_Liq_cat_frac)[source]
Plagioclase-Hygrometer of Putirka (2005) eq. H Tends to overpredict water in global datasets [Putirka, 2005]
- Thermobar.feldspar.H_Put2008_eq25b(T, *, P, An_Plag, Si_Liq_cat_frac, Al_Liq_cat_frac, Ca_Liq_cat_frac, K_Liq_cat_frac, Mg_Liq_cat_frac)[source]
Plagioclase-Hygrometer of Putirka (2008) eq. 25b [Putirka, 2008]
Global calibration improving estimate of Putirka (2005) eq H SEE=+-1.1 wt%
- Thermobar.feldspar.H_Waters2015(T, *, liq_comps=None, plag_comps=None, P, XAn=None, XAb=None)[source]
Plagioclase-Hygrometer of Waters and Lange (2015), update from Lange et al. (2009). [Waters and Lange, 2015]
SEE=+-0.35 wt%
- Thermobar.feldspar.P_Put2008_eq25(T, *, Ab_Plag, Al_Liq_cat_frac, Ca_Liq_cat_frac, Na_Liq_cat_frac, Si_Liq_cat_frac, An_Plag, K_Liq_cat_frac)[source]
Plagioclase-Liquid barometer of Putirka (2008) eq. 26. [Putirka, 2008]
SEE=+-2.2 kbar But in spreadsheet, Putirka warns plag is not a good barometer
- Thermobar.feldspar.T_Put2008_eq23(P, *, An_Plag, Si_Liq_cat_frac, Al_Liq_cat_frac, Ca_Liq_cat_frac, Ab_Plag, H2O_Liq)[source]
Plagioclase-Liquid thermometer of Putirka (2008) eq. 23 [Putirka, 2008] SEE=+-43C
- Thermobar.feldspar.T_Put2008_eq24a(P, *, An_Plag, Si_Liq_cat_frac, Al_Liq_cat_frac, Ca_Liq_cat_frac, K_Liq_cat_frac, Ab_Plag, H2O_Liq)[source]
Plagioclase-Liquid thermometer of Putirka (2008) eq. 24a [Putirka, 2008]
Global regression, improves equation 23 SEE by 6C SEE=+-36C
- Thermobar.feldspar.T_Put2008_eq24b(P, *, Ab_Kspar, Al_Liq_cat_frac, Na_Liq_cat_frac, K_Liq_cat_frac, Si_Liq_cat_frac, Ca_Liq_cat_frac)[source]
Alkali Felspar-Liquid thermometer of Putirka (2008) eq. 24b. [Putirka, 2008]
SEE=+-23 C (Calibration data)
SEE=+-25 C (All data)
- Thermobar.feldspar.T_Put2008_eq27a(P, *, K_Barth, Si_Kspar_cat_frac, Ca_Kspar_cat_frac, An_Kspar, An_Plag, Ab_Plag)[source]
Two feldspar thermometer: Equation 27a of Putirka (2008). [Putirka, 2008]
SEE±23°C for calibration
SEE±44°C for test data
- Thermobar.feldspar.T_Put2008_eq27b(P, *, K_Barth, Si_Kspar_cat_frac, Ca_Kspar_cat_frac, An_Kspar, An_Plag, Ab_Plag)[source]
Two feldspar thermometer: Equation 27b of Putirka (2008). Putirka recomends using this thermometer over 27a, with preference being 27b>global>27a Global calibration (unlike 27a, which is calibrated on a smaller dataset) [Putirka, 2008]
SEE±30°C for calibration
- Thermobar.feldspar.T_Put_Global_2Fspar(P, *, K_Barth, Si_Kspar_cat_frac, Ca_Kspar_cat_frac, Ab_Kspar, Or_Kspar, Na_Plag_cat_frac, An_Kspar, An_Plag, Ab_Plag)[source]
Two feldspar thermometer from supporting spreadsheet of Putirka (2008) Global calibration [Putirka, 2008]
- Thermobar.feldspar.calculate_fspar_liq_hygr(*, liq_comps, plag_comps=None, kspar_comps=None, equationH=None, P=None, T=None, XAn=None, XAb=None, XOr=0)[source]
calculates H2O content (wt%) from composition of equilibrium plagioclase and liquid.
- Parameters:
liq_comps (pandas.DataFrame) – Liq compositions with column headings SiO2_Liq, MgO_Liq etc.
plag_comps (pandas.DataFrame) – Plag compositions with column headings SiO2_Plag, MgO_Plag etc. Or users can enter XAn, XAb, without the other oxides.
XAn+XAb (float, int, pandas.Series) – If plag_comps is None, enter XAn= and XAb= for plagioclases instead. XOr is set to zero by default, but can be overwritten for equilibrium tests
equationH (str) –
choose from:
H_Waters2015 (T-dependent, P-dependent)H_Masotta2019 (T-dependent, P-independent, for Trachytes)H_Put2005_eqH (T-dependent, P-independent)H_Put2008_eq25b (T-dependent, P-dependent)
- P: float, int, pandas.Series
Pressure in kbar to perform calculations at
- T: float, int, pandas.Series
Temperature in Kelvin to perform calculations at
- Returns:
Calculated H2O, eq tests, and input plag and liq parameters
- Return type:
pandas.DataFrame
- Thermobar.feldspar.calculate_fspar_liq_press(*, plag_comps=None, kspar_comps=None, liq_comps=None, equationP=None, T=None, H2O_Liq=None, eq_tests=False)[source]
Liquid-Feldspar barometer (at the moment, only options for Plag). Note, Putirka warns that plagioclase is not a reliable barometer! For a user-selected equation returns a pressure in kbar.
- Parameters:
liq_comps (pandas.DataFrame) – liquid compositions with column headings SiO2_Liq, MgO_Liq etc.
plag_comps (pandas.DataFrame) – Plag compositions with column headings SiO2_Plag, MgO_Plag etc.
EquationP (str) –
Choose from
P_Put2008_eq25 (Plag-Liq, P-dependent, H2O-independent)T (float, int, pandas.Series, str ("Solve")) – Temperature in Kelvin to perform calculations at. Only needed for T-sensitive barometers. If enter T=”Solve”, returns a partial function, else, enter an integer, float, or panda series.
H2O_Liq (optional.) – If None, uses H2O_Liq column from input. If int, float, pandas.Series, uses this instead of H2O_Liq Column
- Returns:
If eq_tests is False (pandas.Series) – Pressure in kbar
If eq_tests is True (pandas.DataFrame) – Pressure in kbar + eq Tests + input compositions
- Thermobar.feldspar.calculate_fspar_liq_press_temp(*, liq_comps=None, plag_comps=None, kspar_comps=None, meltmatch=None, equationP=None, equationT=None, iterations=30, T_K_guess=1300, H2O_Liq=None, eq_tests=False)[source]
Solves simultaneous equations for temperature and pressure using feldspar-liquid thermometers and barometers. Currently no Kspar barometers exist.
- Parameters:
plag_comps (pandas.DataFrame) – Plag compositions with column headings SiO2_Plag, MgO_Plag etc.
liq_comps (pandas.DataFrame (not required for P_Put2008_eq29c)) – Liquid compositions with column headings SiO2_Liq, MgO_Liq etc.
EquationP (str) –
choose from;
P_Put2008_eq25 (Plag-Liq, P-dependent, H2O-independent)EquationT (str) –
choose from:
T_Put2008_eq24b (Kspar-Liq, P-dependent, H2O-independent)T_Put2008_eq23 (Plag-Liq, P-dependent, H2O-dependent)T_Put2008_eq24a (Plag-Liq, P-dependent, H2O-dependent)iterations (int (default=30)) – Number of iterations used to converge to solution.
T_K_guess (int or float (Default = 1300K)) – Initial guess of temperature.
eq_tests (bool)
- Returns:
pandas.DataFrame
- Return type:
Pressure in kbar, Temperature in K + fspar+liq comps (if eq_tests=True)
- Thermobar.feldspar.calculate_fspar_liq_temp(*, plag_comps=None, kspar_comps=None, meltmatch_plag=None, meltmatch_kspar=None, liq_comps=None, equationT=None, P=None, H2O_Liq=None, eq_tests=False, warnAn=False)[source]
Liquid-Feldspar thermometery (same function for Plag and Kspar), returns temperature in Kelvin.
- Parameters:
liq_comps (pandas.DataFrame) – liquid compositions with column headings SiO2_Liq, MgO_Liq etc.
(pandas.DataFrame) (kspar_comps or plag_comps) –
Specify kspar_comps=… for Kspar-Liquid thermometry (with column headings SiO2_Kspar, MgO_Kspar) etc
Specify plag_comps=… for Plag-Liquid thermometry (with column headings SiO2_Plag, MgO_Plag) etc
EquationT (str) –
choose from:
T_Put2008_eq24b (Kspar-Liq, P-dependent, H2O-independentT_Put2008_eq23 (Plag-Liq, P-dependent, H2O-dependent)T_Put2008_eq24a (Plag-Liq, P-dependent, H2O-dependent)P (float, int, pandas.Series, str ("Solve")) – Pressure in kbar to perform calculations at Only needed for P-sensitive thermometers. If enter P=”Solve”, returns a partial function Else, enter an integer, float, or panda series
H2O_Liq (optional.) – If None, uses H2O_Liq column from input. If int, float, pandas.Series, uses this instead of H2O_Liq Column
- Returns:
Temperature in Kelvin (pandas.Series) – If eq_tests is False
Temperature in Kelvin + eq Tests + input compositions (pandas.DataFrame) – If eq_tests is True
- Thermobar.feldspar.calculate_fspar_liq_temp_hygr(*, liq_comps, plag_comps, equationT, equationH, iterations=20, P=None, kspar_comps=None, eq_tests=True, H2O_estimate=1)[source]
Iterates temperature and water content for Plag-liquid pairs for a user-specified number of iterations. Returns calculated T and H2O, as well as change in T and H with the # of iterations.
- Parameters:
liq_comps (pandas.DataFrame) – liquids compositions with column headings SiO2_Liq, MgO_Liq etc.
plag_comps (pandas.DataFrame (optional)) – Plag compositions with column headings SiO2_Plag, MgO_Plag etc.
equationH (str) –
choose from:
H_Waters2015 (T-dependent, P-dependent)H_Put2005_eqH (T-dependent, P-independent)H_Put2008_eq25b (T-dependent, P-dependent)equationT (str) –
choose from:
T_Put2008_eq23 (Plag-Liq, P-dependent, H2O-dependent)T_Put2008_eq24a (Plag-Liq, P-dependent, H2O-dependent)H2O_estimate (float, int) – Initial estimate of H2O content. Can help convergence.
P (float, int, pandas.Series) – Pressure (kbar) to perform calculations at
iterations (int) – number of times to iterate temperature and H2O. Default 20.
- Returns:
Dictionary with keys ‘T_H_calc’ and ‘T_H_Evolution’ (Dictionary)
’T_H_calc’ (pandas.DataFrame) – Calculated H2O, calculated T, plag-liq equilibrium parameters, and change in T and H between second last and last iteration
’T_H_Evolution’ (pandas.DataFrame) – Pandas dataframes, where rows are number of iterations, and column headings show the T and H2O calculated for each sample.
- Thermobar.feldspar.calculate_fspar_liq_temp_hygr_matching(liq_comps, plag_comps, equationT, equationH, iterations=20, P=None, kspar_comps=None, Ab_An_P2008=True)[source]
Evaluates all possible Plag-liq pairs, iterates T and H2O returns T (K) and equilibrium test values. Users must investigate correct values for eq tests.
- Parameters:
plag_comps (pandas.DataFrame) – Panda DataFrame of plag compositions with column headings SiO2_Plag, CaO_Plag etc.
liq_comps (pandas.DataFrame) – Panda DataFrame of liq compositions with column headings SiO2_Liq etc.
EquationT (str) –
Choose from:
T_Put2008_eq24b (Kspar-Liq, P-dependent, H2O-independentT_Put2008_eq23 (Plag-Liq, P-dependent, H2O-dependent)T_Put2008_eq24a (Plag-Liq, P-dependent, H2O-dependent)
- P: float, int, pandas.Series
Pressure in kbar to perform calculations at.
- iterations: int
number of times to iterate temperature and H2O. Default 20.
- Returns:
‘Av_HTs’: df of averaged T and H for each Plag, and all the liquids it matches (+eq tests etc) ‘All_HTs: df of all T and H for all possible Plag-Liq combinations (+eq tests etc) ‘T_H_Evolution’: dataframe of T-H evolution against number of iterations.
- Return type:
- Thermobar.feldspar.calculate_fspar_liq_temp_matching(*, liq_comps, plag_comps=None, kspar_comps=None, H2O_Liq=None, equationT=None, P=None, Ab_An_P2008=False)[source]
Evaluates all possible Plag-liq or kspar-liq pairs, returns T (K) and equilibrium test values. Users must investigate correct values for eq tests.
- Parameters:
plag_comps (pandas.DataFrame) – Panda DataFrame of plag compositions with column headings SiO2_Plag, CaO_Plag etc.
kspar_comps (pandas.DataFrame) – Panda DataFrame of kspar compositions with column headings SiO2_Kspar, CaO_Kspar etc.
liq_comps (pandas.DataFrame) – Panda DataFrame of liq compositions with column headings SiO2_Liq etc.
EquationT (str) –
Choose from:
T_Put2008_eq24b (Kspar-Liq, P-dependent, H2O-independentT_Put2008_eq23 (Plag-Liq, P-dependent, H2O-dependent)T_Put2008_eq24a (Plag-Liq, P-dependent, H2O-dependent)
- P: float, int, pandas.Series
Pressure in kbar to perform calculations at.
- Returns:
‘Av_PTs’: df of averaged T for each Plag, and all the liquids it matches (+eq tests etc) ‘All_PTs: df of all T for all possible Plag-Liq combinations (+eq tests etc)
- Return type:
- Thermobar.feldspar.calculate_plag_kspar_temp(*, plag_comps=None, kspar_comps=None, Two_Fspar_Match=None, equationT=None, P=None, eq_tests=False)[source]
Two feldspar thermometer (Kspar-Plag), returns temperature in Kelvin
- Parameters:
plag_comps (pandas.DataFrame) – Plag compositions with column headings SiO2_Plag, MgO_Plag etc.
kspar_comps (pandas.DataFrame) – Kspar compositions with column headings SiO2_Kspar, MgO_Kspar etc.
EquationT (str) –
choose from:
T_Put2008_eq27a (P-dependent, H2O-independent)T_Put2008_eq27b (P-dependent, H2O-independent)T_Put_Global_2Fspar (P-dependent, H2O-independent)P (float, int, pandas.Series, str) – Pressure in kbar to perform calculations at. Only needed for P-sensitive thermometers. If P=”Solve”, returns a partial function, else, enter an integer, float, or panda series.
- Returns:
If eq_tests is False – pandas.Series: Temperature in Kelvin
If eq_tests is True – pandas.DataFrame: Temperature in Kelvin+eq Tests + input compositions
- Thermobar.feldspar.calculate_plag_kspar_temp_matching(*, kspar_comps, plag_comps, equationT=None, P=None)[source]
Evaluates all possible Plag-Kspar pairs, returns T (K) and equilibrium tests
- Parameters:
plag_comps (pandas.DataFrame) – Panda DataFrame of plag compositions with column headings SiO2_Plag, CaO_Plag etc.
kspar_comps (pandas.DataFrame) – Panda DataFrame of kspar compositions with column headings SiO2_Kspar etc.
EquationT (str) –
Choose from:
T_Put2008_eq27a (P-dependent, H2O-independent)T_Put2008_eq27b (P-dependent, H2O-independent)T_Put_Global_2Fspar (P-dependent, H2O-independent)P (float, int, pandas.Series) – Pressure in kbar to perform calculations at.
- Returns:
T in K for all posible plag-kspar matches, along with equilibrium tests, components and input mineral compositions
- Return type:
pandas.DataFrame