Skip to content

Commit

Permalink
PyIRoGlass v0.2.0 released!
Browse files Browse the repository at this point in the history
  • Loading branch information
sarahshi committed Sep 24, 2023
1 parent b5951dc commit 487a2d3
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 28 deletions.
24 changes: 12 additions & 12 deletions UnitTests/test_plotting.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ def test_trace_savefile(self, mock_savefig):
pnames = ['B_mean','B_PC1','B_PC2','B_PC3','B_PC4','G1430_peak','G1430_std','G1430_amp',
'G1515_peak','G1515_std','G1515_amp','H1635_mean','H1635_PC1','H1635_PC2','m','b']

texnames = [r'$\overline{B}$',r'$\overline{B}_{PC1}$',r'$\overline{B}_{PC2}$',r'$\overline{B}_{PC3}$',r'$\overline{B}_{PC4}$',
r'$\mu_{1430}$',r'$\sigma_{1430}$',r'$a_{1430}$',r'$\mu_{1515}$',r'$\sigma_{1515}$',r'$a_{1515}$',
r'$\overline{H_{1635}}$',r'$\overline{H_{1635}}_{PC1}$',r'$\overline{H_{1635}}_{PC2}$',r'$m$',r'$b$']
texnames = ['$\overline{B}$','$\overline{B}_{PC1}$','$\overline{B}_{PC2}$','$\overline{B}_{PC3}$','$\overline{B}_{PC4}$',
'$\mu_{1430}$','$\sigma_{1430}$','$a_{1430}$','$\mu_{1515}$','$\sigma_{1515}$','$a_{1515}$',
'$\overline{H_{1635}}$','$\overline{H_{1635}}_{PC1}$','$\overline{H_{1635}}_{PC2}$','$m$','$b$']

file_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), '../docs/examples/transmission_ftir/NPZTXTFILES/RESULTS/AC4_OL53_101220_256s_30x30_a.npz')
mcmc_npz = np.load(file_path)
Expand All @@ -40,9 +40,9 @@ def test_trace_nosavefile(self, mock_savefig):
pnames = ['B_mean','B_PC1','B_PC2','B_PC3','B_PC4','G1430_peak','G1430_std','G1430_amp',
'G1515_peak','G1515_std','G1515_amp','H1635_mean','H1635_PC1','H1635_PC2','m','b']

texnames = [r'$\overline{B}$',r'$\overline{B}_{PC1}$',r'$\overline{B}_{PC2}$',r'$\overline{B}_{PC3}$',r'$\overline{B}_{PC4}$',
r'$\mu_{1430}$',r'$\sigma_{1430}$',r'$a_{1430}$',r'$\mu_{1515}$',r'$\sigma_{1515}$',r'$a_{1515}$',
r'$\overline{H_{1635}}$',r'$\overline{H_{1635}}_{PC1}$',r'$\overline{H_{1635}}_{PC2}$',r'$m$',r'$b$']
texnames = ['$\overline{B}$','$\overline{B}_{PC1}$','$\overline{B}_{PC2}$','$\overline{B}_{PC3}$','$\overline{B}_{PC4}$',
'$\mu_{1430}$','$\sigma_{1430}$','$a_{1430}$','$\mu_{1515}$','$\sigma_{1515}$','$a_{1515}$',
'$\overline{H_{1635}}$','$\overline{H_{1635}}_{PC1}$','$\overline{H_{1635}}_{PC2}$','$m$','$b$']

file_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), '../docs/examples/transmission_ftir/NPZTXTFILES/RESULTS/AC4_OL53_101220_256s_30x30_a.npz')
mcmc_npz = np.load(file_path)
Expand Down Expand Up @@ -77,9 +77,9 @@ def test_modelfit_savefile(self, mock_savefig):
pnames = ['B_mean','B_PC1','B_PC2','B_PC3','B_PC4','G1430_peak','G1430_std','G1430_amp',
'G1515_peak','G1515_std','G1515_amp','H1635_mean','H1635_PC1','H1635_PC2','m','b']

texnames = [r'$\overline{B}$',r'$\overline{B}_{PC1}$',r'$\overline{B}_{PC2}$',r'$\overline{B}_{PC3}$',r'$\overline{B}_{PC4}$',
r'$\mu_{1430}$',r'$\sigma_{1430}$',r'$a_{1430}$',r'$\mu_{1515}$',r'$\sigma_{1515}$',r'$a_{1515}$',
r'$\overline{H_{1635}}$',r'$\overline{H_{1635}}_{PC1}$',r'$\overline{H_{1635}}_{PC2}$',r'$m$',r'$b$']
texnames = ['$\overline{B}$','$\overline{B}_{PC1}$','$\overline{B}_{PC2}$','$\overline{B}_{PC3}$','$\overline{B}_{PC4}$',
'$\mu_{1430}$','$\sigma_{1430}$','$a_{1430}$','$\mu_{1515}$','$\sigma_{1515}$','$a_{1515}$',
'$\overline{H_{1635}}$','$\overline{H_{1635}}_{PC1}$','$\overline{H_{1635}}_{PC2}$','$m$','$b$']

file_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), '../docs/examples/transmission_ftir/NPZTXTFILES/RESULTS/AC4_OL49_021920_30x30_H2O_a.npz')
mcmc_npz = np.load(file_path)
Expand All @@ -101,9 +101,9 @@ def test_modelfit_nosavefile(self, mock_savefig):
pnames = ['B_mean','B_PC1','B_PC2','B_PC3','B_PC4','G1430_peak','G1430_std','G1430_amp',
'G1515_peak','G1515_std','G1515_amp','H1635_mean','H1635_PC1','H1635_PC2','m','b']

texnames = [r'$\overline{B}$',r'$\overline{B}_{PC1}$',r'$\overline{B}_{PC2}$',r'$\overline{B}_{PC3}$',r'$\overline{B}_{PC4}$',
r'$\mu_{1430}$',r'$\sigma_{1430}$',r'$a_{1430}$',r'$\mu_{1515}$',r'$\sigma_{1515}$',r'$a_{1515}$',
r'$\overline{H_{1635}}$',r'$\overline{H_{1635}}_{PC1}$',r'$\overline{H_{1635}}_{PC2}$',r'$m$',r'$b$']
texnames = ['$\overline{B}$','$\overline{B}_{PC1}$','$\overline{B}_{PC2}$','$\overline{B}_{PC3}$','$\overline{B}_{PC4}$',
'$\mu_{1430}$','$\sigma_{1430}$','$a_{1430}$','$\mu_{1515}$','$\sigma_{1515}$','$a_{1515}$',
'$\overline{H_{1635}}$','$\overline{H_{1635}}_{PC1}$','$\overline{H_{1635}}_{PC2}$','$m$','$b$']

file_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), '../docs/examples/transmission_ftir/NPZTXTFILES/RESULTS/AC4_OL49_021920_30x30_H2O_a.npz')
mcmc_npz = np.load(file_path)
Expand Down
32 changes: 16 additions & 16 deletions src/PyIRoGlass/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -586,9 +586,9 @@ def MCMC(data, uncert, indparams, log, savefile):
pnames = ['B_mean','B_PC1','B_PC2','B_PC3','B_PC4','G1430_peak','G1430_std','G1430_amp',
'G1515_peak','G1515_std','G1515_amp','H1635_mean','H1635_PC1','H1635_PC2','m','b']

