Logo
  • What’s New in Revision 0.12.3

🚀 Getting Started

  • 5-minute quickstart
  • Installation guide
    • Installation Guide for Windows
    • Installation Guide for Mac OSX and Linux
    • Install in Google Colaboratory (Colab)
    • Optional Dependencies
    • Installation from Sources
  • Example's gallery
    • Core functionalities
      • How to use NDDataset
        • NDDataset creation and plotting example
        • NDDataset coordinates example
        • Units manipulation examples
        • Slice an NDDataset with indices and coordinates
        • NDDataset creation and plotting example
      • Interoperability
        • Interoperability with xarray and NetCDF
      • Import / Export
        • Reading datasets
        • Loading an IR (omnic SPG) experimental file
        • Loading Bruker OPUS files
        • Loading of experimental 1D NMR data
        • Loading RAMAN experimental file
        • Reading Renishaw WiRE files
        • Reading SPC format files
      • Plotting datasets
        • Using plot_multiple to plot several datasets on the same figure
        • Choose an explicit plot type for a 2D IR dataset
        • Introduction to the plotting library
        • Apply built-in plotting styles
      • Project Management
        • Project creation
    • Analysis NDDataset
      • Decomposition
        • EFA example
        • EFA (Keller and Massart original example)
        • FastICA example
        • IRIS: 2D-IRIS analysis (plugin)
        • MCR-ALS example (adapted from Jaumot et al. 2005)
        • MCR-ALS with kinetic constraints
        • NMF analysis example
        • PCA example (iris dataset)
        • PCA analysis example
        • SIMPLISMA example
        • Build synthetic concentration profiles
      • Cross-decomposition
        • PLS regression example
      • Curvefitting
        • Fitting 1D dataset
        • Built-in line-shape helpers
        • Solve a linear equation using LSTSQ
      • Peak analysis
        • Find peak maxima in an IR time series
        • Integrate a baseline-corrected IR band
    • Processing NDDataset
      • Apodization
        • Exponential window multiplication
        • Sine bell and squared Sine bell window multiplication
      • Baseline
        • NDDataset baseline correction
      • Denoising
        • Denoising a 2D Raman spectrum
        • Removing cosmic ray spikes from a Raman spectrum
      • Filtering
        • Savitky-Golay and Whittaker-Eilers smoothing of a Raman spectrum
        • Compare smoothing window sizes on a Raman spectrum
      • NMR processing (plugin-based)
        • Processing a 1D NMR spectrum
        • Processing a saturation-recovery relaxation series
        • NMR: reading TopSpin files (plugin)
      • Processing Raman datasets
        • Processing RAMAN spectra
      • Transformations
        • Mask a saturated region and transform an IR dataset
        • Chemometric preprocessing
        • Preprocessing transformers and scikit-learn compatibility
    • Plugin-dependent functionality
      • IRIS plugin
        • IRIS: 2D-IRIS analysis (plugin)
      • NMR plugin
        • Loading of experimental 1D NMR data
        • Exponential window multiplication
        • Sine bell and squared Sine bell window multiplication
        • Processing a 1D NMR spectrum
        • Processing a saturation-recovery relaxation series
        • NMR: reading TopSpin files (plugin)
      • PerkinElmer plugin
        • Reading a PerkinElmer SP file (plugin)
  • Getting help

📚 User's Guide & Tutorials

  • Introduction
  • Import & Export
    • Import Data in SpectroChemPy
    • Import IR Data
      • Import of OMNIC files
      • Import of Bruker OPUS files
      • Import/Export of JCAMP-DX files
  • Plotting
    • Plotting Overview
    • Customizing a Plot
    • Plotting Preferences
    • Plot Types
    • Styles
    • Advanced Matplotlib Integration
  • Processing
    • Slicing NDDatasets
    • Basic transformations
    • Chemometric preprocessing
    • Mathematical operations
    • Filtering, Smoothing and Denoising
    • Baseline corrections
    • Denoising
    • Apodization
    • Time domain baseline correction (NMR)
    • One-dimensional (1D) Fourier transformation
    • Real Fourier transform
    • FTIR interferogram processing
    • Alignment of datasets
  • Analysis
    • Peak Maxima Finding
    • Peak Analysis Workflow
    • Peak Integration
    • Fitting
    • Principal Component Analysis
    • Partial Least Squares Regression (PLSRegression)
    • MCR-ALS: Multivariate Curve Resolution with Alternating Least Squares
  • Plugins
    • Official plugins
    • NMR plugin
    • Tensor plugin
    • Hypercomplex (quaternion) plugin
    • IRIS plugin
    • Carroucell plugin
    • PerkinElmer plugin
    • Experimental plugins
    • Plugin-dependent Examples
    • Plugin roadmap
  • API Configuration
  • Core objects
    • The NDDataset object
    • More insight on coordinates
    • Methods to create NDDataset
    • Project management

🔍 Reference

  • Public API reference
    • spectrochempy.NDDataset
    • spectrochempy.Coord
    • spectrochempy.CoordSet
    • spectrochempy.empty
    • spectrochempy.zeros
    • spectrochempy.ones
    • spectrochempy.full
    • spectrochempy.empty_like
    • spectrochempy.zeros_like
    • spectrochempy.ones_like
    • spectrochempy.full_like
    • spectrochempy.eye
    • spectrochempy.identity
    • spectrochempy.random
    • spectrochempy.normal
    • spectrochempy.diag
    • spectrochempy.fromfunction
    • spectrochempy.fromiter
    • spectrochempy.arange
    • spectrochempy.linspace
    • spectrochempy.logspace
    • spectrochempy.geomspace
    • spectrochempy.take
    • spectrochempy.load
    • spectrochempy.read
    • spectrochempy.read_agilent
    • spectrochempy.read_csv
    • spectrochempy.read_ddr
    • spectrochempy.read_dir
    • spectrochempy.read_hdr
    • spectrochempy.read_jcamp
    • spectrochempy.read_labspec
    • spectrochempy.read_omnic
    • spectrochempy.read_opus
    • spectrochempy.read_perkinelmer
    • spectrochempy.read_quadera
    • spectrochempy.read_sdr
    • spectrochempy.read_soc
    • spectrochempy.read_spa
    • spectrochempy.read_spc
    • spectrochempy.read_spg
    • spectrochempy.read_srs
    • spectrochempy.read_topspin
    • spectrochempy.read_wire
    • spectrochempy.read_wdf
    • spectrochempy.read_mat
    • spectrochempy.read_matlab
    • spectrochempy.NDDataset.from_xarray
    • spectrochempy.NDDataset.from_netcdf
    • spectrochempy.load_iris
    • spectrochempy.download_nist_ir
    • spectrochempy.NDDataset.save
    • spectrochempy.NDDataset.save_as
    • spectrochempy.write
    • spectrochempy.write_csv
    • spectrochempy.write_jcamp
    • spectrochempy.write_mat
    • spectrochempy.write_matlab
    • spectrochempy.to_array
    • spectrochempy.to_netcdf
    • spectrochempy.to_xarray
    • spectrochempy.plot
    • spectrochempy.plot_1D
    • spectrochempy.plot_pen
    • spectrochempy.plot_scatter
    • spectrochempy.plot_scatter_pen
    • spectrochempy.plot_with_transposed
    • spectrochempy.plot_bar
    • spectrochempy.plot_2D
    • spectrochempy.plot_contour
    • spectrochempy.plot_contourf
    • spectrochempy.plot_image
    • spectrochempy.plot_lines
    • spectrochempy.plot_map
    • spectrochempy.plot_stack
    • spectrochempy.plot_3D
    • spectrochempy.plot_surface
    • spectrochempy.plot_waterfall
    • spectrochempy.plot_multiple
    • spectrochempy.multiplot
    • spectrochempy.multiplot_contour
    • spectrochempy.multiplot_contourf
    • spectrochempy.multiplot_lines
    • spectrochempy.multiplot_scatter
    • spectrochempy.multiplot_with_transposed
    • spectrochempy.show
    • spectrochempy.plot_score
    • spectrochempy.plot_scree
    • spectrochempy.plot_compare
    • spectrochempy.plot_merit
    • spectrochempy.plot_baseline
    • spectrochempy.plot_parity
    • spectrochempy.transpose
    • spectrochempy.swapdims
    • spectrochempy.squeeze
    • spectrochempy.set_complex
    • spectrochempy.concatenate
    • spectrochempy.stack
    • spectrochempy.normalize
    • spectrochempy.center
    • spectrochempy.autoscale
    • spectrochempy.snv
    • spectrochempy.msc
    • spectrochempy.pareto_scale
    • spectrochempy.range_scale
    • spectrochempy.robust_scale
    • spectrochempy.log_transform
    • spectrochempy.CenterTransformer
    • spectrochempy.AutoscaleTransformer
    • spectrochempy.SNVTransformer
    • spectrochempy.NormalizeTransformer
    • spectrochempy.MSCTransformer
    • spectrochempy.ParetoScaleTransformer
    • spectrochempy.RangeScaleTransformer
    • spectrochempy.RobustScaleTransformer
    • spectrochempy.LogTransformer
    • spectrochempy.diag
    • spectrochempy.diagonal
    • spectrochempy.take
    • spectrochempy.sort
    • spectrochempy.argmin
    • spectrochempy.argmax
    • spectrochempy.coordmin
    • spectrochempy.coordmax
    • spectrochempy.amin
    • spectrochempy.amax
    • spectrochempy.min
    • spectrochempy.max
    • spectrochempy.ptp
    • spectrochempy.clip
    • spectrochempy.around
    • spectrochempy.round
    • spectrochempy.dot
    • spectrochempy.SVD
    • spectrochempy.LSTSQ
    • spectrochempy.NNLS
    • spectrochempy.all
    • spectrochempy.any
    • spectrochempy.sum
    • spectrochempy.cumsum
    • spectrochempy.trapezoid
    • spectrochempy.simpson
    • spectrochempy.conj
    • spectrochempy.conjugate
    • spectrochempy.abs
    • spectrochempy.absolute
    • spectrochempy.remove_masks
    • spectrochempy.Unit
    • spectrochempy.Quantity
    • spectrochempy.to
    • spectrochempy.to_base_units
    • spectrochempy.to_reduced_units
    • spectrochempy.ito
    • spectrochempy.ito_base_units
    • spectrochempy.ito_reduced_units
    • spectrochempy.is_units_compatible
    • spectrochempy.mc
    • spectrochempy.ps
    • spectrochempy.mean
    • spectrochempy.average
    • spectrochempy.std
    • spectrochempy.sum
    • spectrochempy.var
    • spectrochempy.Baseline
    • spectrochempy.autosub
    • spectrochempy.get_baseline
    • spectrochempy.basc
    • spectrochempy.detrend
    • spectrochempy.asls
    • spectrochempy.snip
    • spectrochempy.fft
    • spectrochempy.ifft
    • spectrochempy.ht
    • spectrochempy.fsh
    • spectrochempy.fsh2
    • spectrochempy.pk
    • spectrochempy.pk_exp
    • spectrochempy.dc
    • spectrochempy.zf
    • spectrochempy.zf_auto
    • spectrochempy.zf_double
    • spectrochempy.zf_size
    • spectrochempy.cs
    • spectrochempy.ls
    • spectrochempy.roll
    • spectrochempy.rs
    • spectrochempy.bartlett
    • spectrochempy.blackmanharris
    • spectrochempy.hamming
    • spectrochempy.general_hamming
    • spectrochempy.hann
    • spectrochempy.triang
    • spectrochempy.em
    • spectrochempy.gm
    • spectrochempy.sp
    • spectrochempy.sine
    • spectrochempy.qsin
    • spectrochempy.sinm
    • spectrochempy.Filter
    • spectrochempy.savgol
    • spectrochempy.smooth
    • spectrochempy.whittaker
    • spectrochempy.denoise
    • spectrochempy.despike
    • spectrochempy.align
    • spectrochempy.interpolate
    • spectrochempy.pipe
    • spectrochempy.LSTSQ
    • spectrochempy.NNLS
    • spectrochempy.Optimize
    • spectrochempy.PLSRegression
    • spectrochempy.EFA
    • spectrochempy.MCRALS
    • spectrochempy.analysis.constraints.Constraint
    • spectrochempy.analysis.constraints.Closure
    • spectrochempy.analysis.constraints.FixedValues
    • spectrochempy.analysis.constraints.Monotonic
    • spectrochempy.analysis.constraints.NonNegative
    • spectrochempy.analysis.constraints.ModelProfile
    • spectrochempy.analysis.constraints.ReferenceProfile
    • spectrochempy.analysis.constraints.Selectivity
    • spectrochempy.analysis.constraints.Unimodal
    • spectrochempy.analysis.constraints.ZeroRegion
    • spectrochempy.FastICA
    • spectrochempy.NMF
    • spectrochempy.PCA
    • spectrochempy.SVD
    • spectrochempy.SIMPLISMA
    • spectrochempy.PSD
    • spectrochempy.polynomial
    • spectrochempy.gaussian
    • spectrochempy.gaussianmodel
    • spectrochempy.lorentzian
    • spectrochempy.lorentzianmodel
    • spectrochempy.voigt
    • spectrochempy.voigtmodel
    • spectrochempy.asymmetricvoigt
    • spectrochempy.asymmetricvoigtmodel
    • spectrochempy.sigmoid
    • spectrochempy.sigmoidmodel
    • spectrochempy.polynomialbaseline
    • spectrochempy.find_peaks
    • spectrochempy.PeakFindingResult
    • spectrochempy.PeakTable
    • spectrochempy.ActionMassKinetics
    • spectrochempy.PFR
    • spectrochempy.Project
    • spectrochempy.set_loglevel
    • spectrochempy.get_loglevel
    • spectrochempy.debug_
    • spectrochempy.info_
    • spectrochempy.warning_
    • spectrochempy.error_
    • spectrochempy.show_versions
    • spectrochempy.ScpObjectList
    • spectrochempy.pathclean
  • Plugin public API reference
    • spectrochempy.nmr.read
    • spectrochempy.nmr.read_topspin
    • spectrochempy.nmr.read_agilent
    • spectrochempy.nmr.Experiment
    • spectrochempy.perkinelmer.read
    • spectrochempy.perkinelmer.read_perkinelmer
    • spectrochempy.carroucell.read_carroucell
    • spectrochempy.iris.IRIS
    • spectrochempy.tensor.CP
  • Glossary
  • Bibliography
  • Papers citing SpectroChemPy

