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
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:
To run GUI-assisted validation tests (optional):
๐ง 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




