Subhajit42's picture
Updated README.md : Added Model Metrics
828247d verified
---
license: cc-by-nc-sa-4.0
language:
- en
metrics:
- r_squared
library_name: keras
tags:
- Climate
- SDL-radiation
- CNN
- BiLSTM
- Time-Series
model-index:
- name: SDL Prediction Model
results:
- task:
type: spatio-temporal-forecasting
dataset:
type: weather
name: CLARA-dataset
metrics:
- name: R2
type: r2
value: 0.8204
---
## SDL Prediction Model
This repository contains a deep learning model for forecasting **Surface Downward Longwave Radiation (SDL)** using a hybrid **CNN-BiLSTM** architecture. The model is trained on the CLARA dataset and is designed for monthly grid-based predictions over India.
---
### Model Overview
- **Model Type:** Convolutional Neural Network + Bidirectional LSTM (CNN-BiLSTM)
- **Version:** 1.0 (`r2-0.8204`)
- **Input Shape:** 12 timesteps Γ— 140 Γ— 140 grid Γ— 4 channels
- **Channels:**
- `sdlr_value`
- `year_channel`
- `month_sin_channel`
- `month_cos_channel`
- **Model File:** `model.keras`
- **Scalers:**
- Input: `scalers/input_scalers.pkl`
- Output: `scalers/y_scaler.pkl`
- **Metadata:**
- Initial sequence: `metadata/initial_X_sequence_for_forecast.npy`
- Model metadata: `metadata/model_metadata.json`
- **Model Metrics**
- `MSE: 0.0099`
- `MAE: 0.0744`
- `RMSE: 0.0995`
- `R2: 0.8204`
- `MAE (Original SDL Units): 27.88 W/mΒ²`
- `RMSE (Original SDL Units): 37.26 W/mΒ²`
---
### Dataset
- **Name:** CLARA-dataset
- **Description:** SDL - Surface downward longwave radiation
- **Temporal Resolution:** Monthly
- **Spatial Resolution:** 0.25Β° Γ— 0.25Β° grid (140 Γ— 140)
- **Temporal Coverage:**
- Start: 1979-01-01
- End: 2025-06-01
- **Geographic Coverage:**
- Latitude: 5.0Β°N to 40.0Β°N
- Longitude: 65.0Β°E to 100.0Β°E
---
### Repository Structure
```
β”œβ”€β”€ config.json # Model and dataset configuration
β”œβ”€β”€ LICENSE # License (CC BY-NC-SA 4.0)
β”œβ”€β”€ model.keras # Trained model
β”œβ”€β”€ metadata/
β”‚ β”œβ”€β”€ initial_X_sequence_for_forecast.npy
β”‚ └── model_metadata.json
β”œβ”€β”€ scalers/
β”‚ β”œβ”€β”€ input_scalers.pkl
β”‚ └── y_scaler.pkl
```
---
### Usage
This repository provides the trained model and all necessary artifacts (scalers, metadata, initial input sequence) for SDL prediction, but does **not** include the inference code.
To use the model for inference:
1. **Load the Model and Artifacts:**
- Load `model.keras` using Keras: `tf.keras.models.load_model('model.keras')`.
- Load the scalers (`scalers/input_scalers.pkl`, `scalers/y_scaler.pkl`) and metadata (`metadata/model_metadata.json`) using Python's `pickle` and `json` modules.
- Load the initial input sequence (`metadata/initial_X_sequence_for_forecast.npy`) using NumPy.
2. **Prepare Input Data:**
- Prepare a 12-month sequence of input data as a 4D array: `(TIMESTEPS, height, width, n_channels)`.
- Use the provided scalers to normalize input features.
3. **Perform Prediction:**
- Pass the input sequence to the model to obtain predictions for future SDL values.
- For rolling forecasts, update the input sequence with each new prediction and repeat as needed.
- Use the output scaler to inverse-transform predictions to original units (W/mΒ²).
4. **Postprocess Results:**
- Map predictions to the desired grid points using the latitude and longitude grids from the metadata.
**Note:**
- An implementation of this model is used in the project [Solarwise](https://github.com/RakshitRabugotra/solarwise) repository.
---
### License
This project is licensed under the **Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)**. See the `LICENSE` file for details or visit this [website](https://creativecommons.org/licenses/by-nc-sa/4.0/).
---
### Citation
If you use this model or code, please cite appropriately and respect the license terms.
---
### Contact
For questions or collaboration, please open an issue or contact the repository maintainer.