Logo
  • What’s New in Revision 0.11.1.dev

🚀 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 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)
        • Load the Iris dataset
        • Fit a PCA model with automatic component selection
        • Fit a PCA model with a variance threshold
        • Inspect the loadings and scores
        • Visualize the results
        • PCA analysis example
        • Load and inspect the dataset
        • PCA on the full spectral range
        • Mask the saturated region and refit
        • Label the score plot with custom labels
        • Display the labeled score plot
        • SIMPLISMA example
        • Load and annotate the dataset
        • Fit the SIMPLISMA model
        • Visualize the results
        • Build synthetic concentration profiles
      • Cross-decomposition
        • PLS regression example
        • Load the corn NIR dataset
      • Curvefitting
        • Fitting 1D dataset
        • Load and prepare an IR spectrum
        • Define the fitting model
        • Create the optimizer and inspect the starting model
        • Fit the model
        • 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)
        • Analysis CP NMR spectra
        • Processing a 1D NMR spectrum
        • Two-dimensional NMR processing
        • Processing Relaxation measurement
        • 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 NMR data
        • Exponential window multiplication
        • Sine bell and squared Sine bell window multiplication
        • Analysis CP NMR spectra
        • Processing a 1D NMR spectrum
        • 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.11.1.dev74
  • Developer’s Guide
  • Contributing to specific parts of the code
Previous Next

× ⚠️ You are reading the development version documentation.
Read here the documentation of the last stable release.

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 Jul 26, 2026.