SWATGenXSWATGenX
ServicesWatershed ExplorerExample modelsCloud calibrationDocsPricing

SWAT+ calibration QA

Matching USGS gages to SWAT+ channels

Calibrating SWAT+ against USGS streamflow only works when each gage sits on the channel that represents the same place in the model — here is how SWATGenX makes that match NHD-first, classifies every gage, and vets which ones are truly ready for hands-off calibration.

QA step 2 of 3 (delineation → this assignment → drainage-area audit). Peace River HUC-8 is the transparent full-inventory reference; the same screens run on the Myakka, Hillsborough, and Tampa Bay models below.

All 76 Peace gages — class, then the calibration funnelnothing dropped
Assignment class (54 auto-cal eligible · 22 flagged for review)361613936 · tributary (clean)16 · mainstem (known NHD offset)2 · mainstem (clean)13 · lake outlet — review9 · canal / artificial — reviewCalibration funnel — assignment alone is not enoughFull gage inventory76Auto-cal assignment class54Usable obs (2000–2024)20Hands-off cal-ready16
Computed live from the committed v3 inventory — NHD-first reach choice, SWAT-second mapping, then class, observation-coverage, and area gates before any calibration runs.
  • 76-gage full inventory · nothing dropped
  • 54 auto-cal eligible · 22 flagged for review
  • NHD-first reach pick, SWAT-second mapping
  • Obs coverage vetted: 16 hands-off cal-ready

This is the second step of the SWATGenX streamflow-QA pipeline: after the river network is delineated from NHDPlus HR (see the delineation comparison), each USGS gage has to be tied to the SWAT+ channel that represents the same hydrologic location. Get this wrong and a perfectly good model will appear to fail calibration for the wrong reason.

We use the Peace River HUC-8 (Florida) as a transparent, fully public reference: how the NHD-first assignment works, how every gage is classified (tributary, mainstem, lake outlet, canal), and how many gages clear the quality gates for hands-off calibration. Per-gage area fidelity — whether the assigned channel carries the right drainage area — is then checked on the drainage-area audit page.

Assignment is necessary but not sufficient. The same v3 screens now run across the neighboring Florida-fleet models (Myakka, Hillsborough, and the Tampa Bay catalog outlet), and applying them there taught us a lesson worth its own section below: observation coverage has to be vetted independently of assignment, because a station file can be 100% missing-data sentinel while looking perfectly assigned on every map.

FAQ

How does SWATGenX assign USGS gages to SWAT+ channels?

NHD-first, SWAT-second. The reference reach is picked on the NHDPlus HR hydrography using the gage coordinates and NWIS site context (drainage area where reported, stream name, lake/canal setting) — SWAT+ areas play no role in the pick. That reference reach is then crosswalked to the SWAT+ chandeg.con channel, every gage gets an assignment class (clean tributary, clean mainstem, mainstem with known NHD offset, lake outlet, canal/artificial), and only the three calibration-ready classes with vetted observation coverage and an in-band SWAT/NHD area ratio go to hands-off calibration. On the Peace River HUC-8 reference inventory that is 76 gages → 54 auto-cal eligible by class → 16 fully cal-ready.

Why is a correct channel assignment not enough for automatic calibration?

Because a gage can be perfectly placed and still have nothing to calibrate against. Streamflow archives use a −99 sentinel for missing days, and a station file can be 100% sentinel — on the neighboring Myakka HUC-8 model, 20 of 34 station observation files contained no real observations at all, so a roster vetted on assignment and drainage area alone would have dispatched calibrations against empty records. SWATGenX therefore vets observation coverage as its own gate: a gage only counts as cal-ready if at least 80% of the calendar days in the calibration window carry real (non-sentinel) values. On Peace, that gate — not assignment — is the big cut: 54 class-eligible gages reduce to 16 hands-off cal-ready.

Why not assign stations using nearest channel or SWAT drainage area alone?

Nearest-channel rules fail at tributary–mainstem confluences, lake outlets, and canals. Area-only matching can pick a mainstem reach with plausible TotDASqKm while the gage is on a tributary. SWATGenX therefore selects an NHDPlus HR reference reach first, then maps it to SWAT+ output.

Does SWAT+ drainage area choose the reference reach?

Not in the improved method. QSWAT AreaC and chandeg.con areas are used only after assignment to audit agreement and classify calibration readiness. That keeps assignment errors separate from true SWAT+ vs NHDPlus HR area differences.

What stations are used on the drainage-area audit page?

Drainage-area closure should be interpreted on stations classified as calibration-ready (mainstem_clean, tributary_clean, or mainstem_known_nhd_offset with documented offset). Lake, canal, ambiguous, and missing-output stations require review or exclusion first.

What is mainstem_known_nhd_offset?

The station is on the correct mainstem channel, but SWAT+ chandeg area is systematically higher than NHD TotDASqKm (about 10–17% on Peace mainstem gages). That is treated as a delineation-definition offset, not fixed by moving the gage to a smaller side channel.

Next steps

Build a model of your watershed
SWAT+ drainage area audit (TxtInOut vs NHD)
Methodology

Last updated 2026-07-13.