Generalized Spectral Kurtosis Toolkit
Project description
pygsk: Generalized Spectral Kurtosis Toolkit
Overview
pyGSK is a modular, open-source Python toolkit for computing and visualizing the Generalized Spectral Kurtosis (SK) estimator — a statistical tool for signal detection, RFI excision, and spectral diagnostics.
It provides both programmatic and command-line interfaces for reproducible, open-science workflows.
Developed within the SUNCAST collaboration, pyGSK modernizes the legacy IDL implementation of the SK estimator into a fully transparent and community-maintained Python package.
Key Features
- ⚙️ Compute SK statistics for arbitrary integration parameters (
M,N,d) - 🧮 Derive PFA-based detection thresholds and visualize their evolution
- 📊 Plot SK distributions and detection boundaries
- 💻 Command-line interface (
pygsk) with subcommands:sk-test— compute and visualize SK thresholdsthreshold-sweep— sweep thresholds over PFA rangesrenorm-sk-test— use the renormalized SK estimator
- 🔬 Pedagogical and reproducible: designed as a SUNCAST reference implementation
Installation
Install the latest stable version from PyPI:
pip install pygsk
To verify the installation:
python -m pygsk --version
For the latest development version:
pip install git+https://github.com/suncast-org/pygsk.git
Quick Example
from pygsk.thresholds import compute_sk_thresholds
M, N, d, pfa = 128, 64, 1.0, 1e-3
lower, upper = compute_sk_thresholds(M, N, d, pfa=pfa)
print(f"SK thresholds for pfa={pfa}: lower={lower:.3f}, upper={upper:.3f}")
Or equivalently from the command line:
pygsk sk-test --M 128 --N 64 --pfa 1e-3 --plot
Documentation
Full documentation is available in the docs/ directory:
| File | Description |
|---|---|
| index.md | Project overview and citation |
| install.md | Installation instructions |
| usage.md | Example usage in Python and CLI |
| cli_guide.md | Command-line reference |
| theory.md | Theoretical background |
| dev_guide.md | Internal structure and contribution guide |
| dev_workflow.md | Development and release workflow |
Citation
If you use pyGSK in your research, please cite:
Nita, G. M. (2025). pyGSK: Generalized Spectral Kurtosis Toolkit. Zenodo.
https://doi.org/10.5281/zenodo.17336193
This concept DOI represents all versions and always resolves to the latest release.
The theoretical foundation is described in:
Nita, G. M., & Gary, D. E. (2010). The Generalized Spectral Kurtosis Estimator.
MNRAS Letters, 406(1), L60–L64.
https://doi.org/10.1111/j.1745-3933.2010.00882.x
License
This project is distributed under the MIT License.
© 2025 Gelu M. Nita and the SUNCAST Collaboration.
Acknowledgment
pyGSK was developed within the GEO OSE Track 1: SUNCAST: Software Unified Collaboration for Advancing Solar Tomography project, funded by the U.S. National Science Foundation (Award No. RISE-2324724).
It serves as a pedagogical and technical template for future SUNCAST community contributions supporting open, reproducible, and FAIR solar data analysis.
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 pygsk-2.0.2.tar.gz.
File metadata
- Download URL: pygsk-2.0.2.tar.gz
- Upload date:
- Size: 43.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0368a8ae6f730a156e6849436e45380d0276b5cafebbd1df67088b2d9faa953b
|
|
| MD5 |
009181bd81b04421851a618d1451449d
|
|
| BLAKE2b-256 |
559f604bc80bd7f26b28eeb1384708c906a8a6bacb9adf7d6be3f7007797b37d
|
File details
Details for the file pygsk-2.0.2-py3-none-any.whl.
File metadata
- Download URL: pygsk-2.0.2-py3-none-any.whl
- Upload date:
- Size: 44.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1b52657d72c38cd5cb200d55cc90be3f0822696cbccc24851336b80ed2d48d97
|
|
| MD5 |
7953414a32b99ac22c1522a3b4bc24f9
|
|
| BLAKE2b-256 |
6dedfb66349c2709b6e243237e133ed0f9f4f6a22fc332ef11ed1a124e49de09
|