/seeq-correlation

Primary LanguagePythonApache License 2.0Apache-2.0

Build Status


seeq


seeq-correlation is a Python module to calculate and monitor cross-correlations among time-series signals. It also calculates the time shifts (lead or lag) that maximize the cross-correlations of each signal pair. The module includes a user interface (UI) designed to interact with the Seeq server. Specifically, the UI can be installed as an Add-on Tool in Seeq Workbench.


Documentation

The documentation for seeq-correlation can be found here.


User Guide

seeq-correlation User Guide provides a more in-depth explanation of correlation analysis and how seeq-correlation works. Examples of typical types of analyses using seeq-correlation can be found in the section Use Cases.


Installation

The backend of seeq-correlation requires Python 3.7 or later.

Dependencies

See requirements.txt file for a list of dependencies and versions. Additionally, you will need to install the seeq module with the appropriate version that matches your Seeq server. For more information on the seeq module see seeq at pypi

User Installation Requirements (Seeq Data Lab)

If you want to install seeq-correlation as a Seeq Add-on Tool, you will need:

  • Seeq Data Lab (>= R52.1.5, >=R53.0.2, or >=R54)
  • seeq module whose version matches the Seeq server version
  • Seeq administrator access
  • Enable Add-on Tools in the Seeq server

User Installation (Seeq Data Lab)

The latest build of the project can be found here as a wheel file. The file is published as a courtesy to the user, and it does not imply any obligation for support from the publisher.

  1. Create a new Seeq Data Lab project and open the Terminal window
  2. Run pip install seeq-correlation
  3. Run python -m seeq.addons.correlation [--users <users_list> --groups <groups_list>]

Development

We welcome new contributors of all experience levels. The Development Guide has detailed information about contributing code, documentation, tests, etc.

Important links

Source code

You can get started by cloning the repository with the command:

git clone git@github.com:seeq12/seeq-correlation.git

Installation from source

For development work, it is highly recommended creating a python virtual environment and install the package in that working environment. If you are not familiar with python virtual environments, you can take a look here

Once your virtual environment is activated, you can install seeq-correlation from source with:

python setup.py install

Testing

There are several types of testing available for seeq-correlation

Automatic Testing

After installation, you can launch the test suite from the root directory of the project (i.e. seeq-correlation directory). You will need to have pytest >= 5.0.1 installed

To run all tests:

pytest

There are several pytest markers set up in the project. You can find the description of the marks in the pytest.ini file. You can use the -m flag to run only a subset of tests. For example, to run only the backend tests, you can use:

pytest -m backend

The integration tests requires a connection to a Seeq server. The tests are configured to try to access a local Seeq server with the data directory set up in ProgramData/Seeq/data of the local drive. However, you can set the seeq_url, credentials_file configuration options in the test_config.ini file to run the integration tests on a remote Seeq server, or change the local seeq data directory with data_dir.

Note: Remember that the seeq module version in your local environment should match the Seeq server version

User Interface Testing

To test the UI, use the developer_notebook.ipynb in the development folder of the project. This notebook can also be used while debugging from your IDE. You can also create a whl first, install it on your virtual environment, and then run developer_notebook.ipynb notebook there.


Changelog

The changelog can be found here


Support

Code related issues (e.g. bugs, feature requests) can be created in the issue tracker

Maintainer: Alberto Rivas


Citation

Please cite this work as:

seeq-correlation
Seeq Corporation, 2021
https://github.com/seeq12/seeq-correlation