Sigima - Scientific Image and Signal Processing Library
Sigima is an open-source Python library for scientific image and signal processing, designed as a modular and testable foundation for building advanced analysis pipelines.
🔬 Developed by the DataLab Platform Developers, Sigima powers the computation backend of DataLab.
🚀 Try it Online
Experience Sigima instantly in your browser — no installation required!
Click the badge above to open a basic example notebook in a live JupyterLite environment powered by notebook.link. This service, developed by QuantStack, enables sharing and running Jupyter notebooks directly in the browser with zero setup.
Simply run the cells to explore:
- Creating signal and image objects
- Applying processing functions
- Visualizing results inline
🌟 Project & Sponsors
✨ Highlights
- Unified processing model for 1D signals and 2D images
- Works with object-oriented wrappers (
SignalObj,ImageObj) extending NumPy arrays - Includes common processing tasks: filtering, smoothing, binning, thresholding, labeling, etc.
- Structured for testability, modularity, and headless usage
- 100% independent of GUI frameworks (no Qt/PlotPyStack dependencies)
💡 Use cases
Sigima is meant to be:
- A processing backend for scientific/industrial tools
- A library to build reproducible analysis pipelines
- A component for headless automation or remote execution
- A testbed for developing and validating new signal/image operations
📖 Design Philosophy
The main goal of Sigima is to provide a unified, high-level API for handling and processing 1D signals and 2D images, through dedicated Python objects: SignalObj and ImageObj.
The library is organized to separate concerns clearly:
sigima.objects: defines the object model for signals and images.sigima.params: contains parameter classes for configuring processing functions.sigima.proc: provides high-level processing functions that operate directly onSignalObjandImageObjinstances.sigima.io: handles input/output operations (CSV files, image formats, etc.) for signals and images.sigima.tools: contains low-level, NumPy-based functions that implement the core logic behind many processing routines.
This structure supports a layered programming model:
- Developers can use
computationto process full signal/image objects in an object-oriented manner. - Or they can directly use
toolsto process raw NumPy arrays — for instance, in custom tools or when integrating Sigima into other projects.
⚠️
sigima.toolsis not intended as a general-purpose NumPy extension. Its purpose is to fill in the gaps of common scientific libraries (NumPy, SciPy, scikit-image, etc.), offering consistent tools for signal/image processing in the context of Sigima and similar projects.
Usage Outside Sigima
Although Sigima is designed primarily for object-based processing, some of its core functions are useful on their own.
For instance, the DataLab project — an open-source platform for signal/image processing — uses many functions from sigima.tools independently of the object model. This demonstrates how sigima.tools can serve as a lightweight utility layer in scientific and industrial Python applications, even when the object model is not used directly.
To maintain this flexibility and avoid confusion, the distinction between tools (array-based) and computation (object-based) is intentional and explicit.
📦 Installation
pip install sigima
Or in a development environment:
git clone https://github.com/DataLab-Platform/Sigima.git
cd Sigima
pip install -e .
📚 Documentation
📖 Full documentation (in progress) is available at: 👉 https://sigima.readthedocs.io/
Want to use Sigima inside DataLab with GUI tools? Check out the full platform: DataLab
⚙️ Architecture
Sigima is organized by data type:
sigima/
├── tools/ # Low-level NumPy-based algorithms supporting some computation functions
├── proc/ # High-level processing functions operating on SignalObj/ImageObj
│ ├── base/ # Common processing functions
│ ├── signal/ # 1D signal processing
│ └── image/ # 2D image processing
Each domain provides:
- Low-level functions operating on NumPy arrays
- High-level functions operating on
SignalObjorImageObj
🧪 Testing
Sigima comes with unit tests based on pytest.
To run all tests:
pytest
To run GUI-assisted validation tests (optional):
pytest --gui
🧠 License
Sigima is distributed under the terms of the BSD 3-Clause license. See LICENSE for details.
🤝 Contributing
Bug reports, feature requests and pull requests are welcome! See the CONTRIBUTING guide to get started.
© DataLab Platform Developers
Metadata
Release files for sigima 1.2.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 | |
|---|---|---|---|
| sigima-1.2.0.tar.gz | 10.8 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sigima-1.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 21.4 MB
Release files / sigima-1.2.0.tar.gz
| Download URL | sigima-1.2.0.tar.gz |
|---|---|
| Size | 10.8 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8f476fe98a86a99004e346354a4ffbb3313c116dd995d25bfa67eaeed51a26f3
|
|
BLAKE2b-256 checksum How to use checksums |
1940ef2eb8aa89a21efcf331c54b8a24a95b906d7a3578d3f6c8d168fe736d59
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.25
|
Release files / sigima-1.2.0-py3-none-any.whl
| Download URL | sigima-1.2.0-py3-none-any.whl |
|---|---|
| Size | 10.6 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4a6e78e5a356a95e0606d135bb4397b5fe22cebb10564adaaa9fb7cdd3e0a4b5
|
|
BLAKE2b-256 checksum How to use checksums |
6e0d4b5cbd382d78a9532b18d28d24ce7ea9cd395ba5a05da721fd7fabe27064
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.25
|