This page was generated from docs/Examples/Fitting_Fermi_Diads/Example1a_Gas_Cell_Calibration/Step3_FitAll_Together.ipynb. Interactive online version: Binder badge.

Python Notebook Download

3. Fitting diads once you have groups

  • Once you have divided your diads into groups based on strengths, you need to tweak the fit parameters for each group

  • Then you can loop through all files in a given group and automatically fit the spectra

[4]:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import joblib
import DiadFit as pf
pf.__version__
[4]:
'0.0.82'

Specifying filetype, and folder as before

[5]:
# This specifies what file type your Raman exported in.
meta_path, spectra_path, spectra_filetype, prefix, str_prefix, spectra_file_ext, meta_file_ext, TruPower=pf.get_settings()

Load in data and fit parameters

  • This loads in the dataframes of the fit parameters you saved in the other file, by group

  • At this point you select what group you want to fit (batch = ‘Weak’, ‘Medium’ or ‘Strong’). After running through the entire notebook for one group, come back up here to fit a second group.

[6]:
## load dataframes and numpy arrays
np_x = joblib.load('np_x.sav')

# Select the group you want to fit ('Weak', 'Medium', 'Strong')
batch='Strong' # Options are Weak, Medium, Strong

if batch=='Weak':
    GroupN_df=joblib.load('Weak_df.sav')
if batch=='Medium':
    GroupN_df=joblib.load('Medium_df.sav')
if batch=='Strong':
    GroupN_df=joblib.load('Strong_df.sav')

Now load one file from this group to tweak parameters for

[7]:
Diad_Files =GroupN_df['filename']
i=0

Lets plot the diad to have a look at it

[8]:
plot1=pf.plot_diad(path=spectra_path, filename=Diad_Files[i], filetype=spectra_filetype)
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_9_0.png

Now lets inspect the diads and get their approximate positions

  • As with generic peak, you can exclude 2 segments (e.g. around cosmic rays)

  • You then specify how many peaks you want to fit on each diad. 1 means just the strong peak, 2 hotbands, and 3 for Diad2 would also fit the C13 peak if present.

  • The identify_diad_peaks then uses scipy findpeaks to identify the positions of the 2 diads, and any other peaks the user asks for. These are saved, and fed into the later functions for peak fitting.

Choose a model for fitting all peaks

  • Option of Voigt or PseudoVoigt. We recomend PsuedoVoigt

[9]:
model_name='PseudoVoigtModel'
[14]:
pf.diad1_fit_config(model_name='GaussianModel')
[14]:
diad1_fit_config(model_name='GaussianModel', fit_peaks=2, N_poly_bck_diad1=1, lower_bck_diad1=(1180, 1220), upper_bck_diad1=(1300, 1350), fit_gauss=False, gauss_amp=1000, diad_sigma=0.2, diad_sigma_min_allowance=0.2, diad_sigma_max_allowance=5, diad_prom=100, HB_prom=20, x_range_baseline=75, y_range_baseline=100, dpi=200, x_range_residual=20, return_other_params=False)
[11]:
help(pf.diad1_fit_config())
Help on diad1_fit_config in module DiadFit.diads object:

