Skip to main content

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

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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sigima-1.1.1.tar.gz (10.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sigima-1.1.1-py3-none-any.whl (10.5 MB view details)

Uploaded Python 3

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

Hashes for sigima-1.1.1.tar.gz
Algorithm Hash digest
SHA256 8b43a098c879809446f79c2784d357332e9dcb1fce88426be2d01cc3d3d12a4c
MD5 21c88a62cc11b4d88acfcdb558afee5a
BLAKE2b-256 7dde4024b68df175302b548a9a64bb9dc1a66c082a24335e3a4588bc0e9e25b5

See more details on using hashes here.

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

Hashes for sigima-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 94b985f79e70b3bad21cd94395e2a72a16bf9223025a02a8eced1b09e2cf690d
MD5 70ee2c03f75c5e1d1be5d661568fec21
BLAKE2b-256 1d26e91c6888b473365a8252168efc987444ff9e5412437fb9231305fec52e53

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page