Dynamical System Prediction from Sparse Observations Using Deep Neural Networks with Voronoi Tessellation and Physics Constraints (DSOVT)
The DSOVT framework introduces an innovative approach to the spatio-temporal prediction of dynamical systems with sparse observations. Utilizing Voronoi tessellation, the framework integrates advanced deep learning models such as Convolutional Encoder-Decoder combined with Long Short-Term Memory (CED-LSTM) and Convolutional Long Short-Term Memory (ConvLSTM) to address nonlinear dynamic prediction challenges. Meantime, by embedding physics constraints within these models, DSOVT achieves high accuracy and robust rolling forecasts, surpassing basic models in both computational efficiency and predictive performance.
This script processes sea surface temperature (SST) data to generate training and testing datasets. It reads SST data from a .mat
file (available at: Google Drive Link), interpolates missing values, and uses sparse sampling based on sensor configurations.
Execute via command line:
python ./NOAA/NOAA_data_generation.py <output_dir>
Replace <output_dir> with the path to your desired output directory.
This Jupyter notebook ./NOAA/NOAA_kriging.ipynb
provides a comprehensive framework for processing sea surface temperature (SST) data using Kriging methods. It includes modules for data generation, generates sparse sampling based on sensor numbers and variables, and utilizes advanced geostatistical methods for spatial and temporal prediction.
The Jupyter notebook ./NOAA/NOAA_CEDLSTM.ipynb
outlines a framework for predicting sea surface temperature (SST) using the CED-LSTM model. It includes steps for training, predicting, and evaluating the model.
Similarly, the Jupyter notebook ./NOAA/NOAA_ConvLSTM.ipynb
details a framework for predicting SST using the ConvLSTM model. This approach includes training, multi-step prediction, and model evaluation.
The Jupyter notebook located at ./Shallow Water Systems/SW_data_generation.ipynb
processes shallow water data to create training and testing datasets. This setup prepares data for advanced analytical models.
The notebook ./Shallow Water Systems/SW-Kriging.ipynb
offers a detailed framework for predicting shallow water fields using Kriging methods. It handles data generation, applies sparse sampling techniques based on sensor configurations, and employs advanced geostatistical methods for enhanced spatial and temporal predictions.
The notebook ./Shallow Water Systems/SW-CED-LSTM.ipynb
presents a comprehensive approach for predicting shallow water fields using the CED-LSTM model. The process includes training, predicting, evaluating the model, and incorporates Physics-Constrained Models to ensure the physical plausibility of the forecasts. It also outlines the rolling forecasting method for the predicting part.
Similarly, ./Shallow Water Systems/SW-ConvLSTM.ipynb
details a method for predicting SST using the ConvLSTM model. This model supports training, multi-step prediction, and evaluation. It also integrates Physics-Constrained Models to guide the learning process and includes strategies for rolling forecasting to enhance forecast reliability over time.
We have made available the pre-trained model parameters for both the NOAA Sea Surface Temperature and Shallow Water Systems experiments. These parameters can be used to reproduce our results or as a starting point for further exploration and development of the models.
You can download the pre-trained models from the following link: Download Pre-Trained Models
These parameters include trained weights and configuration settings for both the CED-LSTM and ConvLSTM models. Utilizing these pre-trained models can significantly reduce the initialization time and computational resources required for model training and provide a robust baseline for enhancing predictive performance in dynamical system applications.
To ensure the smooth running of the scripts and notebooks in this repository, you need to install the required Python packages. These dependencies are listed in the requirements.txt
file.
To install the required packages, you can use the following command in your terminal:
pip install -r requirements.txt