class diad1_fit_config(builtins.object)
 |  diad1_fit_config(model_name: str = 'PseudoVoigtModel', fit_peaks: int = 2, N_poly_bck_diad1: float = 1, lower_bck_diad1: Tuple[float, float] = (1180, 1220), upper_bck_diad1: Tuple[float, float] = (1300, 1350), fit_gauss: Optional[bool] = False, gauss_amp: Optional[float] = 1000, diad_sigma: float = 0.2, diad_sigma_min_allowance: float = 0.2, diad_sigma_max_allowance: float = 5, diad_prom: float = 100, HB_prom: float = 20, x_range_baseline: float = 75, y_range_baseline: float = 100, dpi: float = 200, x_range_residual: float = 20, return_other_params: bool = False) -> None
 |
 |  Configuration class for fitting Diad 1
 |
 |  This class stores configuration parameters for fitting Diad 1 and associated peaks.
 |  The class allows for easy customization of the fitting process.
 |
 |  Attributes:
 |      model_name (str): Default 'PseudoVoigtModel'.
 |          Model name for peak fitting. Choose from
 |          'PseudoVoigtModel', 'VoigtModel', 'GaussianModel', 'LorentzianModel', etc.
 |
 |      fit_peaks (int): Default 2
 |          Number of peaks to fit. 2 = Diad + HB, 1 = Diad.
 |
 |      N_poly_bck_diad1 (float): Default = 1
 |          Degree of polynomial for background subtraction. Default 1.
 |
 |      lower_bck_diad1 (Tuple[float, float]):
 |          Lower boundary for background fitting in cm-1. Default (1180, 1220)
 |
 |      upper_bck_diad1 (Tuple[float, float]):
 |          Upper boundary for background fitting in cm-1 Default (1300, 1350).
 |
 |      fit_gauss (Optional[bool]): Default True
 |          Fit a Gaussian peak if True. Helpful for very elevated spectra
 |
 |      gauss_amp (Optional[float]):  Default = 1000
 |          Gaussian peak amplitude if `fit_gauss` is True. Default 1000.
 |          We find 2X HB intensity is a good guess on many instruments
 |
 |      diad_sigma (float): Default = 0.2
 |          Sigma of diad peak.
 |
 |      diad_sigma_min_allowance (float): Default = 0.2
 |          Tolerance on entered sigma. Means minimum allowed sigma is 0.2*sigma
 |
 |      diad_sigma_max_allowance (float): Default = 5
 |          Tolerance on entered sigma. Means minimum allowed sigma is 5*sigma
 |
 |
 |      diad_prom (float): Default = 100
 |          Peak amplitude for of the diad. Suggest users obtain from the estimated peak parameter dataframe
 |
 |      HB_prom (float):  Default = 20
 |          Peak amplitude for HB. Suggest users obtain from the estimated peak parameter dataframe
 |
 |      HB_sigma_min_allowance (float): Default = 0.05
 |          Means HB sigma cant be less than 0.05* sigma of first fitting peak (diad).
 |
 |      HB_sigma_max_allowance (float): Default = 3:
 |          Means HB sigma cant exceed 3* sigma of first fitting peak (diad)
 |
 |      HB_amp_min_allowance (float): Default =0.01
 |          Means HB amplitude cant be less than 0.01*amplitude of first fitted peak (diad).
 |
 |      HB_amp_max_allowance (float): Default = 1
 |          Means HB amplitude cant be more than 1*amplitude of first fitted peak (diad).
 |
 |      x_range_baseline (float): Default 75.
 |          Means that x axis of baseline shows diad position +- 75 x units.
 |
 |      y_range_baseline (float): Y-axis range for baseline display. Default 100.
 |          Shows a y axis scale that is 100 y units above the minimum baseline value, and 100 units above the maximum value
 |
 |      dpi (float): Default 200
 |          Figure resolution in dots per inch. Default 200.
 |
 |      x_range_residual (float):  Default 20.
 |          Shows x values +-20 either side of the diad peak position in the residual plot.
 |
 |      return_other_params (bool): Return non-fitted parameters if True. Default False.
 |
 |  Methods:
 |      update_par(**kwargs):
 |          Updates configuration parameters. Raises AttributeError for unknown attributes.
 |
 |  Methods defined here:
 |
 |  __eq__(self, other)
 |      Return self==value.
 |
 |  __init__(self, model_name: str = 'PseudoVoigtModel', fit_peaks: int = 2, N_poly_bck_diad1: float = 1, lower_bck_diad1: Tuple[float, float] = (1180, 1220), upper_bck_diad1: Tuple[float, float] = (1300, 1350), fit_gauss: Optional[bool] = False, gauss_amp: Optional[float] = 1000, diad_sigma: float = 0.2, diad_sigma_min_allowance: float = 0.2, diad_sigma_max_allowance: float = 5, diad_prom: float = 100, HB_prom: float = 20, x_range_baseline: float = 75, y_range_baseline: float = 100, dpi: float = 200, x_range_residual: float = 20, return_other_params: bool = False) -> None
 |      Initialize self.  See help(type(self)) for accurate signature.
 |
 |  __repr__(self)
 |      Return repr(self).
 |
 |  update_par(self, **kwargs)
 |
 |  ----------------------------------------------------------------------
 |  Data descriptors defined here:
 |
 |  __dict__
 |      dictionary for instance variables (if defined)
 |
 |  __weakref__
 |      list of weak references to the object (if defined)
 |
 |  ----------------------------------------------------------------------
 |  Data and other attributes defined here:
 |
 |  HB_amp_max_allowance = 1
 |
 |  HB_amp_min_allowance = 0.01
 |
 |  HB_prom = 20
 |
 |  HB_sigma_max_allowance = 3
 |
 |  HB_sigma_min_allowance = 0.05
 |
 |  N_poly_bck_diad1 = 1
 |
 |  __annotations__ = {'HB_prom': <class 'float'>, 'N_poly_bck_diad1': <cl...
 |
 |  __dataclass_fields__ = {'HB_prom': Field(name='HB_prom',type=<class 'f...
 |
 |  __dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,or...
 |
 |  __hash__ = None
 |
 |  __match_args__ = ('model_name', 'fit_peaks', 'N_poly_bck_diad1', 'lowe...
 |
 |  diad_prom = 100
 |
 |  diad_sigma = 0.2
 |
 |  diad_sigma_max_allowance = 5
 |
 |  diad_sigma_min_allowance = 0.2
 |
 |  dpi = 200
 |
 |  fit_gauss = False
 |
 |  fit_peaks = 2
 |
 |  gauss_amp = 1000
 |
 |  lower_bck_diad1 = (1180, 1220)
 |
 |  model_name = 'PseudoVoigtModel'
 |
 |  return_other_params = False
 |
 |  upper_bck_diad1 = (1300, 1350)
 |
 |  x_range_baseline = 75
 |
 |  x_range_residual = 20
 |
 |  y_range_baseline = 100

Fit Diad 1

  • Tweak the parameters in the config files for each group. E.g. how many peaks (fit_peaks), the background positions, the sigma of the diad, and whether or not you want a gaussian background

[7]:
diad_id_config=pf.diad_id_config(height=50, exclude_range1=[1308, 1309])
diad_id_config

if batch=='Weak':
    diad1_fit_config_init=pf.diad1_fit_config(
    model_name=model_name, fit_peaks=2,
    N_poly_bck_diad1=2, lower_bck_diad1=(1180, 1250),
    upper_bck_diad1=(1300, 1350),
    diad_sigma=0.6,
    x_range_residual=10, x_range_baseline=30,
     y_range_baseline=100,
    HB_prom=GroupN_df['HB1_abs_prom'].iloc[i],
    diad_prom=GroupN_df['Diad1_abs_prom'].iloc[i])
    diad1_fit_config_init

if batch=='Medium':
    diad1_fit_config_init=pf.diad1_fit_config(
    model_name=model_name, fit_peaks=2,
    N_poly_bck_diad1=2, lower_bck_diad1=(1180, 1240),
    upper_bck_diad1=(1315, 1350),
    diad_sigma=0.6,
    x_range_residual=10, x_range_baseline=30,
     y_range_baseline=100,
    HB_prom=GroupN_df['HB1_abs_prom'].iloc[i],
    diad_prom=GroupN_df['Diad1_abs_prom'].iloc[i])
    diad1_fit_config_init

if batch=='Strong':
    diad1_fit_config_init=pf.diad1_fit_config(
    fit_gauss=True, gauss_amp= 2*GroupN_df['HB1_abs_prom'].iloc[i],
    model_name=model_name, fit_peaks=2,
    N_poly_bck_diad1=1, lower_bck_diad1=(1180, 1220),
    upper_bck_diad1=(1330, 1350),
    diad_sigma=0.6,
    x_range_residual=10, x_range_baseline=30,
     y_range_baseline=1000,
    HB_prom=GroupN_df['HB1_abs_prom'].iloc[i],
    diad_prom=GroupN_df['Diad1_abs_prom'].iloc[i])
diad1_fit_config_init
[7]:
diad1_fit_config(model_name='PseudoVoigtModel', fit_peaks=2, N_poly_bck_diad1=1, lower_bck_diad1=(1180, 1220), upper_bck_diad1=(1330, 1350), fit_gauss=True, gauss_amp=389.97931848844496, diad_sigma=0.6, diad_sigma_min_allowance=0.2, diad_sigma_max_allowance=5, diad_prom=2012.4019389914029, HB_prom=194.98965924422248, x_range_baseline=30, y_range_baseline=1000, dpi=200, x_range_residual=10, return_other_params=False)

See what these fit parameters look like for diad1

[8]:
Diad1_fit=pf.fit_diad_1_w_bck(config1=diad1_fit_config_init,
config2=diad_id_config,
path=spectra_path, filename=Diad_Files.iloc[0],
filetype=spectra_filetype, plot_figure=True, close_figure=False,
Diad_pos=GroupN_df['Diad1_pos'].iloc[i],
HB_pos=GroupN_df['HB1_pos'].iloc[i])
Diad1_fit
[8]:
Diad1_Combofit_Cent Diad1_Voigt_Cent Diad1_cent_err Diad1_Voigt_Area Diad1_Voigt_Sigma Diad1_Voigt_Gamma HB1_Cent HB1_Area HB1_Sigma Diad1_Combofit_Height ... Diad1_fwhm Diad1_Gauss_Cent Diad1_Gauss_Area Diad1_Gauss_Sigma Diad1_refit Diad1_Asym50 Diad1_Asym70 Diad1_Yuan2017_sym_factor Diad1_Remigi2021_BSF Diad1_PDF_Model
0 1284.782189 1284.782339 0.002067 5982.664618 1.184251 0 1264.770311 883.052844 1.654391 2016.844611 ... 2.368502 1277.806979 699.337252 23.869756 Flagged Warnings: 1.039244 1.067524 0.09295 0.001174 PseudoVoigtModel

1 rows × 22 columns

../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_18_1.png

Update the sigma

  • The sigma parameter varies quite a lot based on the splitting. Best to update your first guess with what you found for the example file above

[9]:
diad1_fit_config2=diad1_fit_config_init

Fit diad2

[10]:
if batch=='Weak':
    diad2_fit_config_init=pf.diad2_fit_config(model_name=model_name,
    fit_peaks=2, upper_bck_diad2=(1430, 1480),
    lower_bck_diad2=(1310, 1360), diad_sigma=0.4,  N_poly_bck_diad2=1,
    x_range_residual=30, y_range_baseline=100,
    x_range_baseline=30,
    HB_prom=GroupN_df['HB2_abs_prom'].iloc[i],
    diad_prom=GroupN_df['Diad2_abs_prom'].iloc[i])
    diad2_fit_config_init

if batch=='Medium':
    diad2_fit_config_init=pf.diad2_fit_config(model_name=model_name,
    fit_peaks=3, fit_gauss=True, gauss_amp= 2*GroupN_df['HB2_abs_prom'].iloc[i],
    lower_bck_diad2=(1310, 1350), diad_sigma=1,  N_poly_bck_diad2=2,
    x_range_residual=30, y_range_baseline=100,
    x_range_baseline=30,
    HB_prom=GroupN_df['HB2_abs_prom'].iloc[i],
    diad_prom=GroupN_df['Diad2_abs_prom'].iloc[i],
    C13_prom=GroupN_df['C13_abs_prom'].iloc[i])
    diad2_fit_config_init

if batch=='Strong':
    diad2_fit_config_init=pf.diad2_fit_config(model_name=model_name,
    fit_peaks=3, fit_gauss=True, gauss_amp= 2*GroupN_df['HB2_abs_prom'].iloc[i],
    lower_bck_diad2=(1310, 1340), diad_sigma=1,  N_poly_bck_diad2=2,
    x_range_residual=30, y_range_baseline=1000,
    x_range_baseline=30,
    HB_prom=GroupN_df['HB2_abs_prom'].iloc[i],
    diad_prom=GroupN_df['Diad2_abs_prom'].iloc[i],
    C13_prom=GroupN_df['C13_abs_prom'].iloc[i])
    diad2_fit_config_init
diad2_fit_config_init
[10]:
diad2_fit_config(model_name='PseudoVoigtModel', fit_peaks=3, N_poly_bck_diad2=2, lower_bck_diad2=(1310, 1340), upper_bck_diad2=(1440, 1470), fit_gauss=True, gauss_amp=725.2013981447026, diad_sigma=1, diad_sigma_min_allowance=0.2, diad_sigma_max_allowance=5, diad_prom=4046.9334876922258, HB_prom=362.6006990723513, x_range_baseline=30, y_range_baseline=1000, plot_figure=True, dpi=200, x_range_residual=30, return_other_params=False, C13_prom=65.32714727758116)

See what these fit parameters look like for diad2

[11]:
Diad2_fit=pf.fit_diad_2_w_bck(config1=diad2_fit_config_init,
    config2=diad_id_config,
path=spectra_path, filename=Diad_Files[i], filetype=spectra_filetype,
plot_figure=True, close_figure=False,
Diad_pos=GroupN_df['Diad2_pos'].iloc[i],
HB_pos=GroupN_df['HB2_pos'].iloc[i],
C13_pos=GroupN_df['C13_pos'].iloc[i])
Diad2_fit.to_clipboard(excel=True)
Diad2_fit
[11]:
Diad2_Combofit_Cent Diad2_Voigt_Cent Diad2_cent_err Diad2_Voigt_Area Diad2_Voigt_Sigma Diad2_Voigt_Gamma HB2_Cent HB2_Area HB2_Sigma C13_Cent ... Diad2_fwhm Diad2_Gauss_Cent Diad2_Gauss_Area Diad2_Gauss_Sigma Diad2_refit Diad2_Asym50 Diad2_Asym70 Diad2_Yuan2017_sym_factor Diad2_Remigi2021_BSF Diad2_PDF_Model
0 1388.284861 1388.284811 0.001369 9768.420394 0.918253 0 1409.684413 1298.423776 1.309328 1370.209842 ... 1.836506 1388.869255 643.840872 22.872435 Flagged Warnings: 1.027829 1.036486 0.051109 0.000449 PseudoVoigtModel

1 rows × 25 columns

../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_24_1.png

Loop over all the files in the group

  • This will loop over all the

[12]:
from tqdm import tqdm
plot_figure=True# If False, Means doesnt have to make figures, lot faster.
close_figure=False # If True, wont show figures in notebook, but will still save them in a folder
Diad_Files_i=Diad_Files
df_Merge = pd.DataFrame([])
for i in tqdm(range(0, len(Diad_Files))): #
    tqdm.write(f"Processing file: {Diad_Files[i]}")


    # For diad1, config file like you had in the previous.
    # Only really used to exclude a range (say your spectra has a known spec)
    diad_id_config=pf.diad_id_config(exclude_range1=[1308, 1309])

    # Here, the prominence are taken from the fitting in the last notebook
    diad1_fit_config2.HB_prom=GroupN_df['HB1_abs_prom'].iloc[i]
    diad1_fit_config2.diad_prom=GroupN_df['Diad1_abs_prom'].iloc[i]
    diad1_fit_config2.gauss_amp=2*GroupN_df['HB1_abs_prom'].iloc[i]

    Diad1_fit=pf.fit_diad_1_w_bck(config1=diad1_fit_config2,
    config2=diad_id_config, path=spectra_path, filename=GroupN_df['filename'].iloc[i],
    filetype=spectra_filetype, plot_figure=plot_figure, close_figure=close_figure,
    Diad_pos=GroupN_df['Diad1_pos'].iloc[i],
    HB_pos=GroupN_df['HB1_pos'].iloc[i])

    ## Same for diad2, just also has a C13 peak
    diad2_fit_config_init.HB_prom=GroupN_df['HB2_abs_prom'].iloc[i]
    diad2_fit_config_init.diad_prom=GroupN_df['Diad2_abs_prom'].iloc[i]
    diad2_fit_config_init.gauss_amp= 2*GroupN_df['HB2_abs_prom'].iloc[i]
    diad2_fit_config_init.C13_prom=GroupN_df['C13_abs_prom'].iloc[i]


    Diad2_fit=pf.fit_diad_2_w_bck(config1=diad2_fit_config_init,
        config2=diad_id_config,
    path=spectra_path, filename=GroupN_df['filename'].iloc[i],
    filetype=spectra_filetype,
    plot_figure=plot_figure, close_figure=close_figure,
    Diad_pos=GroupN_df['Diad2_pos'].iloc[i],
    HB_pos=GroupN_df['HB2_pos'].iloc[i],
    C13_pos=GroupN_df['C13_pos'].iloc[i])

    # This combines the outputs into a single dataframe
    data=pf.combine_diad_outputs(filename=GroupN_df['filename'].iloc[i], prefix=prefix,
    Diad1_fit=Diad1_fit, path=spectra_path,
    Diad2_fit=Diad2_fit)



    df_Merge = pd.concat([df_Merge, data], axis=0).reset_index(drop=True)

  0%|          | 0/40 [00:00<?, ?it/s]
Processing file: FG04_31_MI3 (1)_CRR_DiadFit.txt
  2%|▎         | 1/40 [00:03<02:32,  3.91s/it]
Processing file: FG04_31_MI4 (1).txt
  5%|▌         | 2/40 [00:07<02:18,  3.63s/it]
Processing file: POC1.txt
  8%|▊         | 3/40 [00:11<02:15,  3.65s/it]
Processing file: POC10.txt
 10%|█         | 4/40 [00:14<02:09,  3.60s/it]
Processing file: POC11.txt
 12%|█▎        | 5/40 [00:18<02:13,  3.82s/it]
Processing file: POC12_CRR_DiadFit.txt
 15%|█▌        | 6/40 [00:21<02:03,  3.62s/it]
Processing file: POC13.txt
 18%|█▊        | 7/40 [00:25<01:59,  3.63s/it]
Processing file: POC14.txt
 20%|██        | 8/40 [00:29<02:02,  3.82s/it]
Processing file: POC15.txt
 22%|██▎       | 9/40 [00:32<01:47,  3.48s/it]
Processing file: POC16.txt
 25%|██▌       | 10/40 [00:35<01:41,  3.38s/it]
Processing file: POC17.txt
c:\users\penny\box\berkeley_new\diadfit_outer\src\DiadFit\diads.py:3043: RuntimeWarning: More than 20 figures have been opened. Figures created through the pyplot interface (`matplotlib.pyplot.figure`) are retained until explicitly closed and may consume too much memory. (To control this warning, see the rcParam `figure.max_open_warning`). Consider using `matplotlib.pyplot.close()`.
  fig,axes=plt.subplot_mosaic(mosaic=figure_mosaic, figsize=(12, 16))
 28%|██▊       | 11/40 [00:38<01:31,  3.16s/it]
Processing file: POC18.txt
refit attempt 1
 30%|███       | 12/40 [00:41<01:28,  3.15s/it]
Processing file: POC19.txt
 32%|███▎      | 13/40 [00:44<01:22,  3.06s/it]
Processing file: POC2.txt
 35%|███▌      | 14/40 [00:48<01:24,  3.24s/it]
Processing file: POC20.txt
 38%|███▊      | 15/40 [00:51<01:19,  3.17s/it]
Processing file: POC21.txt
 40%|████      | 16/40 [00:53<01:14,  3.09s/it]
Processing file: POC22_CRR_DiadFit.txt
 42%|████▎     | 17/40 [00:56<01:10,  3.07s/it]
Processing file: POC23.txt
 45%|████▌     | 18/40 [00:59<01:06,  3.01s/it]
Processing file: POC24.txt
 48%|████▊     | 19/40 [01:03<01:04,  3.07s/it]
Processing file: POC25_CRR_DiadFit.txt
 50%|█████     | 20/40 [01:06<01:02,  3.13s/it]
Processing file: POC26.txt
 52%|█████▎    | 21/40 [01:09<00:58,  3.06s/it]
Processing file: POC27_CRR_DiadFit.txt
 55%|█████▌    | 22/40 [01:12<00:57,  3.19s/it]
Processing file: POC28.txt
 57%|█████▊    | 23/40 [01:15<00:52,  3.08s/it]
Processing file: POC29.txt
 60%|██████    | 24/40 [01:19<00:52,  3.30s/it]
Processing file: POC3.txt
 62%|██████▎   | 25/40 [01:22<00:49,  3.29s/it]
Processing file: POC30.txt
 65%|██████▌   | 26/40 [01:25<00:44,  3.20s/it]
Processing file: POC31.txt
 68%|██████▊   | 27/40 [01:35<01:06,  5.08s/it]
Processing file: POC32.txt
 70%|███████   | 28/40 [01:38<00:55,  4.61s/it]
Processing file: POC33.txt
 72%|███████▎  | 29/40 [01:42<00:48,  4.44s/it]
Processing file: POC34.txt
 75%|███████▌  | 30/40 [01:49<00:51,  5.14s/it]
Processing file: POC35.txt
 78%|███████▊  | 31/40 [01:53<00:43,  4.87s/it]
Processing file: POC36_CRR_DiadFit.txt
 80%|████████  | 32/40 [01:57<00:36,  4.58s/it]
Processing file: POC37.txt
 82%|████████▎ | 33/40 [02:00<00:27,  3.98s/it]
Processing file: POC38_CRR_DiadFit.txt
 85%|████████▌ | 34/40 [02:04<00:24,  4.05s/it]
Processing file: POC4_CRR_DiadFit.txt
 88%|████████▊ | 35/40 [02:06<00:18,  3.63s/it]
Processing file: POC5.txt
 90%|█████████ | 36/40 [02:09<00:13,  3.29s/it]
Processing file: POC6_CRR_DiadFit.txt
 92%|█████████▎| 37/40 [02:12<00:09,  3.08s/it]
Processing file: POC7_CRR_DiadFit.txt
 95%|█████████▌| 38/40 [02:14<00:05,  2.95s/it]
Processing file: POC8.txt
 98%|█████████▊| 39/40 [02:17<00:02,  2.96s/it]
Processing file: POC9.txt
100%|██████████| 40/40 [02:21<00:00,  3.53s/it]
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_81.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_82.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_83.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_84.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_85.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_86.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_87.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_88.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_89.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_90.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_91.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_92.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_93.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_94.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_95.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_96.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_97.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_98.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_99.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_100.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_101.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_102.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_103.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_104.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_105.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_106.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_107.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_108.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_109.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_110.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_111.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_112.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_113.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_114.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_115.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_116.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_117.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_118.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_119.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_120.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_121.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_122.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_123.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_124.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_125.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_126.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_127.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_128.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_129.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_130.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_131.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_132.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_133.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_134.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_135.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_136.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_137.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_138.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_139.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_140.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_141.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_142.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_143.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_144.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_145.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_146.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_147.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_148.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_149.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_150.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_151.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_152.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_153.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_154.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_155.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_156.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_157.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_158.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_159.png
../../../_images/Examples_Fitting_Fermi_Diads_Example1a_Gas_Cell_Calibration_Step3_FitAll_Together_27_160.png
[13]:
# Save parameters to excel
combo=df_Merge

if batch=='Weak':
    combo.to_excel('Weak_Diads.xlsx', index=False)
if batch=='Medium':
    combo.to_excel('Medium_Diads.xlsx', index=False)
if batch=='Strong':
    combo.to_excel('Strong_Diads.xlsx', index=False)
[14]:
combo
[14]:
filename Splitting Split_σ Diad1_Combofit_Cent Diad1_cent_err Diad1_Combofit_Height Diad1_Voigt_Cent Diad1_Voigt_Area Diad1_Voigt_Sigma Diad1_Residual ... Diad1_Asym50 Diad1_Asym70 Diad1_Yuan2017_sym_factor Diad1_Remigi2021_BSF Diad2_Asym50 Diad2_Asym70 Diad2_Yuan2017_sym_factor Diad2_Remigi2021_BSF Diad1_PDF_Model Diad2_PDF_Model
0 FG04_31_MI3 (1)_CRR_DiadFit 103.502472 0.002479 1284.782189 0.002067 2016.844611 1284.782339 5982.664618 1.184251 3.979666 ... 1.039244 1.067524 0.092950 0.001174 1.027829 1.036486 0.051109 0.000449 PseudoVoigtModel PseudoVoigtModel
1 FG04_31_MI4 (1) 103.709921 0.002716 1284.338717 0.002301 921.578580 1284.338767 2757.717719 1.149527 1.973458 ... 1.000000 1.057359 0.000000 0.002495 1.007407 1.006667 0.013552 0.000986 PseudoVoigtModel PseudoVoigtModel
2 POC1 104.947850 0.001623 1281.782853 0.001405 19925.591779 1281.782803 59223.825265 1.072208 22.259595 ... 1.065916 1.079096 0.141352 0.000108 1.038017 1.036952 0.078457 0.000054 PseudoVoigtModel PseudoVoigtModel
3 POC10 104.306739 0.001693 1283.013429 0.001510 3840.009480 1283.013379 11741.225881 1.134571 5.057416 ... 1.008929 1.032051 0.020260 0.000591 1.042179 1.027295 0.082247 0.000255 PseudoVoigtModel PseudoVoigtModel
4 POC11 104.250666 0.001991 1283.138753 0.001831 3180.585088 1283.138803 9823.987216 1.167960 4.487365 ... 1.024818 1.050847 0.057972 0.000734 1.042857 1.036432 0.082636 0.000298 PseudoVoigtModel PseudoVoigtModel
5 POC12_CRR_DiadFit 104.163684 0.001728 1283.321213 0.001539 4283.682570 1283.321263 13368.448742 1.188387 5.068715 ... 1.056851 1.060797 0.135123 0.000555 1.007018 1.009950 0.013583 0.000222 PseudoVoigtModel PseudoVoigtModel
6 POC13 104.134046 0.001671 1283.384610 0.001466 4011.284262 1283.384660 12619.856036 1.197456 4.509645 ... 1.028571 1.040165 0.068426 0.000597 1.007005 1.001236 0.013592 0.000235 PseudoVoigtModel PseudoVoigtModel
7 POC14 104.108371 0.001674 1283.442762 0.001422 3719.983549 1283.442812 11830.425690 1.211482 4.361908 ... 1.025388 1.032454 0.061514 0.000651 1.017668 1.015000 0.034166 0.000251 PseudoVoigtModel PseudoVoigtModel
8 POC15 104.068362 0.001568 1283.528756 0.001306 3486.272395 1283.528806 11077.108501 1.212768 3.822150 ... 1.005563 1.012072 0.013494 0.000696 1.021164 1.015056 0.040943 0.000270 PseudoVoigtModel PseudoVoigtModel
9 POC16 104.026014 0.001623 1283.620048 0.001325 3195.985921 1283.620098 10144.318897 1.227720 3.585005 ... 1.012414 1.031219 0.030481 0.000768 1.019332 1.020075 0.037489 0.000294 PseudoVoigtModel PseudoVoigtModel
10 POC17 103.960947 0.001381 1283.770160 0.001008 2937.201668 1283.770310 9334.043500 1.237341 2.848954 ... 1.004104 1.017875 0.010156 0.000843 1.040780 1.015038 0.078930 0.000319 PseudoVoigtModel PseudoVoigtModel
11 POC18 103.872386 0.001882 1283.955808 0.001223 2387.793630 1283.955958 7618.822138 1.245498 2.784166 ... 1.006784 1.006897 0.016900 0.001043 1.021201 1.031888 0.040824 0.000389 PseudoVoigtModel PseudoVoigtModel
12 POC19 103.765421 0.002126 1284.202602 0.001699 2091.485624 1284.202752 6544.093516 1.232451 3.070874 ... 1.034819 1.072091 0.085825 0.001179 1.041818 1.055191 0.079338 0.000442 PseudoVoigtModel PseudoVoigtModel
13 POC2 104.886810 0.001714 1281.888984 0.001501 30344.970353 1281.888934 89788.656402 1.071560 33.728716 ... 1.067633 1.075964 0.144945 0.000071 1.031405 1.024194 0.064466 0.000035 PseudoVoigtModel PseudoVoigtModel
14 POC20 103.668664 0.002511 1284.419204 0.002130 1863.782164 1284.419354 5683.627843 1.207406 3.084998 ... 1.045714 1.079533 0.110391 0.001296 1.012821 1.029372 0.023783 0.000485 PseudoVoigtModel PseudoVoigtModel
15 POC21 103.600199 0.002697 1284.568851 0.002304 2587.344613 1284.568901 7713.756556 1.159981 4.823699 ... 1.110940 1.121924 0.257376 0.000897 1.015038 1.032653 0.027257 0.000346 PseudoVoigtModel PseudoVoigtModel
16 POC22_CRR_DiadFit 103.546489 0.002895 1284.689886 0.002565 2484.130468 1284.689936 7246.245263 1.124015 4.917034 ... 1.132686 1.140209 0.298282 0.000905 1.034749 1.000000 0.061653 0.000360 PseudoVoigtModel PseudoVoigtModel
17 POC23 103.503635 0.002845 1284.813735 0.002449 2387.182877 1284.813785 6757.475099 1.106078 4.692765 ... 1.082935 1.111111 0.183464 0.000927 1.060362 1.069264 0.104385 0.000362 PseudoVoigtModel PseudoVoigtModel
18 POC24 103.454897 0.002833 1284.906053 0.002501 2317.026981 1284.906103 6407.341963 1.069239 4.411993 ... 1.070608 1.112048 0.150993 0.000923 1.084711 1.083210 0.143743 0.000372 PseudoVoigtModel PseudoVoigtModel
19 POC25_CRR_DiadFit 103.426374 0.002773 1284.979648 0.002521 2301.219526 1284.979698 6257.279948 1.035971 4.747613 ... 1.135325 1.123916 0.280386 0.000900 1.066390 1.070359 0.111218 0.000378 PseudoVoigtModel PseudoVoigtModel
20 POC26 103.393479 0.002511 1285.059602 0.002220 2320.017476 1285.059652 6080.008489 1.000954 4.421418 ... 1.011966 1.049383 0.023954 0.000863 1.077419 1.072981 0.125847 0.000366 PseudoVoigtModel PseudoVoigtModel
21 POC27_CRR_DiadFit 103.365434 0.002366 1285.121613 0.002090 2577.806619 1285.121663 6621.858082 0.988491 4.753405 ... 1.060284 1.104113 0.119180 0.000767 1.057692 1.044479 0.093601 0.000332 PseudoVoigtModel PseudoVoigtModel
22 POC28 103.270686 0.001829 1285.368063 0.001574 2444.681952 1285.368113 5773.580538 0.910061 4.014705 ... 1.011299 1.025780 0.020566 0.000745 1.045351 1.024430 0.069049 0.000336 PseudoVoigtModel PseudoVoigtModel
23 POC29 103.190268 0.001494 1285.554143 0.001283 2256.800502 1285.554193 4968.824706 0.845253 3.407826 ... 1.044898 1.034985 0.075900 0.000749 1.092857 1.063465 0.136562 0.000361 PseudoVoigtModel PseudoVoigtModel
24 POC3 104.801882 0.001827 1282.036832 0.001589 29839.526821 1282.036782 87994.285376 1.073462 33.336902 ... 1.043131 1.064407 0.092599 0.000072 1.021595 1.018626 0.044112 0.000036 PseudoVoigtModel PseudoVoigtModel
25 POC30 103.125164 0.001654 1285.703731 0.001445 2055.784417 1285.703781 4352.842354 0.821308 3.479910 ... 1.012422 1.010417 0.020405 0.000799 1.055156 1.049209 0.078436 0.000383 PseudoVoigtModel PseudoVoigtModel
26 POC31 103.019135 0.001365 1285.956350 0.001078 7071.224125 1285.956400 13617.097091 0.765541 9.286781 ... 1.042601 1.027915 0.065225 0.000217 1.068354 1.010949 0.092907 0.000112 PseudoVoigtModel PseudoVoigtModel
27 POC32 102.977847 0.001256 1286.056103 0.000924 6188.094846 1286.056153 11430.269425 0.737142 7.689319 ... 1.092417 1.060241 0.136249 0.000238 1.058974 1.007394 0.079299 0.000131 PseudoVoigtModel PseudoVoigtModel
28 POC33 102.951717 0.001440 1286.136954 0.001192 4879.161880 1286.137004 8734.104721 0.712193 7.546190 ... 1.095122 1.086176 0.135490 0.000292 1.020672 1.009470 0.027178 0.000167 PseudoVoigtModel PseudoVoigtModel
29 POC34 102.920106 0.001684 1286.225673 0.001446 4276.058736 1286.225723 7352.611709 0.690037 6.795773 ... 1.012048 1.056881 0.016627 0.000323 1.044855 1.046875 0.058376 0.000192 PseudoVoigtModel PseudoVoigtModel
30 POC35 102.885431 0.001537 1286.308005 0.001290 3727.492333 1286.308055 6269.736435 0.689871 5.619348 ... 1.054591 1.003610 0.075321 0.000370 1.102778 1.083333 0.130488 0.000215 PseudoVoigtModel PseudoVoigtModel
31 POC36_CRR_DiadFit 102.859020 0.001789 1286.380076 0.001528 3191.836340 1286.380126 5161.459686 0.668969 5.578143 ... 1.046272 1.013109 0.061910 0.000419 1.146132 1.117895 0.181745 0.000252 PseudoVoigtModel PseudoVoigtModel
32 POC37 102.833816 0.001848 1286.448206 0.001572 2445.847989 1286.448256 3865.896545 0.659176 4.559198 ... 1.015464 1.048263 0.020387 0.000539 1.147399 1.118280 0.180012 0.000317 PseudoVoigtModel PseudoVoigtModel
33 POC38_CRR_DiadFit 102.811086 0.001826 1286.490978 0.001487 2228.415225 1286.491028 3461.089986 0.652244 4.211697 ... 1.066667 1.073123 0.086966 0.000585 1.156522 1.130152 0.191143 0.000354 PseudoVoigtModel PseudoVoigtModel
34 POC4_CRR_DiadFit 104.700380 0.001778 1282.221577 0.001522 28888.886632 1282.221527 85184.460616 1.076145 31.224568 ... 1.084416 1.090805 0.181687 0.000075 1.006689 1.005875 0.013525 0.000036 PseudoVoigtModel PseudoVoigtModel
35 POC5 104.649296 0.001811 1282.314885 0.001570 28671.259913 1282.314835 84679.189248 1.082499 32.419070 ... 1.088710 1.098737 0.192056 0.000076 1.005051 1.011891 0.010140 0.000036 PseudoVoigtModel PseudoVoigtModel
36 POC6_CRR_DiadFit 104.592860 0.001763 1282.422510 0.001541 27808.764604 1282.422460 82328.209890 1.086695 31.608976 ... 1.056962 1.073529 0.123801 0.000078 1.017065 1.020408 0.034060 0.000037 PseudoVoigtModel PseudoVoigtModel
37 POC7_CRR_DiadFit 104.528260 0.001712 1282.556685 0.001530 26093.962788 1282.556635 77628.515656 1.096552 29.296719 ... 1.020124 1.053452 0.044134 0.000084 1.022260 1.026602 0.044163 0.000039 PseudoVoigtModel PseudoVoigtModel
38 POC8 104.441857 0.001730 1282.731033 0.001595 14917.985173 1282.730983 44962.549060 1.107162 17.610195 ... 1.048438 1.077951 0.107256 0.000148 1.019031 1.017073 0.037301 0.000067 PseudoVoigtModel PseudoVoigtModel
39 POC9 104.384433 0.001749 1282.850166 0.001591 3950.445881 1282.850016 11926.196588 1.107729 5.287474 ... 1.019969 1.058178 0.044241 0.000561 1.013793 1.017094 0.027031 0.000253 PseudoVoigtModel PseudoVoigtModel

40 rows × 49 columns

This plays a sound - if you have a tendency to procrastinate while notebooks are running

[15]:
# !pip install winotify

from winotify import Notification, audio

toast= Notification(app_id="VSCode",title="Notebook completed",
                    msg="Step3b_Secondary_Peaks is done! - Now fit other groups",
                    duration="short")
toast.set_audio(audio.Mail,loop=False)
toast.show()
[ ]: