Major session covering codebase infrastructure, data source
improvements, and new analysis notebooks. The main analytical work
extended the trigger performance analysis to both
Adamawa and Benue states via a new
parameterised notebook (13_model_performance.ipynb). An
initial version of 14_forecast_performance.ipynb was also
created, introducing skill-vs-leadtime and exceedance detection analysis
for both GloFAS and Google GRRR reforecasts.
src/constants.py)BENUE = "NG007", BENUE_STATE_ADM2_PCODES (5
riverine LGAs along the Benue river)BENUE_ADM2_PCODES to
ADAMAWA_ADM2_PCODES with a backwards-compatible aliasWUROBOKI_HYBAS and MAKURDI_HYBASSTATE_CONFIG dict parameterising Adamawa and
Benue state analysis by station name, LGA list, river extent, GloFAS
station, Google gauge, Floodscan blob path, and trigger thresholdssrc/datasources/worldpop.py (new):
WorldPop population data loading via STACsrc/datasources/hydrosheds.py
(updated): HydroSheds river network loadingsrc/datasources/glofas.py (major
additions): Extended reanalysis and reforecast loading; helper functions
for both Wuroboki and Makurdi stationssrc/datasources/grrr.py (major
additions): Google GRRR reanalysis and reforecast loading, including
HYBAS gauge lookup and streamflow extractionData download and processing pipeline for the extended analysis:
| Notebook | Purpose |
|---|---|
processing/download_glofas.ipynb |
Download GloFAS reanalysis for Makurdi and Wuroboki stations |
processing/download_glofas_reforecast.ipynb |
Download GloFAS reforecast ensemble |
processing/process_glofas_reanalysis.ipynb |
Process raw GloFAS reanalysis to parquet |
processing/process_glofas_reforecast.ipynb |
Process GloFAS reforecast ensemble to parquet |
13_model_performance.ipynb)Notebook parameterised by state via STATE_CONFIG,
reproducing the 2025 Wuroboki analysis approach for both stations:
Annual peak correlation: Side-by-side scatter plots comparing wet-season (Aug–Nov) annual discharge peaks against Floodscan annual mean SFED — one panel for GloFAS reanalysis, one for Google GRRR reanalysis. Each year is labelled, and the 5-year RP threshold is marked on both axes.
Precision, recall, F1: Performance metrics for three trigger configurations evaluated against Floodscan 5-year RP events:
| Trigger | Threshold |
|---|---|
| GloFAS reanalysis | 3,132 m³/s (Wuroboki) |
| Google GRRR reanalysis | 1,195 (Wuroboki) |
| OR logic (either source) | — |
A year-by-year table shows which years were events, which triggered, and which did not.
14_forecast_performance.ipynb)Initial notebook created with the following structure:
STATE_CONFIG| Notebook | Purpose |
|---|---|
13_model_performance.ipynb |
Annual peak correlation + Precision/Recall/F1 for GloFAS, Google, and OR trigger |
14_forecast_performance.ipynb |
Skill vs leadtime and exceedance detection — initial version |
14_forecast_performance.ipynb: switch to met-convention
POD/FAR, implement cumulative activation logic, add probability of
activation