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.
Release files for WaLSAtools 1.0.0.post5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| walsatools-1.0.0.post5.tar.gz | 176.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| walsatools-1.0.0.post5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 370.0 kB
Release files / walsatools-1.0.0.post5.tar.gz
| Download URL | walsatools-1.0.0.post5.tar.gz |
|---|---|
| Size | 176.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
83b7cd147b5ffcb2e91a03e9ac98594a3d7f306360dd2dccfcdb44075856dc5b
|
|
BLAKE2b-256 checksum How to use checksums |
a811ef5005ca8d21d30abb80fc6c34c1217a091d24d9103c5237f0ce489c007a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / walsatools-1.0.0.post5-py3-none-any.whl
| Download URL | walsatools-1.0.0.post5-py3-none-any.whl |
|---|---|
| Size | 193.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
992c96e8d4115dd17605a011e15e69840453eb2cf6aa1a95efefa3f8bc21ff17
|
|
BLAKE2b-256 checksum How to use checksums |
bd513285eaa0c95f2c1113233c2633376cae599258e4ae49d927210bfa863330
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|