File size: 4,066 Bytes
3d8f4ee 828247d 3d8f4ee 828247d 3d8f4ee |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 |
---
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. |