Processing, analysis and modelling Spectroscopic data for Chemistry with Python
Project description
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, provenance, and metadata, making it easier
to build reproducible spectroscopy workflows in Python.
Key Features
- Core Data Structure:
NDDatasetwith coordinates, units, masks, labels, provenance, 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
Official Plugins
Extend SpectroChemPy with official plugins (installed separately):
| Plugin | Install | What it provides |
|---|---|---|
spectrochempy-carroucell |
pip install spectrochempy-carroucell |
Carroucell experiment reader |
spectrochempy-hypercomplex |
pip install spectrochempy-hypercomplex |
Quaternion / hypercomplex support |
spectrochempy-iris |
pip install spectrochempy-iris |
2D-IRIS analysis tools |
spectrochempy-nmr |
pip install spectrochempy-nmr |
Bruker TopSpin reader, NMR-specific processing |
spectrochempy-perkinelmer |
pip install spectrochempy-perkinelmer |
PerkinElmer .sp IR file reader |
spectrochempy-tensor |
pip install spectrochempy-tensor |
Tensor learning tools |
Or via conda from the spectrocat channel (conda-forge provides the dependencies):
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::
pip install spectrochempy-cantera
⚠️ WARNING: SpectroChemPy is under active development. The current design may undergo major changes. Please report any issues to our Issue Tracker.
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-specific release and architecture notes live in
maintainers/.
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file spectrochempy-0.10.2.tar.gz.
File metadata
- Download URL: spectrochempy-0.10.2.tar.gz
- Upload date:
- Size: 5.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
38587c241db62c5a09e41bbc0fe4970519c5c3aebf88858a830dbfad0c7f3df8
|
|
| MD5 |
802a83a9a13aff9329a97dd1ee78d589
|
|
| BLAKE2b-256 |
92457410734a83d1c12e54d7b2a6ea949ab2d83fa8aee428ad7c350faa8bda43
|
Provenance
The following attestation bundles were made for spectrochempy-0.10.2.tar.gz:
Publisher:
build_package.yml on spectrochempy/spectrochempy
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
spectrochempy-0.10.2.tar.gz -
Subject digest:
38587c241db62c5a09e41bbc0fe4970519c5c3aebf88858a830dbfad0c7f3df8 - Sigstore transparency entry: 1970495555
- Sigstore integration time:
-
Permalink:
spectrochempy/spectrochempy@b9bfd3595a0e5cecf34639d50011d7f219f6b944 -
Branch / Tag:
refs/tags/spectrochempy-v0.10.2 - Owner: https://github.com/spectrochempy
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build_package.yml@b9bfd3595a0e5cecf34639d50011d7f219f6b944 -
Trigger Event:
release
-
Statement type:
File details
Details for the file spectrochempy-0.10.2-py3-none-any.whl.
File metadata
- Download URL: spectrochempy-0.10.2-py3-none-any.whl
- Upload date:
- Size: 773.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f2978d5bd6f480c98e69659a6e94b97388b96b5c5af4847e84c0d2459930205f
|
|
| MD5 |
9f33e8b5379cfcce22ad3861ec4e66ee
|
|
| BLAKE2b-256 |
3a5397cb50f20819de62344af333e2d1a0eef4d8d5da72d9482b6a37a73bd233
|
Provenance
The following attestation bundles were made for spectrochempy-0.10.2-py3-none-any.whl:
Publisher:
build_package.yml on spectrochempy/spectrochempy
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
spectrochempy-0.10.2-py3-none-any.whl -
Subject digest:
f2978d5bd6f480c98e69659a6e94b97388b96b5c5af4847e84c0d2459930205f - Sigstore transparency entry: 1970495692
- Sigstore integration time:
-
Permalink:
spectrochempy/spectrochempy@b9bfd3595a0e5cecf34639d50011d7f219f6b944 -
Branch / Tag:
refs/tags/spectrochempy-v0.10.2 - Owner: https://github.com/spectrochempy
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build_package.yml@b9bfd3595a0e5cecf34639d50011d7f219f6b944 -
Trigger Event:
release
-
Statement type: