Using a Dual-Branch U-Net CNN to downscale NASA IMERG satellite precipitation from 10 km to 250 m resolution over the Big Island of Hawaiʼi.
NASA's IMERG satellite product provides global daily precipitation estimates, but at a coarse 0.1° resolution (~10 km per pixel). This resolution is too coarse to capture the fine-scale rainfall gradients driven by Hawaiʼi's complex topography — a single pixel can span everything from a coastal rain shadow to a windward summit receiving over 10 meters of rain per year.
The goal of this project is to use a convolutional neural network to downscale the satellite data from 10 km to 250 m resolution, using high-resolution topographic data (elevation, slope, aspect) and GOES-17 cloud cover as auxiliary inputs. Ground-truth supervision comes from ~165 rain gauge stations operated by the Hawaiʼi Climate Data Portal (HCDP).
| Input | Source | Resolution |
|---|---|---|
| Daily precipitation | NASA IMERG Early Run V07B | ~10 km |
| Binary cloud mask | GOES-17 BCM | ~2 km |
| Elevation / Slope / Aspect | SRTM DEM | 30 m |
The model is a Dual-Branch U-Net that processes two input modalities through independent encoder branches before fusing them at a shared bottleneck.
Input (B, 5, 32, 32)
│
├─── Branch 1 (IMERG + GOES, 2 ch) ─── Branch 2 (Topo, 3 ch) ───┐
│ ConvBlock(2→32) → Pool ConvBlock(3→32) → Pool │
│ ConvBlock(32→64) → Pool ConvBlock(32→64) → Pool │
│ ConvBlock(64→128) → Pool ConvBlock(64→128) → Pool │
└──────────── cat(dim=1) → (B, 256, 4, 4) ───────────────────────┘
ConvBlock(256→256)
│
── Shared Decoder ──
ConvTranspose2d(256→128) → ConvBlock(128→128)
ConvTranspose2d(128→64) → ConvBlock(64→64)
ConvTranspose2d(64→32) → ConvBlock(32→32)
Conv2d(32→1, 1×1)
│
Output (B, 1, 32, 32)Loss = λ₁ · MaskedMSE + λ₂ · TVLoss
MaskedMSE computes error only at rain gauge pixels (station mask). TVLoss penalises abrupt spatial gradients, encouraging smooth precipitation fields. λ₁ = 1.0, λ₂ = 0.1.
| Metric | Value | Note |
|---|---|---|
| Best val loss | 0.0361 | epoch 24 / 50 |
| Test loss | 0.0332 | Apr–Jun 2021 |
| Train/val MSE gap | ~0.006 | mild overfit |
| Total parameters | 2.3 M |

Slide to blend between the raw IMERG input (10 km) and the Dual-Branch U-Net prediction (250 m). Pick a date to load a different day.
This project uses a Dual-Branch U-Net convolutional neural network to downscale NASA IMERG precipitation data from 10 km to 250 m resolution over the Big Island of Hawaiʼi. The model fuses satellite precipitation and cloud cover with high-resolution topographic data to produce fine-scale daily rainfall fields, supervised by ~165 ground-truth rain gauge stations from the Hawaiʼi Climate Data Portal.
Special thanks to Elisabeth Tappert and Gabriela de Leon for their support throughout this project — helping with data reprojection, building the input DataLoader pipeline, and rasterising rain gauge station data into training targets.