This page was generated from docs/examples/inversion/PyIRoGlass_Inversion.ipynb. Interactive online version: Binder badge.

Python Notebook Download

Reflectance FTIR Spectra

  • This Jupyter notebook applies the Newtonian inversion to the molar absorptivity data.

  • The Jupyter notebook and data can be accessed here: https://github.com/SarahShi/PyIRoGlass/blob/main/docs/examples/inversion/.

  • You need to have the PyIRoGlass PyPi package on your machine once. If you have not done this, please uncomment (remove the #) symbol and run the cell below.

[1]:
#!pip install PyIRoGlass

Load Python Packages

[2]:
# Import packages

import os
import sys
import glob
import numpy as np
import pandas as pd

import PyIRoGlass as pig

import matplotlib
from matplotlib import pyplot as plt
from matplotlib import rc, cm

%matplotlib inline
%config InlineBackend.figure_format = 'retina'

pig.__version__
[2]:
'0.6.1'

Load Data

Load all compiled molar absorptivity data and assign uncertainties to the peaks.

[3]:
df_5200 = pd.read_excel('./EpsilonRegression.xlsx', sheet_name='NIRRegress')
tau_5200 = df_5200['Tau']
sigma_tau_5200 = tau_5200 * 0.025
epsilon_5200 = df_5200['Epsilon_5200']
sigma_epsilon_5200 = epsilon_5200 * 0.10

df_4500 = pd.read_excel('./EpsilonRegression.xlsx', sheet_name='NIRRegress')
tau_4500 = df_4500['Tau']
sigma_tau_4500 = tau_4500 * 0.025
epsilon_4500 = df_4500['Epsilon_4500']
sigma_epsilon_4500 = epsilon_4500 * 0.20

df_3550 = pd.read_excel('./EpsilonRegression.xlsx', sheet_name='3550Regress')
tau_3550 = df_3550['Tau']
sigma_tau_3550 = tau_3550 * 0.025
epsilon_3550 = df_3550['Epsilon_3550']
sigma_epsilon_3550 = epsilon_3550 * 0.10

df_1635 = pd.read_excel('./EpsilonRegression.xlsx', sheet_name='1635Regress')
tau_1635 = df_1635['Tau']
sigma_tau_1635 = tau_1635 * 0.025
epsilon_1635 = df_1635['Epsilon_1635']
sigma_epsilon_1635 = epsilon_1635 * 0.05

df_carbonate = pd.read_excel('./EpsilonRegression.xlsx', sheet_name='CarbonateRegress')
eta = df_carbonate['Eta']
sigma_eta = eta * 0.025
epsilon_carbonate = df_carbonate['Epsilon_Carbonate']
sigma_epsilon_carbonate = epsilon_carbonate * 0.10

ε5200 Dataset

[4]:
df_5200
[4]:
Compilation Paper Glass Composition Baseline Analytical Method Tau Eta Epsilon_5200 Uncertainty_5200 PeakPosition_5200 ... TiO2.2 Al2O3.2 FeO.2 Fe2O3.2 MnO.2 MgO.2 CaO.2 Na2O.2 K2O.2 P2O5.2
0 Dixon Acocella et al., 1984 NA2O*3SiO2 ? Experimental H2O Loading 0.600000 NaN 0.634 NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1 Allabar Allabar and Nowak, 2020 Peralkaline rhyolite TT FPA 0.790665 NaN 1.200 0.020 NaN ... 0.000000 0.254806 0.000000 NaN 0.000000 0.000000 0.000000 0.273786 0.115711 0.000000
2 Mandeville Behrens et al., 1996 Orthoclase, K100 TT Karl Fischer Titration 0.805598 NaN 1.650 0.050 NaN ... 0.000000 0.361514 0.000000 NaN 0.000000 0.000000 0.000000 0.000000 0.348832 0.000000
3 Mandeville Behrens, 1995 Albite, Ab (I) TT Manometry 0.799264 NaN 1.490 0.030 NaN ... 0.000000 0.384464 0.000139 NaN 0.000000 0.000000 0.000178 0.382201 0.000425 0.000000
4 Behrens Behrens et al., 2009 Ultrapotassic melt (K-rich) TT Karl Fischer Titration 0.622000 0.231579 1.020 0.030 NaN ... 0.010732 0.293645 0.100035 NaN 0.000916 0.136381 0.192939 0.058091 0.146550 0.001761
5 Carroll Carroll and Blank, 1997 Phonolite TT Manometry 0.719825 0.958639 1.100 0.120 NaN ... 0.008073 0.369164 0.053584 NaN 0.002819 0.008187 0.013998 0.324434 0.116561 0.001057
6 von Aulock Di Matteo et al., 2004 Trachyte French curve, following Newman et al., 1986 Karl Fischer Titration 0.755149 0.739392 1.360 0.180 NaN ... 0.005549 0.369884 0.047042 NaN 0.002584 0.026296 0.043272 0.136354 0.179759 0.002677
7 Mandeville; Dixon Dixon et al., 1995 MORB 5 Gaussians Manometry 0.627338 0.297233 0.620 0.070 5200.0 ... 0.023029 0.268733 0.172582 NaN 0.003101 0.165468 0.205064 0.086731 0.003185 0.002677
8 Fiege Fiege et al., 2015 Mg-poor basalt TT Karl Fischer Titration 0.689313 0.362818 0.848 NaN NaN ... 0.035044 0.316595 0.152818 NaN 0.002114 0.023319 0.188124 0.107120 0.021868 0.005777
9 Dixon; von Aulock Ihinger et al., 1994 Rhyolite NaN NaN 0.860000 NaN 1.860 0.050 5225.0 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
10 Mandeville Jakobsson, 1997 Icelandite Bruker B&K baselines Elemental Analysis 0.708000 0.507389 1.250 0.050 NaN ... 0.025282 0.284425 0.169381 NaN 0.003806 0.073183 0.124108 0.127832 0.027176 0.014371
11 von Aulock King et al., 2002 Andesite GG Manometry, SIMS 0.743324 0.530808 1.080 0.110 5209.0 ... 0.011765 0.349157 0.089492 NaN 0.000000 0.075664 0.122147 0.138188 0.022930 0.000000
12 Lesne Lesne et al., 2011 Basalt (Vesuvius) TT Karl Fischer Titration 0.607389 0.203706 0.570 0.040 5211.0 ... 0.012015 0.284818 0.104523 NaN 0.001973 0.169189 0.227710 0.058252 0.117834 0.009158
13 Lesne Lesne et al., 2011 Basalt (Stromboli) TT Karl Fischer Titration 0.630120 0.247373 0.620 0.100 5216.0 ... 0.010013 0.309925 0.106333 NaN 0.002819 0.198462 0.226462 0.074434 0.040340 0.005636
14 Lesne Lesne et al., 2011 Basalt (Etna) TT Karl Fischer Titration 0.631214 0.363894 0.560 0.080 5220.0 ... 0.020776 0.337191 0.141267 NaN 0.002396 0.141900 0.193474 0.110680 0.042038 0.007186
15 Mandeville Mandeville, 2002 Fe-Bearing Andesite GG Manometry 0.746000 0.508918 1.070 0.070 NaN ... 0.012140 0.329345 0.066667 NaN 0.001973 0.077400 0.121790 0.126214 0.026539 0.004227
16 Mandeville Mandeville, 2002 Fe-Free Andesite GG Manometry 0.795000 0.425118 1.460 0.070 NaN ... 0.013392 0.327579 0.000000 NaN 0.000000 0.072935 0.133916 0.099029 0.029512 0.000000
17 Mandeville Newman et al., 1986 Rhyolite TT (3550), French curve (NIR) Manometry 0.859000 NaN 1.610 0.050 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
18 Mandeville Nowak and Behrens, 1995 Haplogranite TT Karl Fischer Titration 0.849699 NaN 1.790 0.020 NaN ... 0.000000 0.265398 0.000000 NaN 0.000000 0.000000 0.000000 0.150485 0.120594 0.000000
19 Mandeville Ohlhorst et al., 2001 Basalt TT / GG Average Karl Fischer Titration 0.629132 0.249605 0.660 0.080 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
20 Mandeville Ohlhorst et al., 2001 Andesite TT / GG Average Karl Fischer Titration 0.721535 0.441704 0.895 0.085 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
21 Mandeville Ohlhorst et al., 2001 Dacite TT / GG Average Karl Fischer Titration 0.782667 0.577821 1.170 0.095 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
22 von Aulock Okumura and Nakashima, 2005 Rhyolite TT Karl Fischer Titration 0.859624 0.930701 1.750 0.080 NaN ... 0.001252 0.247156 0.008351 NaN 0.001410 0.002481 0.008916 0.119741 0.108280 0.000000
23 Shishkina Shishkina et al., 2010 Basalt GG Karl Fischer Titration 0.663783 0.276557 0.650 0.080 NaN ... 0.011389 0.359357 0.130271 NaN 0.002396 0.173902 0.202300 0.077346 0.004777 0.002113
24 Mandeville; Dixon Silver et al., 1990 Jadeite Glass French curve, following Newman et al., 1986 Manometry 0.755625 0.976931 1.130 NaN 5207.0 ... 0.000000 0.496273 0.006959 NaN 0.000000 0.000000 0.010699 0.453074 0.000849 0.000000
25 Mandeville; Dixon Silver et al., 1990 CAS-E2 French curve, following Newman et al., 1986 Manometry 0.773615 NaN 1.070 0.040 5204.0 ... 0.000000 0.280502 0.000000 NaN 0.000000 0.000000 0.392297 0.000000 0.000000 0.000000
26 Dixon Silver et al., 1990 Orthoclase, KAS French curve, following Newman et al., 1986 Manometry 0.798937 NaN 1.870 0.070 5222.0 ... 0.000000 0.349157 0.000000 NaN 0.000000 0.000000 0.000000 0.000000 0.360934 0.000000
27 Silver Silver et al., 1990 Rhyolite French curve, following Newman et al., 1986 Manometry 0.864175 0.928913 1.610 0.050 5225.0 ... 0.000000 0.245194 0.013918 NaN 0.000000 0.000000 0.008916 0.116505 0.101911 0.000000
28 Mandeville; Dixon Silver et al., 1990; Silver and Stolper, 1989 Albite French curve, following Newman et al., 1986 Manometry 0.799495 NaN 1.670 0.060 5218.0 ... 0.000000 0.381326 0.000000 NaN 0.000000 0.000000 0.000000 0.382524 0.000000 0.000000
29 Stabile Stabile et al., 2020 Pantellerite TT / GG Average Karl Fischer Titration 0.853000 NaN 1.965 0.020 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
30 McIntosh Vetere et al., 2006 Fe-Free Andesite TT Karl Fischer Titration 0.755531 0.394021 1.040 0.040 NaN ... 0.000250 0.423107 0.000835 NaN 0.000846 0.136443 0.169223 0.110032 0.038004 0.000000
31 Vetere Vetere et al., 2011 Shoshonite TT Karl Fischer Titration 0.658648 0.438376 1.030 0.030 NaN ... 0.008886 0.303648 0.116771 NaN 0.001410 0.121062 0.151748 0.118447 0.100212 0.000000
32 Withers and Behrens Withers and Behrens, 1999 Albite, 300 K TT / GG Average Karl Fischer Titration 0.796892 1.000000 1.470 0.040 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
33 Withers and Behrens Withers and Behrens, 1999 Rhyolite TT / GG Average Karl Fischer Titration 0.856102 0.927196 1.690 0.055 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
34 Mandeville Yamashita et al., 1997 Tholeiite TT Manometry 0.665081 0.264242 0.840 0.060 NaN ... 0.015394 0.275598 0.175226 NaN 0.003101 0.130489 0.185628 0.066667 0.009130 0.002254
35 Mandeville Yamashita et al., 1997 High Al Basalt TT Manometry 0.671291 0.342483 0.840 0.060 NaN ... 0.017397 0.335033 0.141962 NaN 0.002537 0.131977 0.178317 0.092880 0.016773 0.004650
36 Mandeville Yamashita et al., 1997 Dacite TT Manometry 0.782269 0.557640 1.600 0.300 NaN ... 0.010763 0.299333 0.084621 NaN 0.002114 0.038948 0.102175 0.128803 0.016561 0.002395

37 rows × 75 columns

ε4500 Dataset

[5]:
df_4500
[5]:
Compilation Paper Glass Composition Baseline Analytical Method Tau Eta Epsilon_5200 Uncertainty_5200 PeakPosition_5200 ... TiO2.2 Al2O3.2 FeO.2 Fe2O3.2 MnO.2 MgO.2 CaO.2 Na2O.2 K2O.2 P2O5.2
0 Dixon Acocella et al., 1984 NA2O*3SiO2 ? Experimental H2O Loading 0.600000 NaN 0.634 NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1 Allabar Allabar and Nowak, 2020 Peralkaline rhyolite TT FPA 0.790665 NaN 1.200 0.020 NaN ... 0.000000 0.254806 0.000000 NaN 0.000000 0.000000 0.000000 0.273786 0.115711 0.000000
2 Mandeville Behrens et al., 1996 Orthoclase, K100 TT Karl Fischer Titration 0.805598 NaN 1.650 0.050 NaN ... 0.000000 0.361514 0.000000 NaN 0.000000 0.000000 0.000000 0.000000 0.348832 0.000000
3 Mandeville Behrens, 1995 Albite, Ab (I) TT Manometry 0.799264 NaN 1.490 0.030 NaN ... 0.000000 0.384464 0.000139 NaN 0.000000 0.000000 0.000178 0.382201 0.000425 0.000000
4 Behrens Behrens et al., 2009 Ultrapotassic melt (K-rich) TT Karl Fischer Titration 0.622000 0.231579 1.020 0.030 NaN ... 0.010732 0.293645 0.100035 NaN 0.000916 0.136381 0.192939 0.058091 0.146550 0.001761
5 Carroll Carroll and Blank, 1997 Phonolite TT Manometry 0.719825 0.958639 1.100 0.120 NaN ... 0.008073 0.369164 0.053584 NaN 0.002819 0.008187 0.013998 0.324434 0.116561 0.001057
6 von Aulock Di Matteo et al., 2004 Trachyte French curve, following Newman et al., 1986 Karl Fischer Titration 0.755149 0.739392 1.360 0.180 NaN ... 0.005549 0.369884 0.047042 NaN 0.002584 0.026296 0.043272 0.136354 0.179759 0.002677
7 Mandeville; Dixon Dixon et al., 1995 MORB 5 Gaussians Manometry 0.627338 0.297233 0.620 0.070 5200.0 ... 0.023029 0.268733 0.172582 NaN 0.003101 0.165468 0.205064 0.086731 0.003185 0.002677
8 Fiege Fiege et al., 2015 Mg-poor basalt TT Karl Fischer Titration 0.689313 0.362818 0.848 NaN NaN ... 0.035044 0.316595 0.152818 NaN 0.002114 0.023319 0.188124 0.107120 0.021868 0.005777
9 Dixon; von Aulock Ihinger et al., 1994 Rhyolite NaN NaN 0.860000 NaN 1.860 0.050 5225.0 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
10 Mandeville Jakobsson, 1997 Icelandite Bruker B&K baselines Elemental Analysis 0.708000 0.507389 1.250 0.050 NaN ... 0.025282 0.284425 0.169381 NaN 0.003806 0.073183 0.124108 0.127832 0.027176 0.014371
11 von Aulock King et al., 2002 Andesite GG Manometry, SIMS 0.743324 0.530808 1.080 0.110 5209.0 ... 0.011765 0.349157 0.089492 NaN 0.000000 0.075664 0.122147 0.138188 0.022930 0.000000
12 Lesne Lesne et al., 2011 Basalt (Vesuvius) TT Karl Fischer Titration 0.607389 0.203706 0.570 0.040 5211.0 ... 0.012015 0.284818 0.104523 NaN 0.001973 0.169189 0.227710 0.058252 0.117834 0.009158
13 Lesne Lesne et al., 2011 Basalt (Stromboli) TT Karl Fischer Titration 0.630120 0.247373 0.620 0.100 5216.0 ... 0.010013 0.309925 0.106333 NaN 0.002819 0.198462 0.226462 0.074434 0.040340 0.005636
14 Lesne Lesne et al., 2011 Basalt (Etna) TT Karl Fischer Titration 0.631214 0.363894 0.560 0.080 5220.0 ... 0.020776 0.337191 0.141267 NaN 0.002396 0.141900 0.193474 0.110680 0.042038 0.007186
15 Mandeville Mandeville, 2002 Fe-Bearing Andesite GG Manometry 0.746000 0.508918 1.070 0.070 NaN ... 0.012140 0.329345 0.066667 NaN 0.001973 0.077400 0.121790 0.126214 0.026539 0.004227
16 Mandeville Mandeville, 2002 Fe-Free Andesite GG Manometry 0.795000 0.425118 1.460 0.070 NaN ... 0.013392 0.327579 0.000000 NaN 0.000000 0.072935 0.133916 0.099029 0.029512 0.000000
17 Mandeville Newman et al., 1986 Rhyolite TT (3550), French curve (NIR) Manometry 0.859000 NaN 1.610 0.050 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
18 Mandeville Nowak and Behrens, 1995 Haplogranite TT Karl Fischer Titration 0.849699 NaN 1.790 0.020 NaN ... 0.000000 0.265398 0.000000 NaN 0.000000 0.000000 0.000000 0.150485 0.120594 0.000000
19 Mandeville Ohlhorst et al., 2001 Basalt TT / GG Average Karl Fischer Titration 0.629132 0.249605 0.660 0.080 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
20 Mandeville Ohlhorst et al., 2001 Andesite TT / GG Average Karl Fischer Titration 0.721535 0.441704 0.895 0.085 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
21 Mandeville Ohlhorst et al., 2001 Dacite TT / GG Average Karl Fischer Titration 0.782667 0.577821 1.170 0.095 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
22 von Aulock Okumura and Nakashima, 2005 Rhyolite TT Karl Fischer Titration 0.859624 0.930701 1.750 0.080 NaN ... 0.001252 0.247156 0.008351 NaN 0.001410 0.002481 0.008916 0.119741 0.108280 0.000000
23 Shishkina Shishkina et al., 2010 Basalt GG Karl Fischer Titration 0.663783 0.276557 0.650 0.080 NaN ... 0.011389 0.359357 0.130271 NaN 0.002396 0.173902 0.202300 0.077346 0.004777 0.002113
24 Mandeville; Dixon Silver et al., 1990 Jadeite Glass French curve, following Newman et al., 1986 Manometry 0.755625 0.976931 1.130 NaN 5207.0 ... 0.000000 0.496273 0.006959 NaN 0.000000 0.000000 0.010699 0.453074 0.000849 0.000000
25 Mandeville; Dixon Silver et al., 1990 CAS-E2 French curve, following Newman et al., 1986 Manometry 0.773615 NaN 1.070 0.040 5204.0 ... 0.000000 0.280502 0.000000 NaN 0.000000 0.000000 0.392297 0.000000 0.000000 0.000000
26 Dixon Silver et al., 1990 Orthoclase, KAS French curve, following Newman et al., 1986 Manometry 0.798937 NaN 1.870 0.070 5222.0 ... 0.000000 0.349157 0.000000 NaN 0.000000 0.000000 0.000000 0.000000 0.360934 0.000000
27 Silver Silver et al., 1990 Rhyolite French curve, following Newman et al., 1986 Manometry 0.864175 0.928913 1.610 0.050 5225.0 ... 0.000000 0.245194 0.013918 NaN 0.000000 0.000000 0.008916 0.116505 0.101911 0.000000
28 Mandeville; Dixon Silver et al., 1990; Silver and Stolper, 1989 Albite French curve, following Newman et al., 1986 Manometry 0.799495 NaN 1.670 0.060 5218.0 ... 0.000000 0.381326 0.000000 NaN 0.000000 0.000000 0.000000 0.382524 0.000000 0.000000
29 Stabile Stabile et al., 2020 Pantellerite TT / GG Average Karl Fischer Titration 0.853000 NaN 1.965 0.020 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
30 McIntosh Vetere et al., 2006 Fe-Free Andesite TT Karl Fischer Titration 0.755531 0.394021 1.040 0.040 NaN ... 0.000250 0.423107 0.000835 NaN 0.000846 0.136443 0.169223 0.110032 0.038004 0.000000
31 Vetere Vetere et al., 2011 Shoshonite TT Karl Fischer Titration 0.658648 0.438376 1.030 0.030 NaN ... 0.008886 0.303648 0.116771 NaN 0.001410 0.121062 0.151748 0.118447 0.100212 0.000000
32 Withers and Behrens Withers and Behrens, 1999 Albite, 300 K TT / GG Average Karl Fischer Titration 0.796892 1.000000 1.470 0.040 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
33 Withers and Behrens Withers and Behrens, 1999 Rhyolite TT / GG Average Karl Fischer Titration 0.856102 0.927196 1.690 0.055 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
34 Mandeville Yamashita et al., 1997 Tholeiite TT Manometry 0.665081 0.264242 0.840 0.060 NaN ... 0.015394 0.275598 0.175226 NaN 0.003101 0.130489 0.185628 0.066667 0.009130 0.002254
35 Mandeville Yamashita et al., 1997 High Al Basalt TT Manometry 0.671291 0.342483 0.840 0.060 NaN ... 0.017397 0.335033 0.141962 NaN 0.002537 0.131977 0.178317 0.092880 0.016773 0.004650
36 Mandeville Yamashita et al., 1997 Dacite TT Manometry 0.782269 0.557640 1.600 0.300 NaN ... 0.010763 0.299333 0.084621 NaN 0.002114 0.038948 0.102175 0.128803 0.016561 0.002395

37 rows × 75 columns

ε3550 Dataset

[6]:
df_3550
[6]:
Compilation Paper Glass Composition Baseline Analytical Method Tau Eta Epsilon_5200 Uncertainty_5200 PeakPosition_5200 ... TiO2.2 Al2O3.2 FeO.2 Fe2O3.2 MnO.2 MgO.2 CaO.2 Na2O.2 K2O.2 P2O5.2
0 McIntosh Aubaud et al., 2009 Rhyolite TT ERDA 0.860500 0.913552 NaN NaN NaN ... 0.001001 0.252648 0.017258 NaN 0.000987 0.000496 0.010877 0.114239 0.102866 0.000000
1 Behrens Behrens et al., 2009 Ultrapotassic melt (K-rich) TT Karl Fischer Titration 0.622000 0.231579 1.02 0.03 NaN ... 0.010732 0.293645 0.100035 NaN 0.000916 0.136381 0.192939 0.058091 0.146550 0.001761
2 Shishkina Di Matteo et al., 2006 Shoshonite French curve (3550) Karl Fischer Titration 0.663170 0.253546 NaN NaN NaN ... 0.010513 0.301883 0.100348 NaN 0.002255 0.141404 0.194365 0.066019 0.069639 0.006622
3 Shishkina Di Matteo et al., 2006 Latite French curve (3550) Karl Fischer Titration 0.711733 0.574658 NaN NaN NaN ... 0.010889 0.346607 0.096033 NaN 0.002114 0.060283 0.103959 0.140453 0.081104 0.008172
4 Mandeville; Dixon Dixon et al., 1995 MORB 5 Gaussians Manometry 0.627338 0.297233 0.62 0.07 5200.0 ... 0.023029 0.268733 0.172582 NaN 0.003101 0.165468 0.205064 0.086731 0.003185 0.002677
5 von Aulock Dobson et al., 1989 Rhyolite TT Manometry 0.866629 0.934383 NaN NaN NaN ... 0.000876 0.255002 0.005289 NaN 0.000564 0.001240 0.009272 0.132039 0.088960 0.000000
6 von Aulock Hauri et al., 2002 Rhyolite TT SIMS 0.859000 NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
7 Dixon; von Aulock Ihinger et al., 1994 Rhyolite NaN SIMS, Raman 0.860000 NaN 1.86 0.05 5225.0 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
8 Jendrzejewski Jendrzejewski et al., 1997 MORB Devolatilized baseline Manometry 0.645456 0.244638 NaN NaN NaN ... 0.015770 0.281130 0.134196 NaN 0.002453 0.193004 0.211840 0.068608 0.000849 0.001578
9 von Aulock King et al., 2002 Andesite GG Manometry, SIMS 0.743324 0.530808 1.08 0.11 5209.0 ... 0.011765 0.349157 0.089492 NaN 0.000000 0.075664 0.122147 0.138188 0.022930 0.000000
10 von Aulock Leschik et al., 2004 Rhyolite TT Karl Fischer Titration 0.855636 0.901814 NaN NaN NaN ... 0.000688 0.255394 0.003688 NaN 0.000634 0.000992 0.014889 0.134628 0.102548 0.000000
11 Mandeville Mandeville, 2002 Fe-Bearing Andesite GG Manometry 0.746000 0.508918 1.07 0.07 NaN ... 0.012140 0.329345 0.066667 NaN 0.001973 0.077400 0.121790 0.126214 0.026539 0.004227
12 Mandeville Mandeville, 2002 Fe-Free Andesite GG Manometry 0.795000 0.425118 1.46 0.07 NaN ... 0.013392 0.327579 0.000000 NaN 0.000000 0.072935 0.133916 0.099029 0.029512 0.000000
13 Mercier Mercier et al., 2010 Basanite TT Karl Fischer Titration 0.587914 0.176441 NaN NaN NaN ... 0.014810 0.324899 0.121294 NaN 0.001950 0.105474 0.175701 0.091694 0.058599 0.011366
14 Mercier Mercier et al., 2010 Basalt TT Karl Fischer Titration 0.665692 0.354105 NaN NaN NaN ... 0.014810 0.324899 0.121294 NaN 0.001950 0.105474 0.175701 0.091694 0.058599 0.011366
15 von Aulock Okumura et al., 2003 Rhyolite TT Karl Fischer Titration 0.863585 0.920556 NaN NaN NaN ... 0.000751 0.251863 0.012248 NaN 0.000564 0.000992 0.009986 0.117152 0.101062 0.000000
16 Mandeville Pandya et al., 1992 Basalt GG High temperature mass spectrometry 0.643000 NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
17 Shi Shi et al., 2024 ND70 Synthetic MORB ALS, PyIRoglass MCMC SIMS/ERDA Mean for H2O; NRA for CO2 0.648227 0.235588 NaN NaN NaN ... 0.009015 0.283405 0.114442 NaN 0.001974 0.207570 0.230325 0.071186 0.003482 0.001071
18 Shishkina Shishkina et al., 2010 Basalt GG Karl Fischer Titration 0.663783 0.276557 0.65 0.08 NaN ... 0.011389 0.359357 0.130271 NaN 0.002396 0.173902 0.202300 0.077346 0.004777 0.002113
19 Shishkina Shishkina et al., 2014 Nephelinite, E2624 TT Karl Fischer Titration 0.507838 0.337884 NaN NaN NaN ... 0.028285 0.231463 0.153097 NaN 0.002678 0.330191 0.235913 0.120388 0.020382 0.015921
20 Shishkina Shishkina et al., 2014 Basanite, A2549 TT Karl Fischer Titration 0.532067 0.361039 NaN NaN NaN ... 0.033041 0.248137 0.160612 NaN 0.002678 0.299429 0.210770 0.119094 0.021444 0.009863
21 Shishkina Shishkina et al., 2014 Alkali basalt, B2518 TT Karl Fischer Titration 0.585110 0.374715 NaN NaN NaN ... 0.033792 0.287368 0.163396 NaN 0.002255 0.216075 0.189551 0.113592 0.022505 0.007890
22 Shishkina Shishkina et al., 2014 Alkali basalt, B2507 TT Karl Fischer Titration 0.585248 0.391245 NaN NaN NaN ... 0.029412 0.277952 0.150592 NaN 0.002396 0.257008 0.177247 0.113916 0.017622 0.006622
23 Mandeville; Dixon Silver et al., 1990; Silver and Stolper, 1989 Albite French curve, following Newman et al., 1986 Manometry 0.799495 NaN 1.67 0.06 5218.0 ... 0.000000 0.381326 0.000000 NaN 0.000000 0.000000 0.000000 0.382524 0.000000 0.000000
24 Stolper Stolper, 1982 Basalt SLNT TT Manometry 0.636444 0.229564 NaN NaN NaN ... 0.017522 0.294233 0.108559 NaN 0.000000 0.203423 0.238944 0.071197 0.008493 0.000000
25 Stolper Stolper, 1982 Basalt Bouvet CHN TT Manometry 0.639197 0.230892 NaN NaN NaN ... 0.016270 0.292271 0.107168 NaN 0.000000 0.200943 0.237161 0.071197 0.008493 0.000000
26 Stolper Stolper, 1982 Basalt Marianas 46D-I-1 TT Manometry 0.668086 0.205889 NaN NaN NaN ... 0.021277 0.292271 0.128045 NaN 0.076121 0.260481 0.062411 0.016181 0.010616 0.000000
27 Stolper Stolper, 1982 Basalt Tasaday TT Manometry 0.690789 0.167814 NaN NaN NaN ... 0.021277 0.304041 0.122477 NaN 0.064844 0.230712 0.064194 0.012945 0.008493 0.000000
28 Stolper Stolper, 1982 Hydrated Obsidian OBS G TT Manometry 0.811370 0.670642 NaN NaN NaN ... 0.001252 0.233425 0.013918 NaN 0.001410 0.007442 0.073110 0.148867 0.097665 0.000000
29 Stolper Stolper, 1982 Hydrated Obsidian OBS I TT Manometry 0.812989 0.671242 NaN NaN NaN ... 0.001252 0.231463 0.013918 NaN 0.001410 0.007442 0.071327 0.145631 0.095541 0.000000
30 Stolper Stolper, 1982 Hydrated Obsidian OBS E TT Manometry 0.813307 0.670642 NaN NaN NaN ... 0.001252 0.237348 0.013918 NaN 0.001410 0.007442 0.073110 0.148867 0.097665 0.000000
31 Stolper Stolper, 1982 Synthetic Albite A78-56 TT Manometry 0.902343 0.000000 NaN NaN NaN ... 0.000000 0.345233 0.000000 NaN 0.000000 0.000000 0.153352 0.000000 0.000000 0.000000
32 Mandeville Yamashita et al., 1997 Tholeiite TT Manometry 0.665081 0.264242 0.84 0.06 NaN ... 0.015394 0.275598 0.175226 NaN 0.003101 0.130489 0.185628 0.066667 0.009130 0.002254
33 Mandeville Yamashita et al., 1997 High Al Basalt TT Manometry 0.671291 0.342483 0.84 0.06 NaN ... 0.017397 0.335033 0.141962 NaN 0.002537 0.131977 0.178317 0.092880 0.016773 0.004650
34 Mandeville Yamashita et al., 1997 Dacite TT Manometry 0.782269 0.557640 1.60 0.30 NaN ... 0.010763 0.299333 0.084621 NaN 0.002114 0.038948 0.102175 0.128803 0.016561 0.002395

35 rows × 75 columns

ε1635 Dataset

[7]:
df_1635
[7]:
Compilation Paper Glass Composition Baseline Analytical Method Tau Eta Epsilon_5200 Uncertainty_5200 PeakPosition_5200 ... TiO2.2 Al2O3.2 FeO.2 Fe2O3.2 MnO.2 MgO.2 CaO.2 Na2O.2 K2O.2 P2O5.2
0 Mandeville; Dixon Dixon et al., 1995 MORB 5 Gaussians Manometry 0.627338 0.297233 0.62 0.07 5200.0 ... 0.023029 0.268733 0.172582 NaN 0.003101 0.165468 0.205064 0.086731 0.003185 0.002677
1 von Aulock Hauri et al., 2002 Rhyolite TT SIMS 0.859000 NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2 Dixon; von Aulock Ihinger et al., 1994 Rhyolite NaN NaN 0.860000 NaN 1.86 0.05 5225.0 ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3 Mandeville Jakobsson, 1997 Icelandite Bruker B&K baselines Elemental Analysis 0.708000 0.507389 1.25 0.05 NaN ... 0.025282 0.284425 0.169381 NaN 0.003806 0.073183 0.124108 0.127832 0.027176 0.014371
4 von Aulock King et al., 2002 Andesite GG Manometry, SIMS 0.743324 0.530808 1.08 0.11 5209.0 ... 0.011765 0.349157 0.089492 NaN 0.000000 0.075664 0.122147 0.138188 0.022930 0.000000
5 Mandeville Mandeville, 2002 Fe-Bearing Andesite GG Manometry 0.746000 0.508918 1.07 0.07 NaN ... 0.012140 0.329345 0.066667 NaN 0.001973 0.077400 0.121790 0.126214 0.026539 0.004227
6 Mandeville Mandeville, 2002 Fe-Free Andesite GG Manometry 0.795000 0.425118 1.46 0.07 NaN ... 0.013392 0.327579 0.000000 NaN 0.000000 0.072935 0.133916 0.099029 0.029512 0.000000
7 Mandeville Newman et al., 1986 Rhyolite TT (3550), French curve (NIR) Manometry 0.859000 NaN 1.61 0.05 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
8 Mandeville; Dixon Silver et al., 1990; Silver and Stolper, 1989 Albite French curve, following Newman et al., 1986 Manometry 0.799495 NaN 1.67 0.06 5218.0 ... 0.000000 0.381326 0.000000 NaN 0.000000 0.000000 0.000000 0.382524 0.000000 0.000000

9 rows × 75 columns

εCarbonate Dataset

[8]:
df_carbonate
[8]:
Compilation Paper Glass Composition Baseline Analytical Method Tau Eta Epsilon_5200 Uncertainty_5200 PeakPosition_5200 ... TiO2.2 Al2O3.2 FeO.2 Fe2O3.2 MnO.2 MgO.2 CaO.2 Na2O.2 K2O.2 P2O5.2
0 Brounce Brounce et al., 2021 Boninite Devolatilized baseline Karl Fischer Titration, IR Spectroscopy, Eleme... 0.642699 0.263040 NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1 Dixon and Pan Dixon and Pan, 1995 Basanite Devolatilized baseline Carbon Analyzer 0.585434 0.488757 NaN NaN NaN ... 0.039675 0.298156 0.167015 NaN 0.003242 0.224758 0.146576 0.140129 0.028025 0.003804
2 Duncan Duncan and Dasgupta, 2015 Rhyolite TT SIMS 0.805249 0.840649 NaN NaN NaN ... 0.006258 0.309141 0.013023 NaN 0.006948 0.006096 0.025932 0.136801 0.156081 0.001167
3 von Aulock Fine and Stolper, 1986 Basalt Devolatilized baseline Experimental CO2 loading 0.620284 0.268022 NaN NaN NaN ... 0.009140 0.310514 0.118590 NaN 0.002256 0.266968 0.203290 0.074219 0.002123 0.000000
4 Mandeville Jakobsson, 1997 Icelandite Bruker B&K baselines Elemental Analysis 0.708000 0.507389 1.25 0.05 NaN ... 0.025282 0.284425 0.169381 NaN 0.003806 0.073183 0.124108 0.127832 0.027176 0.014371
5 Jendrzejewski Jendrzejewski et al., 1997 MORB Devolatilized baseline Manometry 0.645456 0.244638 NaN NaN NaN ... 0.015770 0.281130 0.134196 NaN 0.002453 0.193004 0.211840 0.068608 0.000849 0.001578
6 Shi Shi et al., 2024 ND70 Synthetic MORB ALS, PyIRoglass MCMC SIMS/ERDA Mean for H2O; NRA for CO2 0.648227 0.235588 NaN NaN NaN ... 0.009015 0.283405 0.114442 NaN 0.001974 0.207570 0.230325 0.071186 0.003482 0.001071
7 Shishkina Shishkina et al., 2010 Basalt GG Karl Fischer Titration, IR Spectroscopy 0.663783 0.276557 0.65 0.08 NaN ... 0.011389 0.359357 0.130271 NaN 0.002396 0.173902 0.202300 0.077346 0.004777 0.002113
8 Shishkina Shishkina et al., 2014 Basanite, A2549 TT Karl Fischer Titration, IR Spectroscopy 0.532067 0.361039 NaN NaN NaN ... 0.033041 0.248137 0.160612 NaN 0.002678 0.299429 0.210770 0.119094 0.021444 0.009863
9 Shishkina Shishkina et al., 2014 Alkali basalt, B2507 TT Karl Fischer Titration, IR Spectroscopy 0.585248 0.391245 NaN NaN NaN ... 0.029412 0.277952 0.150592 NaN 0.002396 0.257008 0.177247 0.113916 0.017622 0.006622
10 Shishkina Shishkina et al., 2014 Ferro-basalt, SC1 TT Karl Fischer Titration, IR Spectroscopy 0.623637 0.302804 NaN NaN NaN ... 0.036170 0.289721 0.181628 NaN 0.000000 0.160506 0.195970 0.085113 0.006369 0.000000
11 Shishkina Shishkina et al., 2014 Alkali basalt, Etna TT Karl Fischer Titration, IR Spectroscopy 0.625605 0.367019 NaN NaN NaN ... 0.022153 0.321695 0.145859 NaN 0.002819 0.148102 0.193117 0.111974 0.041614 0.008313
12 Shishkina Shishkina et al., 2014 Alkali basalt, OB93 TT Karl Fischer Titration, IR Spectroscopy 0.636214 0.366949 NaN NaN NaN ... 0.034543 0.317772 0.165623 NaN 0.002396 0.145870 0.174750 0.101294 0.023779 0.000000
13 Shishkina Shishkina et al., 2014 MORB, 169oxi TT Karl Fischer Titration, IR Spectroscopy 0.653036 0.275455 NaN NaN NaN ... 0.018273 0.332483 0.118441 NaN 0.001833 0.185562 0.214515 0.081553 0.004671 0.000000
14 von Aulock Thibault and Holloway, 1994 Leucitite Devolatilized baseline SIMS 0.540940 0.288254 NaN NaN NaN ... 0.033667 0.251079 0.129576 NaN 0.002678 0.226743 0.255706 0.103560 0.073248 0.010849
15 Vetere Vetere et al., 2011 Shoshonite TT Karl Fischer Titration, IR Spectroscopy 0.658648 0.438376 1.03 0.03 NaN ... 0.008886 0.303648 0.116771 NaN 0.001410 0.121062 0.151748 0.118447 0.100212 0.000000
16 Shishkina Vetere et al., 2014 Phonotephrite AH3 TT Karl Fischer Titration, IR Spectroscopy 0.607514 0.536856 NaN NaN NaN ... 0.010889 0.304825 0.108142 NaN 0.000564 0.149591 0.201854 0.233981 0.040127 0.000000
17 Shishkina Vetere et al., 2014 Phonotephrite AH2 TT Karl Fischer Titration, IR Spectroscopy 0.612468 0.424113 NaN NaN NaN ... 0.010513 0.294037 0.108003 NaN 0.000846 0.136194 0.203459 0.149838 0.100000 0.000000
18 Shishkina Vetere et al., 2014 Phonotephrite AH1 TT Karl Fischer Titration, IR Spectroscopy 0.622414 0.236898 NaN NaN NaN ... 0.011139 0.305414 0.108838 NaN 0.000282 0.142645 0.203281 0.063107 0.159660 0.000000
19 Shishkina Vetere et al., 2014 Latite TT Karl Fischer Titration, IR Spectroscopy 0.722380 0.590266 NaN NaN NaN ... 0.006508 0.323656 0.096312 NaN 0.001551 0.055321 0.091655 0.132039 0.113800 0.000000
20 Behrens Behrens et al., 2009 Ultrapotassic melt (K-rich) TT Karl Fischer Titration 0.622000 0.231579 1.02 0.03 NaN ... 0.010732 0.293645 0.100035 NaN 0.000916 0.136381 0.192939 0.058091 0.146550 0.001761
21 Dixon and Pan Dixon and Pan, 1995 Basanite Devolatilized baseline Carbon Analyzer 0.620284 0.268022 NaN NaN NaN ... 0.039675 0.298156 0.167015 NaN 0.003242 0.224758 0.146576 0.140129 0.028025 0.003804
22 Duncan Duncan and Dasgupta, 2015 Rhyolite TT SIMS 0.805249 0.840649 NaN NaN NaN ... 0.006258 0.309141 0.013023 NaN 0.006948 0.006096 0.025932 0.136801 0.156081 0.001167
23 von Aulock Fine and Stolper, 1986 Basalt Devolatilized baseline Experimental CO2 loading 0.620284 0.268022 NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
24 Mandeville Jakobsson, 1997 Icelandite Bruker B&K baselines Elemental Analysis 0.708000 0.507389 1.25 0.05 NaN ... 0.025282 0.284425 0.169381 NaN 0.003806 0.073183 0.124108 0.127832 0.027176 0.014371
25 Jendrzejewski Jendrzejewski et al., 1997 MORB Devolatilized baseline Manometry 0.645456 0.244638 NaN NaN NaN ... 0.015770 0.281130 0.134196 NaN 0.002453 0.193004 0.211840 0.068608 0.000849 0.001578
26 Shi Shi et al., 2024 Basalt ALS, PyIRoglass MCMC SIMS/ERDA Mean for H2O; NRA for CO2 0.648227 0.235588 NaN NaN NaN ... 0.009015 0.283405 0.114442 NaN 0.001974 0.207570 0.230325 0.071186 0.003482 0.001071
27 Shishkina Shishkina et al., 2010 Basalt GG Karl Fischer Titration, IR Spectroscopy 0.663783 0.276557 0.65 0.08 NaN ... 0.011389 0.359357 0.130271 NaN 0.002396 0.173902 0.202300 0.077346 0.004777 0.002113
28 Shishkina Shishkina et al., 2014 Basanite, A2549 TT Karl Fischer Titration, IR Spectroscopy 0.532067 0.361039 NaN NaN NaN ... 0.033041 0.248137 0.160612 NaN 0.002678 0.299429 0.210770 0.119094 0.021444 0.009863
29 Shishkina Shishkina et al., 2014 Alkali basalt, B2507 TT Karl Fischer Titration, IR Spectroscopy 0.585248 0.391245 NaN NaN NaN ... 0.029412 0.277952 0.150592 NaN 0.002396 0.257008 0.177247 0.113916 0.017622 0.006622
30 Shishkina Shishkina et al., 2014 Ferro-basalt, SC1 TT Karl Fischer Titration, IR Spectroscopy 0.623637 0.302804 NaN NaN NaN ... 0.036170 0.289721 0.181628 NaN 0.000000 0.160506 0.195970 0.085113 0.006369 0.000000
31 Shishkina Shishkina et al., 2014 Alkali basalt, Etna TT Karl Fischer Titration, IR Spectroscopy 0.625605 0.367019 NaN NaN NaN ... 0.022153 0.321695 0.145859 NaN 0.002819 0.148102 0.193117 0.111974 0.041614 0.008313
32 Shishkina Shishkina et al., 2014 Alkali basalt, OB93 TT Karl Fischer Titration, IR Spectroscopy 0.636214 0.366949 NaN NaN NaN ... 0.034543 0.317772 0.165623 NaN 0.002396 0.145870 0.174750 0.101294 0.023779 0.000000
33 Shishkina Shishkina et al., 2014 MORB, 169oxi TT Karl Fischer Titration, IR Spectroscopy 0.653036 0.275455 NaN NaN NaN ... 0.018273 0.332483 0.118441 NaN 0.001833 0.185562 0.214515 0.081553 0.004671 0.000000
34 von Aulock Thibault and Holloway, 1994 Leucitite Devolatilized baseline SIMS 0.540940 0.288254 NaN NaN NaN ... 0.033667 0.251079 0.129576 NaN 0.002678 0.226743 0.255706 0.103560 0.073248 0.010849

35 rows × 77 columns

We’re ready to use the Inversion function now. We input the arguments:

  • Compositional parameter

  • Molar absorptivity

  • Uncertainty on compositional parameter

  • Uncertainty on absorption coefficient

and output:

  • Best-fit inversion parameters

  • Covariance matrix for inversion parameters

  • Covariance on fit molar absorptivity

[9]:

mest_5200, covm_est_5200, covepsilon_5200 = pig.inversion(tau_5200, epsilon_5200, sigma_tau_5200, sigma_epsilon_5200, intercept_zero=False) mls_5200, covls_5200 = pig.least_squares(tau_5200, epsilon_5200, sigma_epsilon_5200) E_calib_5200, see_5200, r2_5200, rmse_5200, rrmse_5200, ccc_5200 = pig.inversion_fit_errors(tau_5200, epsilon_5200, mest_5200, covm_est_5200, covepsilon_5200) mest_4500, covm_est_4500, covepsilon_4500 = pig.inversion(tau_4500, epsilon_4500, sigma_tau_4500, sigma_epsilon_4500, intercept_zero=False) mls_4500, covls_4500 = pig.least_squares(tau_4500, sigma_tau_4500, sigma_epsilon_4500) E_calib_4500, see_4500, r2_4500, rmse_4500, rrmse_4500, ccc_4500 = pig.inversion_fit_errors(tau_4500, epsilon_4500, mest_4500, covm_est_4500, covepsilon_4500) mest_3550, covm_est_3550, covepsilon_3550 = pig.inversion(tau_3550, epsilon_3550, sigma_tau_3550, sigma_epsilon_3550, intercept_zero=False) mls_3550, covls_3550 = pig.least_squares(tau_3550, epsilon_3550, sigma_epsilon_3550) E_calib_3550, see_3550, r2_3550, rmse_3550, rrmse_3550, ccc_3550 = pig.inversion_fit_errors(tau_3550, epsilon_3550, mest_3550, covm_est_3550, covepsilon_3550) mest_1635, covm_est_1635, covepsilon_1635 = pig.inversion(tau_1635, epsilon_1635, sigma_tau_1635, sigma_epsilon_1635, intercept_zero=False) mls_1635, covls_1635 = pig.least_squares(tau_1635, epsilon_1635, sigma_tau_1635, sigma_epsilon_1635) E_calib_1635, see_1635, r2_1635, rmse_1635, rrmse_1635, ccc_1635 = pig.inversion_fit_errors(tau_1635, epsilon_1635, mest_1635, covm_est_1635, covepsilon_1635) mest_carbonate, covm_est_carbonate, covepsilon_carbonate = pig.inversion(eta, epsilon_carbonate, sigma_eta, sigma_epsilon_carbonate, intercept_zero=False) mls_carbonate, covls_carbonate = pig.least_squares(eta, epsilon_carbonate, sigma_epsilon_carbonate) E_calib_carbonate, see_carbonate, r2_carbonate, rmse_carbonate, rrmse_carbonate, ccc_carbonate = pig.inversion_fit_errors(eta, epsilon_carbonate, mls_carbonate, covls_carbonate, covepsilon_carbonate)
Initial error in implicit equation = 1.0484975092736677
Final error in implicit equation =  6.508102468073347e-30
Final error in implicit equation =  1.0255191767873153e-29
Final error in implicit equation =  4.535950205020818e-30
Final error in implicit equation =  4.930380657631324e-30
Final error in implicit equation =  8.874685183736383e-30
Final error in implicit equation =  4.535950205020818e-30
Final error in implicit equation =  5.127595883936577e-30
Final error in implicit equation =  4.338734978715565e-30
Final error in implicit equation =  4.733165431326071e-30
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In[9], line 3
      1 mest_5200, covm_est_5200, covepsilon_5200 = pig.inversion(tau_5200, epsilon_5200, sigma_tau_5200, sigma_epsilon_5200, intercept_zero=False)
      2 mls_5200, covls_5200 = pig.least_squares(tau_5200, epsilon_5200, sigma_epsilon_5200)
----> 3 E_calib_5200, see_5200, r2_5200, rmse_5200, rrmse_5200, ccc_5200 = pig.inversion_fit_errors(tau_5200, epsilon_5200, mest_5200, covm_est_5200, covepsilon_5200)
      5 mest_4500, covm_est_4500, covepsilon_4500 = pig.inversion(tau_4500, epsilon_4500, sigma_tau_4500, sigma_epsilon_4500, intercept_zero=False)
      6 mls_4500, covls_4500 = pig.least_squares(tau_4500, sigma_tau_4500, sigma_epsilon_4500)

TypeError: inversion_fit_errors() takes 4 positional arguments but 5 were given

Assessing uncertainty of prediction:

[10]:

tau_arr_5200, epsilon_5200_arr, conf_lower_5200, conf_upper_5200, pred_lower_5200, pred_upper_5200 = pig.inversion_fit_errors_plotting(tau_5200, epsilon_5200, mest_5200) tau_arr_4500, epsilon_4500_arr, conf_lower_4500, conf_upper_4500, pred_lower_4500, pred_upper_4500 = pig.inversion_fit_errors_plotting(tau_4500, epsilon_4500, mest_4500) tau_arr_3550, epsilon_3550_arr, conf_lower_3550, conf_upper_3550, pred_lower_3550, pred_upper_3550 = pig.inversion_fit_errors_plotting(tau_3550, epsilon_3550, mest_3550) tau_arr_1635, epsilon_1635_arr, conf_lower_1635, conf_upper_1635, pred_lower_1635, pred_upper_1635 = pig.inversion_fit_errors_plotting(tau_1635, epsilon_1635, mest_1635) eta_arr, epsilon_carbonate_arr, conf_lower_carbonate, conf_upper_carbonate, pred_lower_carbonate, pred_upper_carbonate = pig.inversion_fit_errors_plotting(eta, epsilon_carbonate, mest_carbonate)
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
Cell In[10], line 2
      1 tau_arr_5200, epsilon_5200_arr, conf_lower_5200, conf_upper_5200, pred_lower_5200, pred_upper_5200 = pig.inversion_fit_errors_plotting(tau_5200, epsilon_5200, mest_5200)
----> 2 tau_arr_4500, epsilon_4500_arr, conf_lower_4500, conf_upper_4500, pred_lower_4500, pred_upper_4500 = pig.inversion_fit_errors_plotting(tau_4500, epsilon_4500, mest_4500)
      3 tau_arr_3550, epsilon_3550_arr, conf_lower_3550, conf_upper_3550, pred_lower_3550, pred_upper_3550 = pig.inversion_fit_errors_plotting(tau_3550, epsilon_3550, mest_3550)
      4 tau_arr_1635, epsilon_1635_arr, conf_lower_1635, conf_upper_1635, pred_lower_1635, pred_upper_1635 = pig.inversion_fit_errors_plotting(tau_1635, epsilon_1635, mest_1635)

NameError: name 'mest_4500' is not defined

We can now make Figure 5 from the paper.

[11]:
sz = 150

fig, ax = plt.subplots(3, 2, figsize = (14, 19))
ax = ax.flatten()

epsilon_5200_mandeville = -2.463 + 4.899*tau_arr_5200
fuego_idx = np.where((tau_arr_5200 > 0.653) & (tau_arr_5200 < 0.715))
legend_5200 = '$\mathregular{ƐH_2O_{m, 5200}}$ = ' + f'{round(mest_5200[0],3)}{round(np.sqrt(np.diag(covm_est_5200))[0],3)}) + {round(mest_5200[1],3)}{round(np.sqrt(np.diag(covm_est_5200))[1],3)})'+ '·' + '$\\tau$'+ f', N={len(tau_5200)}'

ax[0].plot(tau_arr_5200, epsilon_5200_arr, 'k', lw = 2, zorder = 0, label = legend_5200)
mand, = ax[0].plot(tau_arr_5200, epsilon_5200_mandeville, 'k-.', lw = 2, zorder = 0, label = 'Mandeville et al., 2002')
mand.set_dashes([1.5, 1, 3, 1])
ax[0].fill_between(tau_arr_5200, conf_lower_5200, conf_upper_5200, color = 'k', alpha=0.20, edgecolor = None,
    zorder = -5, label='68% Confidence Interval')
ax[0].plot(tau_arr_5200, pred_upper_5200, 'k--', lw = 0.5, zorder = 0, dashes=(16, 10))
ax[0].plot(tau_arr_5200, pred_lower_5200, 'k--', lw = 0.5, zorder = 0, dashes=(16, 10), label = '68% Prediction Interval')
ax[0].fill_between(tau_arr_5200[fuego_idx], conf_lower_5200[fuego_idx], conf_upper_5200[fuego_idx], color = 'r', alpha=0.30,
    edgecolor = None, zorder = -5, label='Fuego Interval')
ax[0].errorbar(tau_5200, epsilon_5200, yerr = sigma_epsilon_5200, xerr = sigma_tau_5200, ls = 'none', elinewidth = 0.5, ecolor = 'k')
ax[0].scatter(tau_5200, epsilon_5200, s = sz, c = '#0C7BDC', edgecolors='black', linewidth = 0.5, zorder = 15)
ax[0].set_xlim([ 0.5, 1.0])
ax[0].set_ylim([-0.5, 3.5])
xlabel_5200 = '$\\tau$='+'(Si+Al)/Total Cations'
ax[0].set_xlabel(xlabel_5200)
ax[0].set_ylabel('$\mathregular{ƐH_2O_{m, 5200}}$')
ax[0].legend(loc = 'upper left', labelspacing = 0.4, handletextpad = 0.5, handlelength = 1.50, prop={'size': 12}, frameon=False)
ax[0].tick_params(axis="x", direction='in', length=5, pad = 6.5)
ax[0].tick_params(axis="y", direction='in', length=5, pad = 6.5)


epsilon_4500_mandeville = -2.026+4.054*tau_arr_4500
fuego_idx = np.where((tau_arr_4500 > 0.653) & (tau_arr_4500 < 0.715))
legend_4500 = '$\mathregular{ƐOH^{-}_{4500}}$ = ' + f'{round(mest_4500[0],3)}{round(np.sqrt(np.diag(covm_est_4500))[0],3)}) + {round(mest_4500[1],3)}{round(np.sqrt(np.diag(covm_est_4500))[1],3)})'+ '·' + '$\\tau$'+ f', N={len(tau_4500)}'

ax[1].plot(tau_arr_4500, epsilon_4500_arr, 'k', lw = 2, zorder = 0, label = legend_4500)
mand, = ax[1].plot(tau_arr_4500, epsilon_4500_mandeville, 'k-.', lw = 2, zorder = 0, label = 'Mandeville et al., 2002')
mand.set_dashes([1.5, 1, 3, 1])
ax[1].fill_between(tau_arr_4500, conf_lower_4500, conf_upper_4500, color = 'k', alpha=0.20, edgecolor = None,
    zorder = -5, label='68% Confidence Interval')
ax[1].plot(tau_arr_4500, pred_upper_4500, 'k--', lw = 0.5, zorder = 0, dashes=(16, 10))
ax[1].plot(tau_arr_4500, pred_lower_4500, 'k--', lw = 0.5, zorder = 0, dashes=(16, 10), label = '68% Prediction Interval')
ax[1].fill_between(tau_arr_4500[fuego_idx], conf_lower_4500[fuego_idx], conf_upper_4500[fuego_idx], color = 'r', alpha=0.30,
    edgecolor = None, zorder = -5, label='Fuego Interval')
ax[1].errorbar(tau_4500, epsilon_4500, yerr = sigma_epsilon_4500, xerr = sigma_tau_4500, ls = 'none', elinewidth = 0.5, ecolor = 'k')
ax[1].scatter(tau_4500, epsilon_4500, s = sz, c = '#0C7BDC', edgecolors='black', linewidth = 0.5, zorder = 15)
ax[1].set_xlim([ 0.5, 1.0])
ax[1].set_ylim([-0.5, 3.5])
xlabel_4500 = '$\\tau$=' + '(Si+Al)/Total Cations'
ax[1].set_xlabel(xlabel_4500)
ax[1].set_ylabel('$\mathregular{ƐOH^{-}_{4500}}$')
ax[1].legend(loc = 'upper left', labelspacing = 0.4, handletextpad = 0.5, handlelength = 1.50, prop={'size': 12}, frameon=False)
ax[1].tick_params(axis="x", direction='in', length=5, pad = 6.5)
ax[1].tick_params(axis="y", direction='in', length=5, pad = 6.5)


fuego_idx = np.where((tau_arr_3550 > 0.653) & (tau_arr_3550 < 0.715))
legend_3550 = '$\mathregular{ƐH_2O_{t, 3550}}$ = ' + f'{round(mest_3550[0],3)}{round(np.sqrt(np.diag(covm_est_3550))[0],3)}) + {round(mest_3550[1],3)}{round(np.sqrt(np.diag(covm_est_3550))[1],3)})'+ '·' + '$\\tau$'+ f', N={len(tau_3550)}'

ax[2].plot(tau_arr_3550, epsilon_3550_arr, 'k', lw = 2, zorder = 0, label = legend_3550)
mand.set_dashes([1.5, 1, 3, 1])
ax[2].fill_between(tau_arr_3550, conf_lower_3550, conf_upper_3550, color = 'k', alpha=0.20, edgecolor = None,
    zorder = -5, label='68% Confidence Interval')
ax[2].plot(tau_arr_3550, pred_upper_3550, 'k--', lw = 0.5, zorder = 0, dashes=(16, 10))
ax[2].plot(tau_arr_3550, pred_lower_3550, 'k--', lw = 0.5, zorder = 0, dashes=(16, 10), label = '68% Prediction Interval')
ax[2].fill_between(tau_arr_3550[fuego_idx], conf_lower_3550[fuego_idx], conf_upper_3550[fuego_idx], color = 'r', alpha=0.30,
    edgecolor = None, zorder = -5, label='Fuego Interval')
ax[2].errorbar(tau_3550, epsilon_3550, yerr = sigma_epsilon_3550, xerr = sigma_tau_3550, ls = 'none', elinewidth = 0.5, ecolor = 'k')
ax[2].scatter(tau_3550, epsilon_3550, s = sz, c = '#0C7BDC', edgecolors='black', linewidth = 0.5, zorder = 15)
ax[2].set_xlim([0.4, 1.0])
ax[2].set_ylim([20, 110])
xlabel_3550 = '$\\tau$=' + '(Si+Al)/Total Cations'
ax[2].set_xlabel(xlabel_3550)
ax[2].set_ylabel('$\mathregular{ƐH_2O_{t, 3550}}$')
ax[2].legend(loc = 'upper left', labelspacing = 0.4, handletextpad = 0.5, handlelength = 1.50, prop={'size': 12}, frameon=False)
ax[2].tick_params(axis="x", direction='in', length=5, pad = 6.5)
ax[2].tick_params(axis="y", direction='in', length=5, pad = 6.5)


epsilon_1635_mandeville = -57.813+131.94*tau_arr_1635
fuego_idx = np.where((tau_arr_1635 > 0.653) & (tau_arr_1635 < 0.715))
legend_1635 = '$\mathregular{ƐH_2O_{m, 1635}}$ = ' + f'{round(mest_1635[0],3)}{round(np.sqrt(np.diag(covm_est_1635))[0],3)}) + {round(mest_1635[1],3)}{round(np.sqrt(np.diag(covm_est_1635))[1],3)})'+ '·' + '$\\tau$'+ f', N={len(tau_1635)}'

ax[3].plot(tau_arr_1635, epsilon_1635_arr, 'k', lw = 2, zorder = 0, label = legend_1635)
mand, = ax[3].plot(tau_arr_1635, epsilon_1635_mandeville, 'k-.', lw = 2, zorder = 0, label = 'Mandeville et al., 2002')
mand.set_dashes([1.5, 1, 3, 1])
ax[3].fill_between(tau_arr_1635, conf_lower_1635, conf_upper_1635, color = 'k', alpha=0.20, edgecolor = None,
    zorder = -5, label='68% Confidence Interval')
ax[3].plot(tau_arr_1635, pred_upper_1635, 'k--', lw = 0.5, zorder = 0, dashes=(16, 10))
ax[3].plot(tau_arr_1635, pred_lower_1635, 'k--', lw = 0.5, zorder = 0, dashes=(16, 10), label = '68% Prediction Interval')
ax[3].fill_between(tau_arr_1635[fuego_idx], conf_lower_1635[fuego_idx], conf_upper_1635[fuego_idx], color = 'r', alpha=0.30,
    edgecolor = None, zorder = -5, label='Fuego Interval')
ax[3].errorbar(tau_1635, epsilon_1635, yerr = sigma_epsilon_1635, xerr = sigma_tau_1635, ls = 'none', elinewidth = 0.5, ecolor = 'k')
ax[3].scatter(tau_1635, epsilon_1635, s = sz, c = '#0C7BDC', edgecolors='black', linewidth = 0.5, zorder = 15)
ax[3].set_xlim([0.5, 1.0])
ax[3].set_ylim([0, 90])
xlabel_1635 = '$\\tau$=' + '(Si+Al)/Total Cations'
ax[3].set_xlabel(xlabel_1635)
ax[3].set_ylabel('$\mathregular{ƐH_2O_{m, 1635}}$')
ax[3].legend(loc = 'upper left', labelspacing = 0.4, handletextpad = 0.5, handlelength = 1.50, prop={'size': 12}, frameon=False)
ax[3].tick_params(axis="x", direction='in', length=5, pad = 6.5)
ax[3].tick_params(axis="y", direction='in', length=5, pad = 6.5)

epsilon_carbonate_dixonpan = 451-342*eta_arr
fuego_idx = np.where((eta_arr > 0.389) & (eta_arr < 0.554))
df_carbonate = pd.read_excel('./EpsilonRegression.xlsx', sheet_name='CarbonateRegress')
low_df = df_carbonate[df_carbonate.Epsilon_Location == 'Low']
high_df = df_carbonate[df_carbonate.Epsilon_Location == 'High']

ax[4].errorbar(low_df['Na/Na+Ca'], low_df['Epsilon_Carbonate'], yerr = low_df['Epsilon_Carbonate']*0.1, xerr = low_df['Na/Na+Ca']*0.025, ls = 'none', elinewidth = 0.5, ecolor = 'k')
ax[4].scatter(low_df['Na/Na+Ca'], low_df['Epsilon_Carbonate'], s = sz, c = '#0C7BDC', edgecolors='black', linewidth = 0.5, zorder = 15, label = '$\mathregular{CO_{3, 1430}^{2-}}$, N='+str(len(low_df)))

ax[4].errorbar(high_df['Na/Na+Ca'], high_df['Epsilon_Carbonate'], yerr = high_df['Epsilon_Carbonate']*0.10, xerr = high_df['Na/Na+Ca']*0.025, ls = 'none', elinewidth = 0.5, ecolor = 'k')
ax[4].scatter(high_df['Na/Na+Ca'], high_df['Epsilon_Carbonate'], s = sz, c = '#E42211', marker = 's', edgecolors='black', linewidth = 0.5, zorder = 15, label = '$\mathregular{CO_{3, 1515}^{2-}}$, N='+str(len(high_df)))

dixonpan, = ax[4].plot(eta_arr, epsilon_carbonate_dixonpan, 'k-.', lw = 1.5, zorder = 0, label = 'Dixon and Pan, 1995')
dixonpan.set_dashes([1.5, 1, 3, 1])
legend_carbonate = '$\mathregular{ƐCO_3^{2-}}$= ' + f'{round(mest_carbonate[0],3)}{round(np.sqrt(np.diag(covm_est_carbonate))[0],3)})-{round(mest_carbonate[1],3)*-1}{round(np.sqrt(np.diag(covm_est_carbonate))[1],3)})' + '·' + f'Na/(Na+Ca)'
ax[4].plot(eta_arr, epsilon_carbonate_arr, 'k', lw = 2, zorder = 0, label = legend_carbonate)
ax[4].fill_between(eta_arr, conf_lower_carbonate, conf_upper_carbonate, color = 'k', alpha=0.20, edgecolor = None,
    zorder = -5, label='68% Confidence Interval')
ax[4].plot(eta_arr, pred_upper_carbonate, 'k--', lw = 0.5, zorder = 0, dashes=(16, 10))
ax[4].plot(eta_arr, pred_lower_carbonate, 'k--', lw = 0.5, zorder = 0, dashes=(16, 10), label = '68% Prediction Interval')
ax[4].fill_between(eta_arr[fuego_idx], conf_lower_carbonate[fuego_idx], conf_upper_carbonate[fuego_idx], color = 'r', alpha=0.30, edgecolor = None,
    zorder = -5, label='Fuego Interval')
ax[4].set_xlim([0.1, 0.9])
ax[4].set_ylim([0, 500])
ax[4].set_xlabel('$\eta$ = Na/(Na+Ca)')
ax[4].set_ylabel('$\mathregular{ƐCO_3^{2-}}$')
ax[4].legend(loc = 'lower left', labelspacing = 0.4, handletextpad = 0.5, handlelength = 1.50, prop={'size': 12}, frameon=False)
ax[4].tick_params(axis="x", direction='in', length=5, pad = 6.5)
ax[4].tick_params(axis="y", direction='in', length=5, pad = 6.5)

fig.delaxes(ax[5])

plt.tight_layout()
plt.savefig('AllEpsilonRegress.pdf')
<>:8: SyntaxWarning: invalid escape sequence '\m'
<>:25: SyntaxWarning: invalid escape sequence '\m'
<>:33: SyntaxWarning: invalid escape sequence '\m'
<>:50: SyntaxWarning: invalid escape sequence '\m'
<>:57: SyntaxWarning: invalid escape sequence '\m'
<>:73: SyntaxWarning: invalid escape sequence '\m'
<>:81: SyntaxWarning: invalid escape sequence '\m'
<>:98: SyntaxWarning: invalid escape sequence '\m'
<>:110: SyntaxWarning: invalid escape sequence '\m'
<>:113: SyntaxWarning: invalid escape sequence '\m'
<>:117: SyntaxWarning: invalid escape sequence '\m'
<>:127: SyntaxWarning: invalid escape sequence '\e'
<>:128: SyntaxWarning: invalid escape sequence '\m'
<>:8: SyntaxWarning: invalid escape sequence '\m'
<>:25: SyntaxWarning: invalid escape sequence '\m'
<>:33: SyntaxWarning: invalid escape sequence '\m'
<>:50: SyntaxWarning: invalid escape sequence '\m'
<>:57: SyntaxWarning: invalid escape sequence '\m'
<>:73: SyntaxWarning: invalid escape sequence '\m'
<>:81: SyntaxWarning: invalid escape sequence '\m'
<>:98: SyntaxWarning: invalid escape sequence '\m'
<>:110: SyntaxWarning: invalid escape sequence '\m'
<>:113: SyntaxWarning: invalid escape sequence '\m'
<>:117: SyntaxWarning: invalid escape sequence '\m'
<>:127: SyntaxWarning: invalid escape sequence '\e'
<>:128: SyntaxWarning: invalid escape sequence '\m'
/tmp/ipykernel_2389/2489607765.py:8: SyntaxWarning: invalid escape sequence '\m'
  legend_5200 = '$\mathregular{ƐH_2O_{m, 5200}}$ = ' + f'{round(mest_5200[0],3)}(±{round(np.sqrt(np.diag(covm_est_5200))[0],3)}) + {round(mest_5200[1],3)}(±{round(np.sqrt(np.diag(covm_est_5200))[1],3)})'+ '·' + '$\\tau$'+ f', N={len(tau_5200)}'
/tmp/ipykernel_2389/2489607765.py:25: SyntaxWarning: invalid escape sequence '\m'
  ax[0].set_ylabel('$\mathregular{ƐH_2O_{m, 5200}}$')
/tmp/ipykernel_2389/2489607765.py:33: SyntaxWarning: invalid escape sequence '\m'
  legend_4500 = '$\mathregular{ƐOH^{-}_{4500}}$ = ' + f'{round(mest_4500[0],3)}(±{round(np.sqrt(np.diag(covm_est_4500))[0],3)}) + {round(mest_4500[1],3)}(±{round(np.sqrt(np.diag(covm_est_4500))[1],3)})'+ '·' + '$\\tau$'+ f', N={len(tau_4500)}'
/tmp/ipykernel_2389/2489607765.py:50: SyntaxWarning: invalid escape sequence '\m'
  ax[1].set_ylabel('$\mathregular{ƐOH^{-}_{4500}}$')
/tmp/ipykernel_2389/2489607765.py:57: SyntaxWarning: invalid escape sequence '\m'
  legend_3550 = '$\mathregular{ƐH_2O_{t, 3550}}$ = ' + f'{round(mest_3550[0],3)}(±{round(np.sqrt(np.diag(covm_est_3550))[0],3)}) + {round(mest_3550[1],3)}(±{round(np.sqrt(np.diag(covm_est_3550))[1],3)})'+ '·' + '$\\tau$'+ f', N={len(tau_3550)}'
/tmp/ipykernel_2389/2489607765.py:73: SyntaxWarning: invalid escape sequence '\m'
  ax[2].set_ylabel('$\mathregular{ƐH_2O_{t, 3550}}$')
/tmp/ipykernel_2389/2489607765.py:81: SyntaxWarning: invalid escape sequence '\m'
  legend_1635 = '$\mathregular{ƐH_2O_{m, 1635}}$ = ' + f'{round(mest_1635[0],3)}(±{round(np.sqrt(np.diag(covm_est_1635))[0],3)}) + {round(mest_1635[1],3)}(±{round(np.sqrt(np.diag(covm_est_1635))[1],3)})'+ '·' + '$\\tau$'+ f', N={len(tau_1635)}'
/tmp/ipykernel_2389/2489607765.py:98: SyntaxWarning: invalid escape sequence '\m'
  ax[3].set_ylabel('$\mathregular{ƐH_2O_{m, 1635}}$')
/tmp/ipykernel_2389/2489607765.py:110: SyntaxWarning: invalid escape sequence '\m'
  ax[4].scatter(low_df['Na/Na+Ca'], low_df['Epsilon_Carbonate'], s = sz, c = '#0C7BDC', edgecolors='black', linewidth = 0.5, zorder = 15, label = '$\mathregular{CO_{3, 1430}^{2-}}$, N='+str(len(low_df)))
/tmp/ipykernel_2389/2489607765.py:113: SyntaxWarning: invalid escape sequence '\m'
  ax[4].scatter(high_df['Na/Na+Ca'], high_df['Epsilon_Carbonate'], s = sz, c = '#E42211', marker = 's', edgecolors='black', linewidth = 0.5, zorder = 15, label = '$\mathregular{CO_{3, 1515}^{2-}}$, N='+str(len(high_df)))
/tmp/ipykernel_2389/2489607765.py:117: SyntaxWarning: invalid escape sequence '\m'
  legend_carbonate = '$\mathregular{ƐCO_3^{2-}}$= ' + f'{round(mest_carbonate[0],3)}(±{round(np.sqrt(np.diag(covm_est_carbonate))[0],3)})-{round(mest_carbonate[1],3)*-1}(±{round(np.sqrt(np.diag(covm_est_carbonate))[1],3)})' + '·' + f'Na/(Na+Ca)'
/tmp/ipykernel_2389/2489607765.py:127: SyntaxWarning: invalid escape sequence '\e'
  ax[4].set_xlabel('$\eta$ = Na/(Na+Ca)')
/tmp/ipykernel_2389/2489607765.py:128: SyntaxWarning: invalid escape sequence '\m'
  ax[4].set_ylabel('$\mathregular{ƐCO_3^{2-}}$')
/tmp/ipykernel_2389/2489607765.py:8: SyntaxWarning: invalid escape sequence '\m'
  legend_5200 = '$\mathregular{ƐH_2O_{m, 5200}}$ = ' + f'{round(mest_5200[0],3)}(±{round(np.sqrt(np.diag(covm_est_5200))[0],3)}) + {round(mest_5200[1],3)}(±{round(np.sqrt(np.diag(covm_est_5200))[1],3)})'+ '·' + '$\\tau$'+ f', N={len(tau_5200)}'
/tmp/ipykernel_2389/2489607765.py:25: SyntaxWarning: invalid escape sequence '\m'
  ax[0].set_ylabel('$\mathregular{ƐH_2O_{m, 5200}}$')
/tmp/ipykernel_2389/2489607765.py:33: SyntaxWarning: invalid escape sequence '\m'
  legend_4500 = '$\mathregular{ƐOH^{-}_{4500}}$ = ' + f'{round(mest_4500[0],3)}(±{round(np.sqrt(np.diag(covm_est_4500))[0],3)}) + {round(mest_4500[1],3)}(±{round(np.sqrt(np.diag(covm_est_4500))[1],3)})'+ '·' + '$\\tau$'+ f', N={len(tau_4500)}'
/tmp/ipykernel_2389/2489607765.py:50: SyntaxWarning: invalid escape sequence '\m'
  ax[1].set_ylabel('$\mathregular{ƐOH^{-}_{4500}}$')
/tmp/ipykernel_2389/2489607765.py:57: SyntaxWarning: invalid escape sequence '\m'
  legend_3550 = '$\mathregular{ƐH_2O_{t, 3550}}$ = ' + f'{round(mest_3550[0],3)}(±{round(np.sqrt(np.diag(covm_est_3550))[0],3)}) + {round(mest_3550[1],3)}(±{round(np.sqrt(np.diag(covm_est_3550))[1],3)})'+ '·' + '$\\tau$'+ f', N={len(tau_3550)}'
/tmp/ipykernel_2389/2489607765.py:73: SyntaxWarning: invalid escape sequence '\m'
  ax[2].set_ylabel('$\mathregular{ƐH_2O_{t, 3550}}$')
/tmp/ipykernel_2389/2489607765.py:81: SyntaxWarning: invalid escape sequence '\m'
  legend_1635 = '$\mathregular{ƐH_2O_{m, 1635}}$ = ' + f'{round(mest_1635[0],3)}(±{round(np.sqrt(np.diag(covm_est_1635))[0],3)}) + {round(mest_1635[1],3)}(±{round(np.sqrt(np.diag(covm_est_1635))[1],3)})'+ '·' + '$\\tau$'+ f', N={len(tau_1635)}'
/tmp/ipykernel_2389/2489607765.py:98: SyntaxWarning: invalid escape sequence '\m'
  ax[3].set_ylabel('$\mathregular{ƐH_2O_{m, 1635}}$')
/tmp/ipykernel_2389/2489607765.py:110: SyntaxWarning: invalid escape sequence '\m'
  ax[4].scatter(low_df['Na/Na+Ca'], low_df['Epsilon_Carbonate'], s = sz, c = '#0C7BDC', edgecolors='black', linewidth = 0.5, zorder = 15, label = '$\mathregular{CO_{3, 1430}^{2-}}$, N='+str(len(low_df)))
/tmp/ipykernel_2389/2489607765.py:113: SyntaxWarning: invalid escape sequence '\m'
  ax[4].scatter(high_df['Na/Na+Ca'], high_df['Epsilon_Carbonate'], s = sz, c = '#E42211', marker = 's', edgecolors='black', linewidth = 0.5, zorder = 15, label = '$\mathregular{CO_{3, 1515}^{2-}}$, N='+str(len(high_df)))
/tmp/ipykernel_2389/2489607765.py:117: SyntaxWarning: invalid escape sequence '\m'
  legend_carbonate = '$\mathregular{ƐCO_3^{2-}}$= ' + f'{round(mest_carbonate[0],3)}(±{round(np.sqrt(np.diag(covm_est_carbonate))[0],3)})-{round(mest_carbonate[1],3)*-1}(±{round(np.sqrt(np.diag(covm_est_carbonate))[1],3)})' + '·' + f'Na/(Na+Ca)'
/tmp/ipykernel_2389/2489607765.py:127: SyntaxWarning: invalid escape sequence '\e'
  ax[4].set_xlabel('$\eta$ = Na/(Na+Ca)')
/tmp/ipykernel_2389/2489607765.py:128: SyntaxWarning: invalid escape sequence '\m'
  ax[4].set_ylabel('$\mathregular{ƐCO_3^{2-}}$')
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
Cell In[11], line 31
     27 ax[0].tick_params(axis="x", direction='in', length=5, pad = 6.5)
     28 ax[0].tick_params(axis="y", direction='in', length=5, pad = 6.5)
---> 31 epsilon_4500_mandeville = -2.026+4.054*tau_arr_4500
     32 fuego_idx = np.where((tau_arr_4500 > 0.653) & (tau_arr_4500 < 0.715))
     33 legend_4500 = '$\mathregular{ƐOH^{-}_{4500}}$ = ' + f'{round(mest_4500[0],3)}{round(np.sqrt(np.diag(covm_est_4500))[0],3)}) + {round(mest_4500[1],3)}{round(np.sqrt(np.diag(covm_est_4500))[1],3)})'+ '·' + '$\\tau$'+ f', N={len(tau_4500)}'

NameError: name 'tau_arr_4500' is not defined
../../_images/examples_inversion_PyIRoGlass_Inversion_21_2.png

Apply Inversion Parameters to determine Molar Absorptivities with Uncertainties

We’ll use the calculate_epsilon function, which takes in the parameters:

  • MI_Composition: Dataframe of MI Compositions

  • T_ROOM: Room temperature at time of FTIR analysis, given the sensitivity of density to T.

  • P_ROOM: Room pressure at time of FTIR analysis, given the sensitivity of density to P.

and returns a dataframe of the appropriate absorbance coefficient and the uncertainty, following equation 8 from the paper.

Load in our glass composition data with the Load_ChemThick function:

[12]:
CHEMTHICK_PATH = 'ChemThick.csv'
loader = pig.SampleDataLoader(chemistry_thickness_path=CHEMTHICK_PATH)
chemistry, thickness = loader.load_chemistry_thickness()
[13]:
T_ROOM = 25 # C
P_ROOM = 1 # Bar

EPS_DF = pig.calculate_epsilon(chemistry, T_ROOM, P_ROOM)
EPS_DF
[13]:
Tau Eta epsilon_H2Ot_3550 sigma_epsilon_H2Ot_3550 epsilon_H2Om_1635 sigma_epsilon_H2Om_1635 epsilon_CO2 sigma_epsilon_CO2 epsilon_H2Om_5200 sigma_epsilon_H2Om_5200 epsilon_OH_4500 sigma_epsilon_OH_4500
AC4_OL49_021920_30x30_H2O_a 0.705990 0.499048 66.142594 7.503769 37.322108 8.645060 258.429949 18.362798 1.009458 0.300803 0.861196 0.279571
AC4_OL53_101220_256s_30x30_a 0.682895 0.389547 64.493655 7.380834 34.452486 8.504269 293.261300 16.287120 0.901474 0.295829 0.779611 0.274924
STD_D1010_012821_256s_100x100_a 0.658501 0.331580 62.751984 7.251813 31.421482 8.354348 311.700491 15.127604 0.787418 0.290510 0.693438 0.270004