example of 6 peaks versII

import sys
import matplotlib.pyplot as plt
sys.path.append("../../src")
from nmrlineshapeanalyser.core import NMRProcessor

#create NMRProcessor object

processor = NMRProcessor()

#Load filepath
filepath = r"../../data/six_peaks/4/pdata/1//"


# Load the data

processor.load_data(filepath)

#Select the region of interest

x_data, y_data = processor.select_region(200, 800)

#Normalize the data and return normalised y_axis and the corresponding x_axis

x_data, y_normalized, y_amp, y_ground = processor.normalize_data(x_data, y_data)

#define initial parameters for the fitting
#this example is for a single peak
#format of the parameters is [x0, amplitude, width, eta, offset]
# x0 (position), amplitude, width, eta (mixing parameter), offset
#x0 has to be close to the peak position
#offset is shared across all peaks and must be in the normalized 0-1 scale
initial_params = [
                  380, 0.12, 40.51, 0.89, 0.0, 
                  425, 0.12, 40.51, 0.89, 0.0,
                  500, 0.219, 55.43, 0.52, 0.0,
                  547, 0.12, 40.51, 0.89, 0.0,
                  586, 0.219, 55.43, 0.52, 0.0,
                  647, 0.12, 40.51, 0.89, 0.0
                  ]

number_of_peaks = 6
# fixed_x0 controls whether peak positions should be fixed during fitting
# False means position can vary, True means position is fixed
fixed_x0 = [False]*number_of_peaks

fixed_amp = [False]*number_of_peaks

fixed_width = [False]*number_of_peaks

# fixed_eta controls whether each peak's Gaussian/Lorentzian mixing parameter is fixed
# False means eta is fitted freely (default), True fixes it at its initial_params value
fixed_eta = [False]*number_of_peaks

#FIt the data
popt, metrics, fitted = processor.fit_peaks(x_data, y_normalized, initial_params, fixed_x0, fixed_amp, fixed_width, fixed_eta)

#popt is the optimized parameters
#metrics is the metrics of the fitting
#fitted is the fitted curve data

#Plot and examine the results of the fitting
fig, axes, components = processor.plot_results(x_data, y_normalized, fitted, popt)

#Save the figure as an png file and the results as a csv file
processor.save_results(filepath, x_data, y_normalized, fitted, metrics, popt, components)
nmrglue: 0.11
numpy: 2.4.6
scipy: 1.17.1
matplotlib: 3.11.1
pandas: 3.0.5

Peak Fitting Results:
===================

Peak 1 (Position: 380.13 ± 0.13):
  Amplitude: 0.812 ± 0.018
  Width (FWHM): 26.50 ± 0.23 ppm
  Width (FWHM): 1796.61 ± 15.92 Hz
  Carrier Frequency: 67.8041719100037 MHz
  Eta: 0.39 ± 0.03
  Offset: -0.0030 ± 0.0006
  Gaussian Area: 13.89 ± 0.81
  Lorentzian Area: 13.30 ± 1.13
  Total Area: 27.18 ± 1.39

Peak 2 (Position: 404.75 ± 3.32):
  Amplitude: 0.094 ± 0.006
  Width (FWHM): 41.61 ± 4.91 ppm
  Width (FWHM): 2821.21 ± 332.74 Hz
  Carrier Frequency: 67.8041719100037 MHz
  Eta: 0.00 ± 0.26
  Offset: -0.0030 ± 0.0006
  Gaussian Area: 4.18 ± 1.23
  Lorentzian Area: 0.00 ± 1.60
  Total Area: 4.18 ± 2.02

Peak 3 (Position: 501.22 ± 0.07):
  Amplitude: 0.504 ± 0.003
  Width (FWHM): 25.93 ± 0.18 ppm
  Width (FWHM): 1758.00 ± 11.98 Hz
  Carrier Frequency: 67.8041719100037 MHz
  Eta: 0.00 ± 0.04
  Offset: -0.0030 ± 0.0006
  Gaussian Area: 13.90 ± 0.57
  Lorentzian Area: 0.00 ± 0.81
  Total Area: 13.90 ± 0.99

Peak 4 (Position: 547.42 ± 0.03):
  Amplitude: 0.954 ± 0.004
  Width (FWHM): 23.56 ± 0.09 ppm
  Width (FWHM): 1597.33 ± 5.96 Hz
  Carrier Frequency: 67.8041719100037 MHz
  Eta: 0.02 ± 0.03
  Offset: -0.0030 ± 0.0006
  Gaussian Area: 23.50 ± 0.74
  Lorentzian Area: 0.64 ± 1.07
  Total Area: 24.14 ± 1.30

Peak 5 (Position: 588.24 ± 0.05):
  Amplitude: 0.781 ± 0.003
  Width (FWHM): 29.54 ± 0.16 ppm
  Width (FWHM): 2002.96 ± 10.63 Hz
  Carrier Frequency: 67.8041719100037 MHz
  Eta: 0.45 ± 0.03
  Offset: -0.0030 ± 0.0006
  Gaussian Area: 13.51 ± 0.65
  Lorentzian Area: 16.29 ± 0.95
  Total Area: 29.80 ± 1.15

Peak 6 (Position: 650.20 ± 0.24):
  Amplitude: 0.122 ± 0.003
  Width (FWHM): 27.34 ± 0.62 ppm
  Width (FWHM): 1853.86 ± 41.93 Hz
  Carrier Frequency: 67.8041719100037 MHz
  Eta: 0.00 ± 0.12
  Offset: -0.0030 ± 0.0006
  Gaussian Area: 3.56 ± 0.43
  Lorentzian Area: 0.00 ± 0.61
  Total Area: 3.56 ± 0.75
Peak 1 Percentage: 26.45% ± 1.59%
Peak 2 Percentage: 4.07% ± 1.97%
Peak 3 Percentage: 13.52% ± 1.05%
Peak 4 Percentage: 23.49% ± 1.47%
Peak 5 Percentage: 29.00% ± 1.45%
Peak 6 Percentage: 3.46% ± 0.73%
Total: 100.00%

No description has been provided for this image