Modalyzer: Operational Modal Analysis (OMA) toolkit in Python (EFDD, SSI, PolyMAX, ITD).
Project description
Modalyzer
Open-source Python library for Operational Modal Analysis (OMA) and system identification.
Modalyzer provides multiple algorithms — EFDD/FDD, SSI (cov/data), ITD, and PolyMAX (p-LSCF) — along with tools for preprocessing, stabilization diagrams, and mode-shape visualization for common structures.
Status: Actively developed research software. APIs may evolve as the project matures.
Key Features
- Preprocessing: detrend, band‑pass filter, decimate, channel removal, and auto‑sync across channels.
- Frequency Domain Decomposition (EFDD/FDD): PSD SVD, manual peak picking, complex mode shapes, SDOF autocorrelation damping.
- SSI (cov & data variants): state‑space estimation and pole stabilization.
- ITD: fast coarse extraction of poles and damping.
- PolyMAX / p‑LSCF: accurate poles and mode shapes and a stabilization diagram.
- Plots: stabilization diagrams, MAC, and structure‑specific mode‑shape drawings (Farrar 4‑story frame, bridges, etc.).
Installation
Modalyzer is available on PyPI.
pip install modalyzer
CPU-only PyTorch (recommended)
Modalyzer is CPU-only. To avoid CUDA downloads on Linux, install PyTorch explicitly from the CPU index before installing Modalyzer:
pip install --index-url https://download.pytorch.org/whl/cpu torch
pip install modalyzer
Dependencies
The modules use: numpy, pandas, matplotlib, scipy, torch, plotly, and nbformat. They will be install alongside modalyzer.
Also you can install them manually (not recommended):
pip install numpy pandas matplotlib scipy torch plotly nbformat
Repository Layout
modalyzer/
├─ src/modalyzer/
│ ├─ Preprocess.py # preprocess(), choose_modes(), results_table(), etc.
│ ├─ EFDD.py # FDD_SVD_Diagram(), FDD_ModeShape(), FDD_Damping(), ...
│ ├─ SSI.py # SSI_COV(), SSI_DATA(), modal_parameters(), Stable_Poles(), stabilization_diagram()
│ ├─ ITD.py # ITD_alg(), helpers for correlation & poles
│ ├─ PolyMAX.py # PolyMAX(), independent_mode_shape(), stabilization_diagram(), ...
│ └─ ModeShape.py # draw_mode_shapes(), draw_MAC_diagram(), structure‑specific plotters
├─ Examples/
│ └─ ...
├─ tests/
│ └─ test_basic.py
├─ README.md
├─ LICENSE
└─ AUTHORS.md
Tip: Most core functions accept both
numpyarrays andpandasDataFrames; when matrices are in sensor‑by‑time or time‑by‑sensor shape, some functions auto‑transpose to[channels, samples]internally.
YouTube Tutorial Playlist
A tutorial playlist is provided demonstrating how to use Modalyzer with your own datasets.
https://www.youtube.com/watch?v=fZnCtZ2--gM&list=PLLPCQlWev9z_SivHPs4FIOE7zmSMDCrVj
Citing
If you use Modalyzer in academic work, citation is appreciated.
Shamsaddinlou, A., Nikoofaraz, M., De Domenico, D., & Longo, M. Computationally Efficient Python-based Operational Modal Analysis of Structures: Modalyzer. Journal of Vibration and Control. https://doi.org/10.1177/10775463251410790
License
This project is released under the MIT License. See the LICENSE file for details.
Contributing
Pull requests and issues are welcome. If you plan significant changes, please open an issue to discuss the proposal first.
- Please use example Jupyter notebooks in Examples folder for test. Data is provided.
- Open an issue for bug reports or feature requests
- Please include small reproducible examples when reporting bugs.
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 modalyzer-1.2.2.tar.gz.
File metadata
- Download URL: modalyzer-1.2.2.tar.gz
- Upload date:
- Size: 12.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
38487abc77a161dc2d049fd120bcfca983bdba86db2b39c1b880a50aee8baefa
|
|
| MD5 |
a05a275132f5900b4bf440ec03064cc7
|
|
| BLAKE2b-256 |
c0eb6cd4ac8f891c44e107597685d0c10f0fdac5d235c8cf6d0300253bcc5f85
|
File details
Details for the file modalyzer-1.2.2-py3-none-any.whl.
File metadata
- Download URL: modalyzer-1.2.2-py3-none-any.whl
- Upload date:
- Size: 67.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
16fca834ecd5e66c5b905c28b39941562cc3cb25e39859a6da07c33b223228c3
|
|
| MD5 |
cb8811f60915755ec18b5262b9bdc17c
|
|
| BLAKE2b-256 |
49226a0e981cbc3c0a51489356b7ea73ce1972826919429699f98e88af07db64
|