Scientific computing engine for 1D signals and 2D images, part of the DataLab open-source platform.
Project description
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
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 sigima-1.1.1.tar.gz.
File metadata
- Download URL: sigima-1.1.1.tar.gz
- Upload date:
- Size: 10.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.25
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8b43a098c879809446f79c2784d357332e9dcb1fce88426be2d01cc3d3d12a4c
|
|
| MD5 |
21c88a62cc11b4d88acfcdb558afee5a
|
|
| BLAKE2b-256 |
7dde4024b68df175302b548a9a64bb9dc1a66c082a24335e3a4588bc0e9e25b5
|
File details
Details for the file sigima-1.1.1-py3-none-any.whl.
File metadata
- Download URL: sigima-1.1.1-py3-none-any.whl
- Upload date:
- Size: 10.5 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.25
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
94b985f79e70b3bad21cd94395e2a72a16bf9223025a02a8eced1b09e2cf690d
|
|
| MD5 |
70ee2c03f75c5e1d1be5d661568fec21
|
|
| BLAKE2b-256 |
1d26e91c6888b473365a8252168efc987444ff9e5412437fb9231305fec52e53
|