Logo
  • What’s New in Revision 1.1.0

🚀 Getting Started

  • Why SpectroChemPy?
  • 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
      • 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
        • Reading a PerkinElmer SP file (plugin)
        • 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
        • Cross-validation of corn moisture models
        • PLS regression example
        • PLS regression with a Pipeline
      • 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
        • Savitzky-Golay derivatives on a synthetic 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
  • 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
    • Pipeline
    • Cross-validation of supervised models
    • 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
    • Units, quantities, and masks
    • 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.migrate_legacy_file
    • 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
    • Units, quantities, and masks
    • spectrochempy.Unit
    • spectrochempy.Quantity
    • spectrochempy.DimensionalityError
    • 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.differentiate
    • spectrochempy.savgol
    • spectrochempy.smooth
    • spectrochempy.whittaker
    • spectrochempy.denoise
    • spectrochempy.despike
    • spectrochempy.align
    • spectrochempy.interpolate
    • spectrochempy.pipe
    • spectrochempy.Pipeline
    • spectrochempy.LSTSQ
    • spectrochempy.NNLS
    • spectrochempy.Optimize
    • spectrochempy.PLSRegression
    • spectrochempy.cross_validate
    • spectrochempy.KFold
    • spectrochempy.GroupKFold
    • spectrochempy.LeaveOneOut
    • spectrochempy.CrossValidationResult
    • 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.pseudovoigt
    • spectrochempy.pseudovoigtmodel
    • 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
    • File format references
      • OMNIC file formats
        • OMNIC SRS file format
        • OMNIC SPA file format

✨ Credits

  • Contributors
  • Third-party Licenses
  • Citing SpectroChemPy
  • SpectroChempy License
  • Other Licenses
  • See also
SpectroChemPy v1.1.1.dev0
  • Developer’s Guide
  • Contributing to specific parts of the code
Previous Next

This is development documentation. Some features are not available in the stable release. View stable documentation.

Contributing to specific parts of the code

  • Adding a Reader
    • Step 1: Add Tests and Sample Files
    • Step 2: Register the File Format
    • Step 3: Create the Reader Module
    • Step 4: Data Format Guidelines
    • Step 5: Documentation
    • Step 6: Semantic Reader Tests
Previous Next

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