Skip to main content

Sigima - Scientific Image and Signal Processing Library

Sigima

license pypi version PyPI status PyPI pyversions Sigima demo

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!

Sigima demo

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

Project/Sponsor Description
DataLab logo Open-source platform for scientific signal and image processing, powered by Sigima.
NLnet logo European non-profit supporting open-source and internet projects. Sigima has received funding from NLnet for its development, through the DataLab project.

✨ 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 on SignalObj and ImageObj instances.
  • 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 computation to process full signal/image objects in an object-oriented manner.
  • Or they can directly use tools to process raw NumPy arrays — for instance, in custom tools or when integrating Sigima into other projects.

⚠️ sigima.tools is 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 SignalObj or ImageObj

🧪 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.


Python NumPy SciPy scikit-image OpenCV


© DataLab Platform Developers

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)

Source distribution for sigima 1.2.0
File Size Uploaded
sigima-1.2.0.tar.gz 10.8 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for sigima 1.2.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

1.2.0 This release

2 release files

1.1.6

2 release files

1.1.5

2 release files

1.1.4

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page