Skip to main content

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 numpy arrays and pandas DataFrames; 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


Download files

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

Source Distribution

modalyzer-1.2.2.tar.gz (12.4 MB view details)

Uploaded Source

Built Distribution

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

modalyzer-1.2.2-py3-none-any.whl (67.1 kB view details)

Uploaded Python 3

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

Hashes for modalyzer-1.2.2.tar.gz
Algorithm Hash digest
SHA256 38487abc77a161dc2d049fd120bcfca983bdba86db2b39c1b880a50aee8baefa
MD5 a05a275132f5900b4bf440ec03064cc7
BLAKE2b-256 c0eb6cd4ac8f891c44e107597685d0c10f0fdac5d235c8cf6d0300253bcc5f85

See more details on using hashes here.

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

Hashes for modalyzer-1.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 16fca834ecd5e66c5b905c28b39941562cc3cb25e39859a6da07c33b223228c3
MD5 cb8811f60915755ec18b5262b9bdc17c
BLAKE2b-256 49226a0e981cbc3c0a51489356b7ea73ce1972826919429699f98e88af07db64

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