CYGNSS–SAR Daily Flood Mapping at 90 m Resolution

This repository contains pre-trained model weights for the flood mapping framework described in:

Daily Flood Mapping at 90 m Resolution Through Physically-Constrained CYGNSS–SAR Fusion Gauthier Malandrin, Cynthia Gerlein-Safdi IEEE Transactions on Geoscience and Remote Sensing, 2026 (under review)

Code and inference scripts: github.com/gauthiermalandrin1903/cygnss-sar-flood-mapping

Overview

The framework bridges the spatio-temporal trade-off between SAR and GNSS-R flood mapping by learning to downscale daily CYGNSS observations from ~1 km to 90 m resolution, using Sentinel-1 SAR acquisitions from adjacent dates as spatial anchors, conditioned on MERIT Hydro topographic variables.

Key results:

  • IoU = 0.703 on 3,647 test tiles spanning 7 flood-prone regions (2019–2025)
  • Outperforms SAR-only state of the art (IoU = 0.67, Misra et al. 2025)
  • Calibrated uncertainty estimates via conditional diffusion model (ECE = 0.073)

Model Files

File Size Description
checkpoints/best_model_final_vv.pth 121 MB Temporal U-Net (10.55M parameters)
checkpoints/best_model_diffusion.pth 27 MB Conditional diffusion model (1.1M parameters)
model/norm_stats.json 1 KB Z-score normalization statistics

Quick Start

from inference.predict import FloodPredictor

predictor = FloodPredictor.from_pretrained()  # downloads weights automatically

flood_map, prob_map = predictor.predict(
    sar_a="path/to/s1_A.tif",
    cygnss_b="path/to/cygnss_B.nc",
    sar_c="path/to/s1_C.tif",
    merit_dir="path/to/merit_hydro/",
    region_bbox=(lon_min, lat_min, lon_max, lat_max)
)

Citation

@article{malandrin2026flood,
  title={Daily Flood Mapping at 90 m Resolution Through
         Physically-Constrained CYGNSS--SAR Fusion},
  author={Malandrin, Gauthier and Gerlein-Safdi, Cynthia},
  journal={IEEE Transactions on Geoscience and Remote Sensing},
  note={Under review},
  year={2026}
}
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support