Skip to content

Example 7: Peak Fitting / Integration

Calculating area under the curve.

1. Simple Integration (Simpson's Rule)

import numpy as np
import spectrochempy as scp

# Define a peak
x = np.linspace(1100, 900, 200)
y = np.exp(-((x - 1000)**2) / (2 * 10**2))
dataset = scp.NDDataset(y, coordset={"x": scp.Coord(x, units="cm^-1")})

# Integrate over the whole range
# trapz or simps (trapezoidal or Simpson's rule)
area = dataset.integrate(method="trapz")

print(f"Calculated Area: {area.data[0]}")

2. ROI Integration

# Select a region first
roi = dataset[:, 1020.0:980.0]
area_roi = roi.integrate()
print(f"Area in ROI (1020-980): {area_roi.data[0]}")