File size: 3,382 Bytes
19a5da9
 
 
 
 
 
 
 
 
 
 
 
 
 
39d3c0f
19a5da9
39d3c0f
19a5da9
39d3c0f
19a5da9
df27dfb
19a5da9
 
 
 
 
df27dfb
19a5da9
bb4903b
19a5da9
bb4903b
19a5da9
 
 
 
bb4903b
19a5da9
39d3c0f
 
 
 
19a5da9
39d3c0f
 
19a5da9
39d3c0f
19a5da9
39d3c0f
19a5da9
39d3c0f
 
19a5da9
39d3c0f
19a5da9
39d3c0f
19a5da9
39d3c0f
19a5da9
 
 
 
 
 
 
 
39d3c0f
19a5da9
39d3c0f
19a5da9
 
 
 
39d3c0f
 
 
19a5da9
39d3c0f
19a5da9
39d3c0f
 
 
19a5da9
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
---
license: bsd-2-clause
language: en
tags:
  - weather
  - nowcasting
  - radar
  - precipitation
  - ensemble-forecasting
  - convgru
  - earth-observation
library_name: pytorch
pipeline_tag: image-to-image
---

# IRENE — Italian Radar Ensemble Nowcasting Experiment

**IRENE** is a ConvGRU encoder-decoder model for short-term precipitation forecasting (nowcasting) from radar data. The model generates probabilistic ensemble forecasts, producing multiple plausible future scenarios from a single input sequence.

## Model Description

- **Architecture**: ConvGRU encoder-decoder with PixelShuffle/PixelUnshuffle for spatial scaling
- **Input**: Sequence of past radar rain rate fields (T, H, W) in mm/h
- **Output**: Ensemble of future rain rate forecasts (E, T, H, W) in mm/h
- **Temporal resolution**: 5 minutes per timestep
- **Training loss**: Continuous Ranked Probability Score (CRPS) with temporal consistency regularization

The model encodes past radar observations into multi-scale hidden states using stacked ConvGRU blocks with PixelUnshuffle downsampling. The decoder generates forecasts by unrolling with different random noise inputs, producing diverse ensemble members that capture forecast uncertainty.

## Intended Uses

- Short-term precipitation forecasting (0-60 min ahead) from radar reflectivity data
- Probabilistic nowcasting with uncertainty quantification via ensemble spread
- Research on deep learning for weather prediction
- Fine-tuning on regional radar datasets

## How to Use

```python
from convgru_ensemble import RadarLightningModel

# Load from HuggingFace Hub
model = RadarLightningModel.from_pretrained("it4lia/irene")

# Run inference on past radar data (rain rate in mm/h)
import numpy as np
past = np.random.rand(6, 256, 256).astype(np.float32)  # 6 past timesteps
forecasts = model.predict(past, forecast_steps=12, ensemble_size=10)
# forecasts.shape = (10, 12, 256, 256) — 10 ensemble members, 12 future steps
```

## Training Data

Trained on the Italian DPC (Dipartimento della Protezione Civile) radar mosaic surface rain intensity (SRI) dataset, covering the Italian territory at ~1 km resolution with 5-minute temporal resolution.

## Training Procedure

- **Optimizer**: Adam (lr=1e-4)
- **Loss**: CRPS with temporal consistency penalty (lambda=0.01)
- **Batch size**: 16
- **Ensemble size during training**: 2 members
- **Input window**: 6 past timesteps (30 min)
- **Forecast horizon**: 12 future timesteps (60 min)
- **Data augmentation**: Random rotations and flips
- **NaN handling**: Masked loss for missing radar data

## Limitations

- Trained on Italian radar data; performance may degrade on other domains without fine-tuning
- 5-minute temporal resolution only
- Best suited for convective and stratiform precipitation; extreme events may be underrepresented
- Ensemble spread is generated via noisy decoder inputs, not a full Bayesian approach

## Acknowledgements

This model was developed as part of the **Italian AI-Factory** (IT4LIA), an EU-funded initiative supporting the adoption of AI across SMEs, academia, and public/private sectors. The AI-Factory provides free HPC compute, consultancy, and AI-ready datasets. This work showcases capabilities in the **Earth (weather and climate) vertical domain**.

Developed at **Fondazione Bruno Kessler (FBK)**, Trento, Italy.

## License

BSD 2-Clause License