# π UFFFS β Urban Flood Forecasting Framework
> Reproducible, scalable workflow for building and running urban flood models using **Snakemake + HydroMT + SFINCS**
---
## π Overview
UFFFS provides a **fully configuration-driven workflow** for:
- π§± Building base SFINCS model schematisations
- π§οΈ Running flood events with different forcing scenarios
- πΊοΈ Postprocessing and merging floodmaps
- π§© Comparing model configurations (e.g. baseline vs lidar)
The framework is designed for:
- reproducibility β
- scalability across cities β
- efficient reuse of models β
---
## π§ Workflows
UFFFS consists of two main workflows:
---
### π§± Build workflow
Builds reusable **base SFINCS models** using HydroMT.
- Reads configuration from `config/cities.yml`
- Generates model schematisations
- Writes outputs to:
```
outputs/{city}/{sfmodel}/sfincs_base/
```
π See:
π `docs/build_workflow.md`
---
### π§οΈ Event workflow
Runs **event simulations** on top of base models.
- Updates forcing (ERA5 / synthetic)
- Runs SFINCS
- Postprocesses floodmaps
- Merges results **per model group**
Outputs:
```
outputs/{city}/events/{event}/
{city}_{event}_{group}_floodmap.tif
```
π See:
π `docs/events_workflow.md`
---
## ποΈ Repository structure
```
βββ config/
β βββ cities.yml # Model definitions (incl. groups)
β βββ events.yml # Event configuration
β βββ templates/
β βββ sfincs/
β βββ build_base.yml
β
βββ workflows/
β βββ Snakefile # Build workflow
β βββ Snakefile_events # Event workflow
β βββ scripts/
β βββ build_sfincs.py
β βββ update_sfincs_forcing.py
β βββ postprocess_sfincs.py
β βββ merge_floodmaps.py
β
βββ docs/
β βββ build_workflow.md
β βββ events_workflow.md
β
βββ outputs/ # Generated models and results
βββ logs/ # Log files
```
---
## βοΈ Configuration
### Base models
Defined in:
```
config/cities.yml
```
Inclu β¦