Sparse Tools for the Spectral Graph Wavelet Transformation and Graph Convolution
Project description
A high-performance Python library for sparse Graph Signal Processing (GSP) and Spectral Graph Wavelet Transforms (SGWT). This package leverages the CHOLMOD library for efficient sparse direct solvers, providing significant speedups over traditional dense or iterative methods for large-scale graph convolution.
Some of the key features include:
High-Performance Sparse Solvers: Direct integration with the CHOLMOD library for optimized sparse Cholesky factorizations and linear system solves.
Generalized Graph Convolution: Support for arbitrary spectral kernels via rational approximation (Kernel Fitting), polynomial approximation (Chebyshev), and standard analytical filters (low-pass, band-pass, high-pass).
Dynamic Topology Support: Specialized routines for graphs with evolving structures, utilizing efficient rank-1 updates for real-time topology changes.
Resource-Aware Execution: Context-managed memory allocation and workspace reuse to minimize overhead in high-throughput applications.
Integrated Graph Repository: Built-in access to standardized graph Laplacians and signals from power systems and infrastructure networks.
For detailed usage, API reference, and theoretical background, please visit the documentation website.
Installation
The sgwt package requires Python 3.7+ and is currently only compatible with Windows operating systems due to its reliance on a pre-compiled CHOLMOD library.
Install the latest stable release from PyPI:
pip install sgwt
This command will also install the necessary dependencies (e.g., NumPy, SciPy).
Basic Example
Here is a quick example using a band-pass filter to an impulse signal on the synthetic Texas grid to get the wavelet function at three different scales.
import sgwt
# Graph Laplacian
L = sgwt.DELAY_TEXAS
# Impulse at 600th Vertex
X = sgwt.impulse(L, n=600)
with sgwt.Convolve(L) as conv:
# Wavelet at 3 scales
Y = conv.bandpass(X, scales=[0.1, 1, 10])
The examples/ directory contains a comprehensive suite of demonstrations, also rendered in the Examples section of the documentation. Key applications include:
Static Filtering: Basic low-pass, band-pass, and high-pass filtering on various graph sizes.
Dynamic Graphs: Real-time topology updates, performance comparisons, and online stream processing.
Citation & Acknowledgements
If you use this library in your research, please cite it. The GitHub repository includes a CITATION.cff file that provides citation metadata. On GitHub, you can use the “Cite this repository” button on the sidebar to get the citation in your preferred format (including BibTeX).
For convenience, the BibTeX entry for the associated paper is:
@inproceedings{lowery-sgwt-2026,
title={Using Spectral Graph Wavelets to Analyze Large Power System Oscillation Modes},
author={Lowery, Luke and Baek, Jongoh and Birchfield, Adam},
year={2026}
}
Luke Lowery developed this module during his PhD studies at Texas A&M University. You can learn more on his research page or view his publications on Google Scholar.
An alternative implementation in Julia is also available and leverages native SuiteSparse support.
The core performance of this library relies on the CHOLMOD library from SuiteSparse, developed by Dr. Tim Davis at Texas A&M University.
The graph laplacians used in the examples are derived from the synthetic grid repository, made available by Dr. Adam Birchfield at Texas A&M University.
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sgwt-0.3.6.tar.gz.
File metadata
- Download URL: sgwt-0.3.6.tar.gz
- Upload date:
- Size: 23.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
abf2ece7a6c338b7424f34907752c945b5b1df6d3e26a42fdc25ae039fe8f49e
|
|
| MD5 |
b3a5dbc61dc3a9ff9d3e62a37a0a2ea8
|
|
| BLAKE2b-256 |
e21e291d0d5f81c8320986015737655ae48d05581526dabf0b75150c36ea0a27
|
Provenance
The following attestation bundles were made for sgwt-0.3.6.tar.gz:
Publisher:
python-publish.yml on lukelowry/sgwt
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sgwt-0.3.6.tar.gz -
Subject digest:
abf2ece7a6c338b7424f34907752c945b5b1df6d3e26a42fdc25ae039fe8f49e - Sigstore transparency entry: 835843148
- Sigstore integration time:
-
Permalink:
lukelowry/sgwt@5b1819479ea79eb73420e2eff7c28a4ad402edca -
Branch / Tag:
refs/tags/v0.3.6 - Owner: https://github.com/lukelowry
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@5b1819479ea79eb73420e2eff7c28a4ad402edca -
Trigger Event:
release
-
Statement type:
File details
Details for the file sgwt-0.3.6-py3-none-any.whl.
File metadata
- Download URL: sgwt-0.3.6-py3-none-any.whl
- Upload date:
- Size: 24.0 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1705ae77deea1a739215db9e4e1e9e8645de37c43e1941973a23341687e916d7
|
|
| MD5 |
6c6aec3ea258ad5860a845ae9ded14ec
|
|
| BLAKE2b-256 |
b304c59e8b1f0b31d5b7cc96e7160d4dcaf5a43cbd6bf2e4c6e644bcce490b3b
|
Provenance
The following attestation bundles were made for sgwt-0.3.6-py3-none-any.whl:
Publisher:
python-publish.yml on lukelowry/sgwt
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sgwt-0.3.6-py3-none-any.whl -
Subject digest:
1705ae77deea1a739215db9e4e1e9e8645de37c43e1941973a23341687e916d7 - Sigstore transparency entry: 835843153
- Sigstore integration time:
-
Permalink:
lukelowry/sgwt@5b1819479ea79eb73420e2eff7c28a4ad402edca -
Branch / Tag:
refs/tags/v0.3.6 - Owner: https://github.com/lukelowry
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@5b1819479ea79eb73420e2eff7c28a4ad402edca -
Trigger Event:
release
-
Statement type: