Wave analysis tools: A package for analyzing wave and oscillatory signals
Project description
WaLSAtools – Wave Analysis Tools
WaLSAtools is an open-source library for fundamental and advanced wave analysis in 1D signals, images, and multi-dimensional datasets. Designed as a one-stop resource, it empowers researchers across disciplines to extract insights from oscillatory phenomena. WaLSAtools is envisioned as a community-driven starting point — inviting collaboration to refine techniques, develop new methods, and advance discoveries wherever waves and fluctuations play a fundamental role. It encourages transparent, reproducible science by providing validated techniques, detailed documentation, and worked examples.
It currently provides a comprehensive set of analysis techniques, including:
- Fast Fourier Transform (FFT)
- Wavelet Analysis
- Lomb-Scargle Periodogram
- Welch Power Spectral Density
- Empirical Mode Decomposition (EMD)
- Hilbert and Hilbert-Huang Transforms
- k-ω (k-omega) Analysis
- Proper Orthogonal Decomposition (POD)
- Cross-Spectral Analysis
WaLSAtools features an interactive interface for both Python terminals and Jupyter notebooks, simplifying the wave analysis workflow.
For full documentation, see https://WaLSA.tools.
Installation
We strongly recommend installing WaLSAtools inside a new virtual environment to avoid dependency conflicts, especially with pre-installed packages.
For a full setup guide, see the Beginner-Friendly Guide.
Install via PyPI
pip install --upgrade pip
pip install WaLSAtools
Install from Source (GitHub)
git clone https://github.com/WaLSAteam/WaLSAtools.git
cd WaLSAtools/codes/python/
pip install .
For detailed instructions and troubleshooting tips, refer to:
Interactive Usage
After installing, launch the interactive interface by running:
from WaLSAtools import WaLSAtools
WaLSAtools
This will open an interactive menu where you can:
- Select an analysis category.
- Choose your data type (1D or 3D).
- Pick an analysis method (FFT, wavelet, EMD, k-omega, POD, etc.).
- View customised calling sequences and parameter hints.
Interactive usage is supported both in standard Python terminals and Jupyter notebooks.
Requirements
WaLSAtools requires Python ≥ 3.8 and automatically installs the following core dependencies:
astropy
, IPython
, ipywidgets
, matplotlib
, numba
, numpy
, pyFFTW
, scipy
, setuptools
, scikit-image
, tqdm
.
All dependencies are handled automatically during installation.
License
WaLSAtools is licensed under the Apache License, Version 2.0.
Citation
If you use WaLSAtools in your research, please cite:
Jafarzadeh, S., Jess, D. B., Stangalini, M., et al. 2025, Nature Reviews Methods Primers, 5, 21
https://www.nature.com/articles/s43586-025-00392-0
Zenodo DOI: 10.5281/zenodo.14978610
Contributing
We welcome contributions, suggestions, and feedback.
Please check the Contribution Guide, or join our discussions via GitHub Discussions.
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
File details
Details for the file walsatools-1.0.0.post4.tar.gz
.
File metadata
- Download URL: walsatools-1.0.0.post4.tar.gz
- Upload date:
- Size: 176.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
b29588567e28f6f82aedb7a12379c195be67d532260b7cb42a7c0cc59f65eed5
|
|
MD5 |
45182150df599c5581b38a21a37a84b9
|
|
BLAKE2b-256 |
d9c7c4650cba33528b36969c628ca11454f8cfdb9d35866518cd5b7d03b72c29
|
File details
Details for the file walsatools-1.0.0.post4-py3-none-any.whl
.
File metadata
- Download URL: walsatools-1.0.0.post4-py3-none-any.whl
- Upload date:
- Size: 192.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
f2242ca679299023c48ad88172a65c179fd474268d0ae9acc2ec1b38886ea19a
|
|
MD5 |
34ba8bc84f2cc61791989e405ec91646
|
|
BLAKE2b-256 |
9bd6417d4994f3c3bd1ac0da746dcafa4b934d8eee2fa8d1f6450edaa57d12f7
|