Skip to main content

Generalized Spectral Kurtosis Toolkit

Project description

pygsk: Generalized Spectral Kurtosis Toolkit

DOI License: MIT Python PyPI Docs Build GitHub Pages

→ View full documentation


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 thresholds
    • threshold-sweep — sweep thresholds over PFA ranges
    • renorm-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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pygsk-2.0.3.tar.gz (43.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pygsk-2.0.3-py3-none-any.whl (44.8 kB view details)

Uploaded Python 3

File details

Details for the file pygsk-2.0.3.tar.gz.

File metadata

  • Download URL: pygsk-2.0.3.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

Hashes for pygsk-2.0.3.tar.gz
Algorithm Hash digest
SHA256 e6873b98eb203fd88b17fe9fda9d8b9238604d6e71972f8361eae85dff7ff673
MD5 e060341a0c12df831e88a98965b0ff27
BLAKE2b-256 77c369e1096bd1a0604db76dec39d756e6f57a386228fa4e2e48ada63135b820

See more details on using hashes here.

File details

Details for the file pygsk-2.0.3-py3-none-any.whl.

File metadata

  • Download URL: pygsk-2.0.3-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

Hashes for pygsk-2.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 f590b443d649ae40296c0ac24162513660ea40f32d46db5a55bb50cdc857380e
MD5 d96bd2237ee170cb78edc5e764292eb6
BLAKE2b-256 d334435e7b0e5d515b5131bca7de620fac136543c85e4b2b1bbbc631234dcec7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page