SpectroChemPy
What is SpectroChemPy?
SpectroChemPy (SCPy) is a framework for processing, analyzing, and modeling spectroscopic data for chemistry with Python. It is cross-platform (Linux, Windows, macOS) and combines a lightweight scientific core with optional plugins for domain-specific workflows.
Its central object, NDDataset, provides numerical data together with
coordinates, units, masks, labels, history, and metadata, making it easier
to build reproducible spectroscopy workflows in Python.
The history records participating operations on a dataset. It is inspectable, but it is not a complete provenance record; reproducibility also requires the originating script or notebook, inputs, environment, and parameters.
Key Features
- Core Data Structure:
NDDatasetwith coordinates, units, masks, labels, history, and metadata - Project Management: Organize and manipulate multiple datasets within a
Project - Data Processing:
- Unit-aware mathematical operations
- Baseline correction, automatic subtraction, interpolation, FFT workflows
- Core processing with plugin-specific extensions where appropriate
- Analysis Tools:
- SVD, PCA, MCR-ALS, EFA, PLS, fitting, and related result objects
- I/O and Interoperability:
- Import from major spectroscopy and scientific data formats
- Export to lightweight interchange formats such as CSV, JCAMP-DX, and
minimal MATLAB
.matexchange files - Portable
NDDataset ↔ xarray.Dataset ↔ NetCDFround-trips for the maintained portable subset - Safe native
.scp/.pscppersistence by default, with explicit legacy opt-in only for historical trusted archives
- Plugin System:
- Automatic discovery of optional plugins
- Namespaced APIs:
scp.nmr.read_topspin(...),scp.iris.IRIS() - Dataset accessors for plugin-bound operations
Installation
The recommended way to install SpectroChemPy is with uv:
curl -LsSf https://astral.sh/uv/install.sh | sh # if uv is not installed
uv venv scpy --python 3.13
source scpy/bin/activate
uv pip install spectrochempy
Alternatively, with mamba / conda:
mamba install -c spectrocat -c conda-forge spectrochempy
Or with pip:
pip install spectrochempy
See the full installation guide for platform-specific instructions, optional dependencies, and development setup.
Official Plugins
Extend SpectroChemPy with official plugins (installed separately):
| Plugin | Install | What it provides |
|---|---|---|
spectrochempy-carroucell |
uv pip install spectrochempy-carroucell |
Carroucell experiment reader |
spectrochempy-hypercomplex |
uv pip install spectrochempy-hypercomplex |
Quaternion / hypercomplex support |
spectrochempy-iris |
uv pip install spectrochempy-iris |
2D-IRIS analysis tools |
spectrochempy-nmr |
uv pip install spectrochempy-nmr |
Bruker TopSpin reader, NMR-specific processing |
spectrochempy-perkinelmer |
uv pip install spectrochempy-perkinelmer |
PerkinElmer .sp IR file reader |
spectrochempy-tensor |
uv pip install spectrochempy-tensor |
Tensor learning tools |
pip install works as well if you are not using uv.
Plugins are also available via conda from the spectrocat channel:
mamba install -c spectrocat -c conda-forge spectrochempy-nmr
Plugins are discovered automatically once installed — no manual loading step required.
Experimental plugins
spectrochempy-cantera is available as an experimental plugin. It is not
officially supported, not included in aggregate extras, and must be installed
manually:
python -m pip install spectrochempy-cantera
Quick Links
- 📚 Documentation
- 🔌 Plugins
- 🚀 Installation Guide
- 📓 Example Notebooks
- 🐛 Issue Tracker
- 📝 How to Cite
- 💻 Source Code
For contributors
If you want to contribute, start with:
CONTRIBUTING.md- the developer guide under
docs/sources/devguide/ - the issue tracker
Maintainer release procedures live in maintainers/.
Architecture, RFCs, and roadmap discussions are maintained in the
SpectroChemPy Maintainer Repository.
License
Metadata
Release files for spectrochempy 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| spectrochempy-1.0.0.tar.gz | 6.0 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| spectrochempy-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 6.9 MB
Release files / spectrochempy-1.0.0.tar.gz
| Download URL | spectrochempy-1.0.0.tar.gz |
|---|---|
| Size | 6.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b200f7245f71eeb0373deb0b429338ed874d676851bf386009042f7adeddf2d7
|
|
BLAKE2b-256 checksum How to use checksums |
181f70ae301eff5d3a251d84db5f30465db45d78f09f3ed512042229f2752dc4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.
Transparency logRelease files / spectrochempy-1.0.0-py3-none-any.whl
| Download URL | spectrochempy-1.0.0-py3-none-any.whl |
|---|---|
| Size | 912.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
73d3358d26f7835545c2faeb096ebb5fde9a22e52a1dd470af1fe1783603511e
|
|
BLAKE2b-256 checksum How to use checksums |
9ea634ef2d4c08c296988694d21f74f5357a56d94ff8a81ae38ea57b4e1952e2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 19, 2026.
Transparency log