Barnawa Catchment · Kaduna, Nigeria

Early Warning System

Current status · updated automatically every 30 minutes -
Checking…

Loading current conditions for the Barnawa catchment…

-m³/s
River flow right now
Cubic metres of water passing the catchment outlet each second
-mm
Rainfall, last 24 hours
Heavy rain (≥20mm/24h) has preceded every flood in the record
-
Forecast outlook
Highest level expected in the coming days

Locator map of the Barnawa catchment, Kaduna
Barnawa catchment, Kaduna State, Nigeria This system covers the ~3,809 km² basin draining to the Barnawa outlet; the deep-colored area is the flood-modeled footprint these alert levels are built around.
Want to see the flood record behind these numbers?
36 years of daily river-flow data, exactly how the alert levels were calculated, and two real flood events analysed in detail.
⚠ Historical replay, not a live feed. This view replays the 1990–2025 daily streamflow record against thresholds derived from a GEV (Generalised Extreme Value, L-moments) frequency analysis of the same record, and explains how those thresholds and the live forecast classification were built. Scrub the timeline or jump to a recorded episode below to see how the system would have classified it. For current conditions, use the Live conditions tab above.
Where this is Contributing basin vs. the flood-modeled Barnawa footprint
Map of the Barnawa contributing basin (pale) with the flood-modeled Barnawa footprint highlighted in deep teal

The pale outline is the full ~3,809 km² basin that drains to the catchment outlet used for this study's 36-year discharge record. The deep teal shape is not an administrative boundary — no such file exists for this project — it is the real, data-derived footprint of every grid cell with a modeled 100-year flood depth (the largest of the five modeled storms, and a superset of the 5/10/25/50-year footprints), i.e. the area this system actually exists to warn about. Its winding shape traces the main drainage channel.

Historical replay · 1990–2025 · GEV (L-moments), R² = -
-
-m³/s
NORMAL
Flow within the normal range for this catchment.
-
Threshold-exceedance episodes recorded, 1990–2025 (Watch level or higher)
-
Episode(s) reaching Warning or Emergency level, see event log for dates
Timeline replay
1990-01-012025-12-31
Daily discharge, 1990–2025 Hover to inspect · drag the timeline above to move the cursor
Frequency analysis Annual max. vs. Generalised Extreme Value (L-moments) fit, k = -
LevelReturn periodDischarge
Event log, all recorded episodes Click a row to move the replay there
Peak dateLevelPeak dischargeDuration

Rainfall-to-peak lead time

Two recorded flood seasons, rainfall trigger vs. discharge response

How this was built

From raw record to live alert, step by step

The system has two parts that share one set of thresholds: a statistical baseline built once from 36 years of historical daily discharge, and a live forecast feed checked against that same historical record and classified against the same thresholds. The six steps below cover both.

01

The data

36 years (1990–2025) of daily discharge at the Barnawa catchment outlet, sourced from GEOGloWS — a global, physically-based hydrological reanalysis that simulates historical streamflow for river reaches worldwide, including ungauged ones like this catchment. This is the same record used throughout the rest of this site.

02

Fitting a distribution to the annual floods

The single highest daily discharge in each of the 36 years was extracted, ranked, and fit to a Generalised Extreme Value (GEV) distribution using the method of L-moments — linear combinations of the ranked values that are more stable than ordinary moments on a 36-point sample, and the standard approach in hydrological frequency analysis. GEV is the general family; its shape parameter k decides whether the tail is heavy (k<0), bounded (k>0), or exactly Gumbel (k=0).

k = - α = - ξ = - R² = -

k came out at essentially zero, meaning this catchment's floods are well described by the simpler Gumbel (EV-I) distribution — a result of the fit, not an assumption made to simplify it.

03

Turning the fit into alert thresholds

The fitted distribution gives a discharge for any return period T (the "1-in-T-year event"): Q(T) = ξ + (α/k)·[1−(−ln(1−1/T))k]. Three return periods were chosen as the reporting thresholds — 5-year (Watch), 25-year (Warning), and 100-year (Emergency) — matching common civil-engineering convention for notable, serious, and design-flood-level events respectively. A 2-year discharge is also shown on the charts as an informal "Advisory" band, but it sits below the reporting threshold and is not a fourth alert level.

04

Finding historical flood episodes

The full 36-year daily record was scanned day by day. Any run of days at or above the Watch threshold — allowing a single dry day in between without breaking the run — is grouped into one "episode," recording its peak date, peak discharge, duration, and highest level reached. This recovers the flood episodes on record, including a genuine one-day spike in 2008 just above the Watch threshold.

05

Does rainfall give useful warning ahead of the river?

For the 2012 and 2022 flood seasons (the years with hourly rainfall data available), a rolling 24-hour rainfall total was computed and the most recent point before the discharge peak where it crossed 20 mm — a standard heavy-rainfall threshold — was found by searching backward from the peak. The gap between that rainfall trigger and the discharge peak is the case studies' "lead time," roughly 19–32 hours in these two events. That real lead time is why the live system watches rainfall as well as river flow.

06

Verifying and classifying the live forecast

The live discharge forecast comes from GEOGloWS reach 140653280, at the catchment's documented outlet. Before trusting it, its retrospective daily series was joined against this study's own streamflow record: 13,149 overlapping days, zero discrepancy — confirming it is the same reach the historical record itself comes from, not a nearby stand-in. Because of that, the live forecast's daily median is classified directly against the Watch/Warning/Emergency thresholds from step 3. The 25th–75th percentile spread is still shown for context, but only the median drives the classification, to avoid over-warning on the upper band.

Rainfall trigger. For the 2012 and 2022 case studies, the trigger time is the most recent point before the discharge peak at which trailing 24-hour rainfall reached 20 mm, used here as a stand-in for a forecast/nowcast rainfall alert. Scope. Episode detection merges exceedance days separated by a single dry day into one continuous episode. Data refreshes automatically every 30 minutes; see the Live conditions tab for the current fetch time.