Modelling unit: sub-watersheds¶
Every quantity in SWAG-DSS is computed at the sub-watershed level, using hydrologically-conditioned drainage polygons clipped to each WRUA boundary.
Why sub-watersheds¶
A sub-watershed is a small, hydrologically meaningful unit. Each polygon has:
- a single defined outlet,
- a known upstream neighbour (where its inflow comes from), and
- a known downstream neighbour (where its outflow goes).
That topology is what makes the reallocation step in SWAG-DSS valid. Water can only move along the drainage chain, downhill, never sideways into an unrelated polygon.
Per-polygon attributes¶
Each sub-watershed carries five attributes that drive the water-balance and intervention pipelines:
| Attribute | Source | Used for |
|---|---|---|
| Flow direction | Drainage dataset | Upstream-to-downstream routing chain |
| Area | Drainage dataset | Volumetric balance, demand aggregation |
| Slope | SRTM 30 m DEM | ET, pond suitability |
| Soil class | ISRIC SoilGrids | Effective rainfall, pond suitability |
| Land cover | ESA WorldCover | Cropland mask, ET coefficients |
Resolution¶
SWAG-DSS resolves 1,782 sub-watersheds across 116 WRUAs. Every one of them is both drawn on the map and modelled: there is no set of polygons carrying no results, and no results without a polygon.
Measured from the served polygons, the median sub-watershed is 5.3 km² and the mean is 10.2 km², ranging from 0.25 km² to 87.4 km². A WRUA holds anywhere from 1 to 220 sub-watersheds, the median being 12.
The study area contains 119 WRUA outlines. The three that are not modelled have no cropland, so there is nothing for the water balance to compute; they are drawn as context and are not selectable.
How it shows up in the app¶
- Spatial map: sub-watershed polygons are drawn, tinted by deficit class.
- Dashboard: KPIs roll polygon-level results up to the WRUA, but the heatmap and intervention list stay at sub-watershed resolution.
- Reallocation: surplus volumes are routed from one polygon to its downstream neighbour, strictly within the same WRUA boundary.
Data identifiers¶
The sub-watershed identifier in CSVs and JSON is band_id, and it equals the
source GeoPackage's hydro_id. Despite the name it carries no elevation meaning:
it is the polygon id, so polygons sharing an elevation do not collide.
band_id is unique within a WRUA, not across the study area. Any join must
use the pair (WRUA_NAME, band_id). This is why the basin-wide map and heatmap
label each unit WS <id> · <wrua> rather than by id alone.
Where to look¶
app/data_prep/prepare_hydrosheds.py: pipeline that builds the sub-watershed inputs.- Data pipeline: how the polygons are populated end-to-end.
- Reallocation rules: how polygons participate in scenario logic.
- API reference: the endpoints that serve these units.