--- license: mit tags: - solar-radiation - deep-learning - nowcasting - ddpm - MCVD --- # DDPM Solar Radiation model A deep learning model for solar radiation nowcasting using modified [MCVD](https://arxiv.org/pdf/2205.09853) model, a kind of DDPM model for video generation. The model predicts clearsky index and converts it to solar radiation for up to 6 or 36 time steps ahead.
Below is an example of DDPM generation process for 1-hour solar radiation prediction (6 time steps). The total iteration is 1000 steps, and every 50 steps are shown in the gif. ![Solar Prediction Example](docs/BT202504010900-ddpm.gif) ## Overview This repository contains two trained models (1hr & 6hr) for solar radiation forecasting: - **1hr DDPM Model**: Predicts solar radiation up to 1 hour ahead (6 time steps) - **6hr DDPM Model**: Predicts solar radiation up to 6 hours ahead (36 time steps). The model uses multiple input sources: - **Himawari satellite data**: Clearsky index calculated from Himawari satellite data - **WRF Prediction**: Clearsky index from WRF's solar irradiation prediction - **Topography**: Static topographical features ## Installation 1. Clone the repository & install Git LFS: ```bash git lfs install git clone cd Diffusion_SolRad git lfs pull git lfs ls-files # confirm whether models weights & sample data are downloaded ``` 2. Install dependencies: ```bash pip install -r requirements.txt ``` ## Requirements - Python 3.x - PyTorch 2.4.0 - NumPy 1.26.4 - einops 0.8.0 ## Usage ### Basic Inference Run solar radiation prediction using the pre-trained models: ```bash python inference.py --pred-hr [1hr/6hr] --pred-mode [DDPM/DDIM] --basetime 202504131100 ``` ### Command Line Arguments - `pred-mode`: Choose between `DDPM` or `DDIM` sampling methods (default: `DDPM`) - `pred-hr`: Choose between `1hr` or `6hr` prediction models (default: `1hr`) - `--basetime`: Timestamp for input data in format YYYYMMDDHHMM (default: `202504131100`) ### Example ```bash # DDIM sampling method for 1-hour prediction python inference.py --pred-hr 1hr --pred-mode DDIM --basetime 202507151200 ``` ## Sample Data The repository includes sample data files: - `sample_202504131100.npz` - `sample_202504161200.npz` - `sample_202507151200.npz` ## Model Weights Pre-trained weights are available for both models: - `model_weights/ft06_01hr/weights.ckpt` - `model_weights/ft36_06hr/weights.ckpt` ## License This project is released under the MIT License.