texnames = [r'$\overline{B}$',r'$\overline{B}_{PC1}$',r'$\overline{B}_{PC2}$',r'$\overline{B}_{PC3}$',r'$\overline{B}_{PC4}$',
r'$\mu_{1430}$',r'$\sigma_{1430}$','$a_{1430}$',r'$\mu_{1515}$',r'$\sigma_{1515}$','$a_{1515}$',
r'$\overline{H_{1635}}$',r'$\overline{H_{1635}}_{PC1}$',r'$\overline{H_{1635}}_{PC2}$','$m$','$b$']
texnames = ['$\overline{B}$','$\overline{B}_{PC1}$','$\overline{B}_{PC2}$','$\overline{B}_{PC3}$','$\overline{B}_{PC4}$',
'$\mu_{1430}$','$\sigma_{1430}$','$a_{1430}$','$\mu_{1515}$','$\sigma_{1515}$','$a_{1515}$',
'$\overline{H_{1635}}$','$\overline{H_{1635}}_{PC1}$','$\overline{H_{1635}}_{PC2}$','$m$','$b$']


mc3_output = mc3.sample(data=data, uncert=uncert, func=func, params=params, indparams=indparams,
Expand Down Expand Up @@ -830,7 +830,7 @@ def Run_All_Spectra(dfs_dict, exportpath):
ax1.annotate("$\mathregular{OH^{-}_{4500}}$ Peak Height: " + f"{PH_4500_krige_M:.4f} ± {PH_4500_krige_STD:.4f}, S2N={STN_4500_M:.2f}", (0.025, 0.80), xycoords = 'axes fraction')
ax1.set_ylabel('Absorbance')
warnings.filterwarnings("ignore", category = UserWarning)
ax1.legend(['NIR Spectrum','_','_',r'$\mathregular{H_2O_{m, 5200}}$ Median Filtered','_','_',r'$\mathregular{OH^{-}_{4500}}$ Median Filtered','_','_',r'$\mathregular{H_2O_{m, 5200}}$ Baseline','_','_',r'$\mathregular{OH^{-}_{4500}}$ Baseline'], prop={'size': 10})
ax1.legend(['NIR Spectrum','_','_','$\mathregular{H_2O_{m, 5200}}$ Median Filtered','_','_','$\mathregular{OH^{-}_{4500}}$ Median Filtered','_','_','$\mathregular{H_2O_{m, 5200}}$ Baseline','_','_','$\mathregular{OH^{-}_{4500}}$ Baseline'], prop={'size': 10})
ax1.set_xlim([4200, 5400])
ax1.set_ylim([plotmin-0.075, plotmax+0.075])
ax1.invert_xaxis()
Expand All @@ -839,20 +839,20 @@ def Run_All_Spectra(dfs_dict, exportpath):
ax2 = plt.subplot2grid((2, 3), (1, 0))
ax2.plot(data_H2O5200_1.index, data_H2O5200_1['Subtracted_Peak'] - np.min(krige_output_5200_1['Absorbance']), 'k',
data_H2O5200_2.index, data_H2O5200_2['Subtracted_Peak'] - np.min(krige_output_5200_2['Absorbance']), 'k',
data_H2O5200_3.index, data_H2O5200_3['Subtracted_Peak'] - np.min(krige_output_5200_3['Absorbance']), 'k', label = r'$\mathregular{H_2O_{m, 5200}}$ Baseline Subtracted')
data_H2O5200_3.index, data_H2O5200_3['Subtracted_Peak'] - np.min(krige_output_5200_3['Absorbance']), 'k', label = '$\mathregular{H_2O_{m, 5200}}$ Baseline Subtracted')
ax2.plot(data_H2O4500_1.index, data_H2O4500_1['Subtracted_Peak'] - np.min(krige_output_4500_1['Absorbance']), 'k',
data_H2O4500_2.index, data_H2O4500_2['Subtracted_Peak'] - np.min(krige_output_4500_2['Absorbance']), 'k',
data_H2O4500_3.index, data_H2O4500_3['Subtracted_Peak'] - np.min(krige_output_4500_3['Absorbance']), 'k', label = r'$\mathregular{OH^{-}_{4500}}$ Baseline Subtracted')
data_H2O4500_3.index, data_H2O4500_3['Subtracted_Peak'] - np.min(krige_output_4500_3['Absorbance']), 'k', label = '$\mathregular{OH^{-}_{4500}}$ Baseline Subtracted')
ax2.plot(krige_output_5200_1.index, krige_output_5200_1['Absorbance'] - np.min(krige_output_5200_1['Absorbance']),
krige_output_5200_2.index, krige_output_5200_2['Absorbance'] - np.min(krige_output_5200_2['Absorbance']),
krige_output_5200_3.index, krige_output_5200_3['Absorbance'] - np.min(krige_output_5200_3['Absorbance']), label = r'$\mathregular{H_2O_{m, 5200}}$ Kriged Peak')
krige_output_5200_3.index, krige_output_5200_3['Absorbance'] - np.min(krige_output_5200_3['Absorbance']), label = '$\mathregular{H_2O_{m, 5200}}$ Kriged Peak')
ax2.plot(krige_output_4500_1.index, krige_output_4500_1['Absorbance'] - np.min(krige_output_4500_1['Absorbance']),
krige_output_4500_2.index, krige_output_4500_2['Absorbance'] - np.min(krige_output_4500_2['Absorbance']),
krige_output_4500_3.index, krige_output_4500_3['Absorbance'] - np.min(krige_output_4500_3['Absorbance']), label = r'$\mathregular{OH^{-}_{4500}}$ Kriged Peak')
krige_output_4500_3.index, krige_output_4500_3['Absorbance'] - np.min(krige_output_4500_3['Absorbance']), label = '$\mathregular{OH^{-}_{4500}}$ Kriged Peak')
ax2.set_xlabel('Wavenumber $(\mathregular{cm^{-1}})$')
ax2.set_ylabel('Absorbance')
warnings.filterwarnings("ignore", category = UserWarning)
ax2.legend([r'$\mathregular{H_2O_{m, 5200}}$ Baseline Subtracted','_','_',r'$\mathregular{OH^{-}_{4500}}$ Baseline Subtracted','_','_','_','_',r'$\mathregular{H_2O_{m, 5200}}$ Kriged','_','_',r'$\mathregular{OH^{-}_{4500}}$ Kriged'], prop={'size': 10})
ax2.legend(['$\mathregular{H_2O_{m, 5200}}$ Baseline Subtracted','_','_','$\mathregular{OH^{-}_{4500}}$ Baseline Subtracted','_','_','_','_','$\mathregular{H_2O_{m, 5200}}$ Kriged','_','_','$\mathregular{OH^{-}_{4500}}$ Kriged'], prop={'size': 10})
ax2.set_xlim([4200, 5400])
ax2.set_ylim([0, plotmax+0.05])
ax2.invert_xaxis()
Expand All @@ -862,7 +862,7 @@ def Run_All_Spectra(dfs_dict, exportpath):
plotmin = np.round(np.min(data[CO2_wn_low:CO2_wn_low+2750]['Absorbance'].to_numpy()), decimals = 0)
ax3 = plt.subplot2grid((2, 3), (0, 1), rowspan = 2)
ax3.plot(data.index, data['Absorbance'], 'k')
ax3.plot(data_H2O3550_1['Absorbance'].index, data_H2O3550_1['BL_MIR_3550'], 'silver', label = r'$\mathregular{H_2O_{t, 3550}}$ Baseline')
ax3.plot(data_H2O3550_1['Absorbance'].index, data_H2O3550_1['BL_MIR_3550'], 'silver', label = '$\mathregular{H_2O_{t, 3550}}$ Baseline')
ax3.plot(data_H2O3550_2['Absorbance'].index, data_H2O3550_2['BL_MIR_3550'], 'silver')
ax3.plot(data_H2O3550_3['Absorbance'].index, data_H2O3550_3['BL_MIR_3550'], 'silver')
ax3.plot(plot_output_3550_1.index, (plot_output_3550_1['Subtracted_Peak_Hat']+plot_output_3550_1['BL_MIR_3550']), 'r', linewidth = 2)
Expand Down Expand Up @@ -897,9 +897,9 @@ def Run_All_Spectra(dfs_dict, exportpath):
Baseline_Array_Plot[i, :] = Baseline_Array[i, :] + Linearray
plt.plot(Wavenumber, Baseline_Array_Plot[i, :], 'dimgray', linewidth = 0.25)
ax4.plot(Wavenumber, spec_mc3, 'tab:blue', linewidth = 2.5, label = 'FTIR Spectrum')
ax4.plot(Wavenumber, H1635_SOLVE, 'tab:orange', linewidth = 1.5, label = r'$\mathregular{H_2O_{m, 1635}}$')
ax4.plot(Wavenumber, CO2P1515_SOLVE, 'tab:green', linewidth = 2.5, label = r'$\mathregular{CO_{3, 1515}^{2-}}$')
ax4.plot(Wavenumber, CO2P1430_SOLVE, 'tab:red', linewidth = 2.5, label = r'$\mathregular{CO_{3, 1430}^{2-}}$')
ax4.plot(Wavenumber, H1635_SOLVE, 'tab:orange', linewidth = 1.5, label = '$\mathregular{H_2O_{m, 1635}}$')
ax4.plot(Wavenumber, CO2P1515_SOLVE, 'tab:green', linewidth = 2.5, label = '$\mathregular{CO_{3, 1515}^{2-}}$')
ax4.plot(Wavenumber, CO2P1430_SOLVE, 'tab:red', linewidth = 2.5, label = '$\mathregular{CO_{3, 1430}^{2-}}$')
ax4.plot(Wavenumber, Carbonate(mc3_output['meanp'], Wavenumber, PCmatrix, Peak_1635_PCmatrix, Nvectors), 'tab:purple', linewidth = 1.5, label = 'MC$^\mathregular{3}$ Fit')
ax4.plot(Wavenumber, Baseline_Solve_BP, 'k', linewidth = 1.5, label = 'Baseline')
ax4.annotate("$\mathregular{H_2O_{m, 1635}}$ Peak Height: " + f"{H2OmP1635_BP[0]:.3f} ± {H2OmP1635_STD[0]:.3f}", (0.025, 0.95), xycoords = 'axes fraction')
Expand All @@ -914,9 +914,9 @@ def Run_All_Spectra(dfs_dict, exportpath):
plt.savefig(path_beg + figurepath + files + '.pdf')
plt.close('all')

texnames = [r'$\overline{B}$',r'$\overline{B}_{PC1}$',r'$\overline{B}_{PC2}$',r'$\overline{B}_{PC3}$',r'$\overline{B}_{PC4}$',
r'$\mu_{1430}$',r'$\sigma_{1430}$','$a_{1430}$',r'$\mu_{1515}$',r'$\sigma_{1515}$','$a_{1515}$',
r'$\overline{H_{1635}}$',r'$\overline{H_{1635}}_{PC1}$',r'$\overline{H_{1635}}_{PC2}$','$m$','$b$']
texnames = ['$\overline{B}$','$\overline{B}_{PC1}$','$\overline{B}_{PC2}$','$\overline{B}_{PC3}$','$\overline{B}_{PC4}$',
'$\mu_{1430}$','$\sigma_{1430}$','$a_{1430}$','$\mu_{1515}$','$\sigma_{1515}$','$a_{1515}$',
'$\overline{H_{1635}}$','$\overline{H_{1635}}_{PC1}$','$\overline{H_{1635}}_{PC2}$','$m$','$b$']

posterior, zchain, zmask = mu.burn(mc3_output)
post = mp.Posterior(posterior, texnames)
Expand Down

0 comments on commit 487a2d3

Please sign in to comment.