Signal analyzer for time-discrete, equidistant measured signals
Project description
Signalyzer
signalyzer is a Python package to analyze and process time-discrete, equidistant measured signals, and visualize them with the open source Plotly library for Python.
Main features of the signalyzer package are
- transform and combine measured signals into a new one
- descriptive statistics over the measured signal
- interactive plotting of the measured signal with Plotly
- integrating (accumulating) of the measured signal
- differentiating of the measured signal
- clipping of the measured signal
- rate limiting of the measured signal
- filtering of the measured signal
- logical operations between measured signals
- prioritizing measured logic signals with a priority encoder
- smoothing of the measured signal with statistics
- process measured signals with a moving window
- moving sample value (event) counter
- moving averages with window statistics
- moving differentiation
- moving OLS linear regression with window statistics
- shifting (moving) of the measured signal
- slicing of the measured signal
- evaluate statemachine transitions observed by measured state signal
Important: The signalyzer package is best used within JupyterLab a web-based interactive development environment for Jupyter notebooks or with Plotly Dash, Streamlit or Jupyter voila to build standalone web applications and dashboards.
Table of Contents
- Project Status
- Project Structure
- Getting Started
- Development
- Release Process
- Documentation
- Contributing
- License
- Authors
Project Status
This project is stable and active. Feedback is always welcomed!
Project Structure
The project is organized in sub-folders.
assets
: Project assets filesdocs/
: Sphinx documentationnotebooks/
: Jupyter notebookssrc/signalyzer/
: Package sourcessignalyzer/trace
: Trace module sourcessignalyzer/statemachine
: Statemachine module sources
Getting Started
Dependencies
The signalyzer
package requires at least Python 3.10 and depends on the
external packages:
Installation
The project can be installed from PyPI using pip
> pip install signalyzer
Usage
Please read the online documentation hosted on "Read The Docs".
Development
Getting the Source
This project is hosted on gitlab. You can clone this project directly using this command:
> git clone https://gitlab.com/signalytics/signalyzer.git
Building a Distribution
To build a distribution of this project local, use this command:
> make build
The generated the distribution artifacts can be found in the ./dist
folder
of the cloned project on your machine.
Building the Documentation
Building the documentation requires Sphinx, the Furo theme, the Sphinx extensions sphinx-copybutton and sphinx-plotly-directive.
The required Python packages can be installed on your local machine using pip, use this commands:
> pip install sphinx
> pip install furo
> pip install sphinx-copybutton
> pip install sphinx-plotly-directive
To build the documentation of this project local, use this command:
> make docs
The generated HTML documentation artifact can be found in the
./docs/_build/html
folder of the cloned project on your machine.
Release Process
Versioning
This project uses Semantic Versioning. For a list of available versions, see the repository tag list.
Documentation
The documentation for the latest repository build is hosted on the GitLab Pages of the project.
The documentations of the project releases are hosted on Read The Docs.
Contributing
If you are interested to contribute code or documentation to the project, please take a look at the contributing guidelines for details on our development process.
License
The project is licensed under the revised 3-Clause BSD License.
See LICENSE.
Authors
- Jochen Gerhäußer
See also the list of contributors who participated in this project.
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
Hashes for signalyzer-0.3.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9e319850402349828aa8459eabf0641b66a4b61b122478dff4fba5b0b79418d5 |
|
MD5 | de3f111a8564ca0970b1a2bb6c836caa |
|
BLAKE2b-256 | c877d7e36b3ab63277dfdbe9e3d12cb4b61b19c03124ad12d45f948e341f7afc |