A Python package for the application of Reduced Order Modeling (ROM) to large spatio-temporal datasets using the Singular Value Decomposition (SVD). A spatio-temporal dataset is one that has both spatial and temporal dimensions, such as weather or climate data, or a numerical simulation of flow past a circular cylinder. Despite the many degrees of freedom present in such datasets, they often exhibit low-dimensional structures that can be captured using dimensionality reduction techniques.
SVD-ROM is specifically designed for very large datasets that do not fit in memory. It leverages out-of-core, parallel computing, as well as scalable and noise-robust versions of matrix decomposition algorithms such as the Randomized SVD and the Optimized Dynamic Mode Decomposition (DMD). SVD-ROM provides a user-friendly API fully built on the Python ecosystem, abstracting away the complexity of distributed computing and memory management from the user. It is built on top of Dask, a Python library for parallel computing, which enables efficient handling of large-scale data processing on laptops, HPC clusters or the cloud with minimal code changes.
SVD-ROM is work in progress, and currently supports Principal Component Analysis (PCA), Proper Orthogonal Decomposition (POD) and Dynamic Mode Decomposition (DMD). We will soon add support for other methods such as the Spectral Proper Orthogonal Decomposition (SPOD).
SVD-ROM is an open-source project that originated at The Alan Turing Institute (London, UK).
Intall SVD-ROM from source:
git clone https://github.com/SVDROM/svdrom
cd svdrom
python -m pip install .It is strongly recommended to install SVD-ROM using uv:
uv venv
source .venv/bin/activate
uv pip install .The documentation is built with Sphinx from the source/ directory and hosted on Read the Docs.
See source/contents/development.md for instructions on building it locally.
The best way to get started is to have a look at the notebooks in the demos/ folder.
See CONTRIBUTING.md for instructions on how to contribute.
Distributed under the terms of the MIT license.
Robert Vava 👀 💻 🚧 📖 |
David Salvador Jasin 💻 🚧 👀 🚇 📖 |