This is the new and updated version of pyOMA module, a Python module designed for conducting operational modal analysis. With this update, we've transformed pyOMA from a basic collection of functions into a more sophisticated module that fully leverages the capabilities of Python classes.
Key Features & Enhancements:
- Support for single and multi-setup measurements, which includes handling multiple acquisitions with mixed reference and roving sensors.
- Interactive plots for intuitive mode selection, users can now extract desired modes directly from algorithm-generated plots.
- Structure geometry definition, enabling 3D visualization of mode shapes once modal results are obtained.
- Uncertainty estimation for modal properties in Stochastic Subspace Identification (SSI) algorithms.
- Specialized clustering classes for Automatic OMA using SSI, streamlining modal parameter extraction.
- New OMAX (OMA with Exogenous Input) functionality for SSI, expanding the module’s capabilities to handle forced excitation scenarios.
You can check the documentation at the following link:
https://pyoma.readthedocs.io/en/main/
Install the library with pip:
pip install pyOMA-2
or with conda/mamba:
conda install pyOMA-2
You'll probably need to install tk for the GUI on your system, here some instructions:
Windows:
https://www.pythonguis.com/installation/install-tkinter-windows/
Linux:
https://www.pythonguis.com/installation/install-tkinter-linux/
Mac:
https://www.pythonguis.com/installation/install-tkinter-mac/
Run pyOMA2 in a container with all dependencies pre-installed - no local Python setup needed, just Docker.
docker compose build
docker compose up jupyter
Then open http://localhost:8888
in your browser (no token required for local development).
Docker Limitations:
- Interactive Qt windows (
pyvistaqt
) not available - usenotebook=True
for 3D plots andsave_gif=True
for animations - Authentication disabled for convenience - only use on trusted networks
docker compose up pyoma2
docker compose run --rm pyoma2 python3 your_script.py
docker compose run --rm pyoma2 /bin/bash
For 3D visualizations and interactive plots, enable X11 forwarding:
Linux:
xhost +local:docker
docker compose up pyoma2
macOS:
# Install XQuartz first: brew install --cask xquartz
xhost +localhost
docker compose up pyoma2
Windows/WSL2:
# Install VcXsrv or Xming, then:
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0
docker compose up pyoma2
To see how the module works please take a look at the jupyter notebook provided:
- Example1 - Getting started.ipynb
- Example2 - Real dataset.ipynb
- Example3 - Multisetup PoSER.ipynb
- Example4 - MultiSetup PreGER.ipynb
- Example5 - Clustering for Automatic OMA.ipynb
- Extra - Tips and Tricks 1.ipynb