Skip to main content

A persistent homology-based signal compression method.

For background information, see:

Koplik, Gary, et al. "Topological Simplification of Signals for Inference and Approximate Reconstruction." 2023 IEEE Aerospace Conference. IEEE, 2023.

The paper is also available on arXiv.

Installation

Installing from PyPI

Base Package

The base package can be installed via PyPI by running:

pip install topological-signal-compression

which will only install the dependencies that support the TSC compression and reconstruction algorithms.

[extras] Installation

There is also an option to install additional pip dependencies to support running:

  • Counterfactual signal compression algorithms.
  • Data readers.
  • Visualization of persistence diagrams.

These extra dependencies can be installed by running:

pip install topological-signal-compression[extras]
WARNING: additional [extras] dependencies that cannot be installed with pip

Note, that the counterfactual compression code, specifically the Opus compression method, also depends on installing the opus-tools and ffmpeg packages, both of which are available for conda installation by running:

conda install -c conda-forge opus-tools
conda install -c conda-forge ffmpeg

from within a conda environment. There are other unix-equivalent installations that can be done to maintain functionality, but we only test against the conda-based installation.

Development Environment

To install the conda environment and the jupyter kernel with the full development environment, clone the repo and run:

cd path/to/topological-signal-compression
bash install.sh

Note, this installation script tries to use mamba (for faster installation), but falls back to conda if mamba is not available.

To uninstall the environment and kernel, be sure to deactivate the conda environment, then run:

cd path/to/topological-signal-compression
bash uninstall.sh

Documentation

Once the repo is cloned, sphinx documentation can be built after installing the conda environment and installing the [docs] dependencies:

source activate tsc
cd path/to/topological-signal-compression
pip install -e .[extras,docs]
bash build_sphinx_docs.sh

It can also be built after installing the [docs] version of the code from PyPI:

pip install topological-signal-compression[extras,docs]
cd path/to/topological-signal-compression
bash build_sphinx_docs.sh

Then, open up <path/to/topological-signal-compression>/public/index.html in a web browser to view the documentation.

Notebooks

All jupyter notebooks are contained in the ./notebooks directory. These are tested to make sure they run end-to-end without error, and can be run in the Python (tsc) kernel that is created by ./install.sh. These notebooks are also embedded in the sphinx documentation (see the "Documentation" section for more information).

Testing

Testing is broken into several sets of tests. There are unit tests on the code as well as end-to-end tests on the maintained jupyter notebooks in ./notebooks.

Note, running the tests requires additional dependencies. These are built into the conda environment (tsc.yml) installed via install.sh, or the testing dependencies can instead be installed by running:

pip install topological-signal-compression[testing]

Once the testing dependencies are installed, there are several options for testing.

To run the unit tests on the full topological-signal-compression[extras] package (including the counterfactual compression algorithms, keep in mind the "WARNING" section above), run:

cd path/to/topological-signal-compression
pytest

To run the unit tests on only the topological-signal-compression base installation:

cd path/to/topological-signal-compression
pytest -c tests/pytest_tsc_base_only.ini

To run the notebooks tests:

cd path/to/topological-signal-compression
pytest -c tests/pytest_notebooks.ini

Metadata

Release files for topological-signal-compression 0.11.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for topological-signal-compression 0.11.3
File Size Uploaded
topological_signal_compression-0.11.3.tar.gz 177.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for topological-signal-compression 0.11.3
File Interpreter ABI Platform
topological_signal_compression-0.11.3-py3-none-any.whl Python 3 none any Details

Total release size: 355.5 kB

Release files / topological_signal_compression-0.11.3.tar.gz

Download URL topological_signal_compression-0.11.3.tar.gz
Size 177.1 kB
Tags Source
SHA-256 checksum
How to use checksums
174dfdf3ece47a2a3b41a38eeb241e237113e5212cd548f72eafd0213847f05c
BLAKE2b-256 checksum
How to use checksums
d48d2b3d09d87868414a4eb45312cce17aa6b245108d34b6b13f53ee62e0864a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.15

Release files / topological_signal_compression-0.11.3-py3-none-any.whl

Download URL topological_signal_compression-0.11.3-py3-none-any.whl
Size 178.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
20f0330a5eedb23c8d355167eb0ce8db1d232c7478b6fc4f52c2f0bd3b601f3b
BLAKE2b-256 checksum
How to use checksums
5fec08237b332c42ccccaefe3bc50a4122fad00f973d63fd90c4808a538f775b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.15

Release history Release notifications | RSS feed

This release

0.11.3 This release

2 release files

0.11.2

2 release files

0.11.1

2 release files

0.11

2 release files

0.10

2 release files

0.9

2 release files

0.8

2 release files

0.7

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