Topological Signal Compression
Project description
A persistent homology-based signal compression method.
For background information, see:
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
Project details
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
File details
Details for the file topological_signal_compression-0.11.2.tar.gz
.
File metadata
- Download URL: topological_signal_compression-0.11.2.tar.gz
- Upload date:
- Size: 188.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 05620480d2ec1409bcb35630c0f4b9d247bd9b4d963ae2e1c4ac23bfa931310c |
|
MD5 | 3e24d3ba514416c90cc05a3803ab10a6 |
|
BLAKE2b-256 | 36ff27199613eb58887a20ff23dbb2138f439bba63d31cb67d259492842652b0 |
File details
Details for the file topological_signal_compression-0.11.2-py3-none-any.whl
.
File metadata
- Download URL: topological_signal_compression-0.11.2-py3-none-any.whl
- Upload date:
- Size: 189.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3fbe047fe166928465b4b4fb422a3287f70d5de75c026ac969a957028647bf1e |
|
MD5 | c46e992dfcbc5006369f7159c2ade9e3 |
|
BLAKE2b-256 | e9cddc4f796822c4942e14f7f93c6799a75c888b4d82fc3b373829c8f5943e1b |