Fortran code for a hybrid model that combines an atmospheric general circulation model (SPEEDY) and a reservoir computing-based machine learning algorithm.
Download the SPEEDY-ML model with:
$ git clone git@github.com:Arcomano1234/SPEEDY-ML.git
SPEEDY-ML requires a MPI built NetCDF library, ARPACK-NG, and Intel oneapi. This code has been tested with both intel 2020 and gfortran 2021 with openmpi.
-
Fill in the necessary information in config.sh
-
If you want to train your model use scripts/get_training_prediction_data.sh. If you want to use an already trained model skip to step 5.
-
Run scripts/regrid_data.sh
-
After all of the necessary training data is downloaded and regridded to the SPEEDY horizontal and vertical grid run scripts/train_model.sh . Depending on the number of processors this can take anywhere from 40 minutes to a day.
-
Run scripts/run_trained_model.sh . This can be used with a small number of CPUs with the only computational requiring being 32 GB of memory alotted to the program.
-
After the predictions are done, a number of python scripts are provided to analyze the forecasts or climate simulations
To download training data run scripts/get_training_prediction_data.sh . This script downloads ERA5 data using parallel threads with each thread downloading a year of data (so max threads would be number of years of data).
Trained model weights for a hybrid atmospheric model and machine learning only ocean model are provided at . The get_trained_coupled_data.sh will actually download these weights and move them into the appropriate directories.