🛠️ Contribute

  • Bug reports & feature request
  • Sharing examples & tutorials
  • Developer’s Guide
    • Contributing to SpectroChemPy
    • Contributing to the code
    • Contributing to specific parts of the code
      • Adding a Reader
    • Contributing to Documentation
    • Plotting Contributions
    • Plotting Architecture
    • Plugin developer guide
      • Plugin author guide
      • Plugin architecture
      • Plugin accessors
      • Numeric backends
      • Unit contexts
      • Packaging a Plugin
      • Testing a Plugin
      • Plugin API Policy
      • Official plugin architecture notes
      • Plugin architecture map

✨ Credits

  • Contributors
  • Third-party Licenses
  • Citing SpectroChemPy
  • SpectroChempy License
  • Other Licenses
  • See also
SpectroChemPy v0.12.3
  • Analysis
Previous Next

Analysis

Here you’ll find some tutorials on the analysis methods provided by SpectroChemPy.

The analysis category includes all methods and classes designed to extract properties and features from one or more NDDatasets. The information given on these tutorial pages can be effectively supplemented by a review of the examples in the gallery (Example’s gallery).

Note

This part is under work and for now very limited. We are working to improve this.

  • Peak Maxima Finding
    • Loading an experimental dataset
    • Find maxima by manual inspection of the plot
    • Find maxima with an automated method: find_peaks()
  • Peak Analysis Workflow
    • Load and prepare a spectrum
    • Detect peaks and inspect the structured result
    • Export the peak table
    • Select starting candidates for fitting
    • Validate the script before fitting
    • Fit the spectrum and inspect the result
    • Summary
  • Peak Integration
  • Fitting
    • Solving a linear equation using the least square method (LSTSQ)
    • Least square with non-negativity constraint (NNLS)
    • NDDataset modelling using non-linear optimisation method
  • Principal Component Analysis
    • Introduction
    • Loading of the dataset
    • Running a PCA
  • Partial Least Squares Regression (PLSRegression)
    • Introduction
    • Loading of the dataset
    • Running PLSRegression
  • MCR-ALS: Multivariate Curve Resolution with Alternating Least Squares
    • Part I — Classical MCR-ALS
    • Part II — Constraints
    • Part III — Augmented datasets
    • Summary — choosing the right workflow
Previous Next

© Copyright 2014-2026 Laboratoire Catalyse et Spectrochimie (LCS) — CeCILL-B license. Last updated on Aug 16, 2026.