🌩️ StormNET · Quick Tutorial 3 of 3

Modeling an Urban Watershed

Conceptual walkthrough of urban watershed modeling: subcatchment geometry, runoff characteristics, rainfall input, infiltration, evaporation, outlets, water balance, runoff visualization, and sensitivity analysis.

StormNET Tutorial 3 Prereq: MAGNET4WATER account 11 sections · nested modeling steps

Learning objectives

  1. Represent an urban watershed as subcatchments, outlets, storage, and drainage pathways.
  2. Connect physical watershed properties to model parameters: area, width, slope, imperviousness, roughness, depression storage, and infiltration.
  3. Define rainfall forcing and simulation controls for storm-event analysis.
  4. Interpret water-balance, map-view, time-series, profile, and 3D results as engineering evidence.
  5. Refine the model with sensitivity testing and green-infrastructure design experiments.

How to think about the model

This example is more than a button-by-button walkthrough. It shows the logic of urban watershed modeling: rainfall enters a catchment, some water is intercepted, infiltrates, evaporates, or is stored, and the remaining runoff is routed to a defined outlet.

  • Geometry controls travel time and peak timing.
  • Imperviousness and roughness control runoff volume and hydrograph shape.
  • Infiltration and depression storage determine how much rainfall becomes runoff.
  • Visualization is used to check whether the model behavior is physically reasonable.

1Define Subcatchment Geometry

💡 Why Geometry Matters

A subcatchment's shape determines how quickly runoff concentrates at the outlet. A long, narrow catchment delays the peak; a wide, short one delivers it fast. In StormNET, geometry is defined by drawing a polygon on the georeferenced map — the platform computes area automatically and helps estimate the characteristic width, which controls the effective sheet-flow path length. Getting the geometry right sets up every calculation that follows.

The subcatchment geometry helps to define the subcatchment area and characteristic width, which help to control runoff. Subcatchment area is automatically calculated from the georeferenced map display. Characteristic width should be computed/estimated by the user (see more below in Define Runoff Characteristics.

Figure 3

The first step is to draw the subcatchment in the map display:

  • Navigate to: Network Objects > Hydrology > Subcatchments > Right-click and select ‘Start Drawing’
  • Click on the map to add vertices of the subcatchment polygon. For this example, a rectangular subcatchment is added along a stretch of the Grand River in southwest Lansing, Michigan, USA (see Figure 2).
  • Double-click to close the subcatchment.
  • Click ‘Stop Drawing’ in the Subcatchments submenu
Figure 4

Figure : Drawn subcatchment in the StormNET environment. This hypothetical development is situated along the Grand River in southwest Lansing, Michigan, USA.

2Define Runoff Characteristics

💡 The Nonlinear Reservoir Model

StormNET models surface runoff as effective sheet flow over a nonlinear reservoir. The subcatchment surface is divided into pervious and impervious subareas, each with its own roughness and depression storage. Water ponds on the surface until it exceeds the depression storage depth — then it flows as sheet flow governed by Manning's equation. The characteristic width (W = Area / Flow Path Length) controls how fast water reaches the outlet. Wider subcatchments produce faster, higher peaks. This simple but powerful framework captures the essential physics of urban hydrology.

Runoff is computed in the following manner: first, precipitation “losses” are calculated (interception/depression storage, surface evaporation, and infiltration), and the remaining (or “excess”) precipitation dictates the amount of additional water that becomes runoff. The runoff depth (d) is used to compute runoff flow (Q) via Manning’s equation:

The underlying conceptual model for runoff sheet flow assumes a rectangular subcatchment defined by a width (W), flow path length (L), and effective (uniform) slope (So). The one-dimensional runoff flow is aligned along the length axis and move towards a “collection channel” that instantaneously routes water to the subcatchment outlet (see Figure 3). The relationship between the characteristic width, subcatchment area, and average flow path length depends on the assumed position of the outlet:

  • A “single-sided” subcatchment (Scenario A) gives the typical relationship between width, area and length: W=A/L.
  • A “double-sided” subcatchment (Scenario B) yield: W=A/(L/2)=2A/L

In reality, subcatchments are often not rectangular. In that case, an average flow path length (computed or approximated from real, variable lengths) should be substituted for the uniform flow path length.

Note that stormnet allows modeling the mix of pervious and impervious land covers within a subcatchment, e.g., an impervious parking lot surrounded by pervious area of grass and other vegetation. Runoff is calculated separately for each subarea, and total combined runoff is routed to the subcatchment outlet.

Assign Slope, Width, and Manning’s Roughness

In StormNET, the following parameters are needed as input to compute runoff with Manning’s equation: subcatchment area (A), characteristic width (W), slope, and Manning’s roughness.

Figure 5

Users use the Subcatchment editor interface to define the subcatchments runoff characteristics:

  • Network Objects > Hydrology > Subcatchments > Edit SubCatchments
  • Or, click within an existing subcatchment

Use the drop-down menu at the top of the menu to select/change the Subcatchment to be edited (see Figure 4).

StormNET computes subcatchment area based on its drawn extent in the georeferenced map display. The computed area is automatically populated as the default value in the editor (but can be overwritten, if desired). See Figure 5

The area and estimated average flow path length should be used to calculate the subcatchment width. A default value of 500ft is provided (Figure 5).

In this example, the outlet will be placed at the bottom-right corner of the subcatchment - essentially the same configuration as shown in Scenario A of Figure 3. Therefore, W=A/L=(7.5acres)/(365ft)=895ft

The effective slope should be specified by the user (default: 0.5%).

Manning’s roughness is assigned for pervious portions and impervious portions of the subcatchment (Figure 6). (Recall that Stormnet allows modeling the mixing of different land covers within subcatchment based on percentage of area covered). Default values of 0.01 and 0.1 are used for impervious and pervious area, respectively. The default values are applied in this example.

Click the ‘?’ help button to view a table of typical values of n for different surfaces (see Figure 7).

Assign Percent Pervious / Impervious

Use the “% imperv” field to control the percentage of impervious cover in the subcatchment (not including LIDs) – see Figure 8. Percentage pervious cover is calculated automatically for using in water balance and runoff calculations.

Figure 6

Figure : Non-linear reservoir routing or effective sheet flow runoff.

Figure 7

Figure 4: Subcatchment editor interface.

Figure 8

Figure 5:Input fields for subcatchment area, characteristic width, and slope.

Figure 9

Figure :Input fields for Manning’s roughness.

Figure 10

Figure : Typical values of Manning's roughness in the StormNET realtime help page.

Figure 11

Figure 8:Input field for percentage impervious cover.

3Define Rain Input

StormNET enables automatic generation of spatially explicit rainfall time series based on 1) historical data, 2) future projections; and 3) design storm events or historical storm statistics.

In this example, we apply a pre-defined design storm as an illustration.

Users can interactively generate time series data based on a statistical temporal distribution for a design storm of a given depth, duration, and return period. Users may utilize a variety of standard deign storm distributions and use Intensity-Duration-Frequency curve information (if available). The results are automatically used as input into a Stormnet model.

Add a Rain Gage and Assign Storm Event (Rain Time-Series)

Modeling precipitation in StormNET requires 1) adding a rain gage to the model; 2) assigning the rain gage to a precipitation time-series; and 3) linking the subcatchment to the rain gage.

Figure 12

To add a rain gage to the model:

  • Network Objects > Hydrology > Rain Gages > Right-click and select ‘Start Drawing’
  • Click in the map display to add a rain gage
  • Select ‘Stop Drawing’ from Rain Gages submenu

To edit the rain gage:

  • Click on the rain gage map icon; this opens the Rain Gage editor (see Figure 10) (or select ‘Edit Rain Gage from the Rain Gage submenu)
  • Define a rain data format (intensity, volume, or cumulative); in this example we use ‘VOLUME’.
  • Select the 2hr-Volume as the Series Name (default series) – this is the time-series that will be used to compute precipitation input during simulation.
  • Click ‘Show Plot’ to preview the rain time-series
Figure 13

Note: to edit the time-series:

  • Network Objects > Time Series > Right-click and select ‘Edit Time Series’; this opens the Time Series Editor interface (see Figure 11)

To link the rain gage to the subcatchment:

  • Open the Subcatchment editor interface, SubCatchment Parameters subtab (see Figure 12).
  • Select the rain gage ID from the drop-down menu next to ‘Rain Gage’
  • Save the changes
Figure 14

Figure : Rain gage added to the model.

Figure 15

Figure 10: Rain Gage editor interface.

Figure 16

Figure 11:Time Series Editor interface for defining a storm event (rain time-series).

Figure 17

Figure 12: Linking a rain gage to a subcatchment.

4Define Interception

Interception is the first abstraction before runoff begins. In urban areas, water can be temporarily held on pavement, rooftops, vegetation, and shallow surface depressions. Changing interception-related assumptions affects the early part of the hydrograph and the total runoff volume.

Interception or depression storage is the amount of input water (precipitation and/or snowmelt) that can accumulate before runoff occurs – no runoff can occur until the subcatchment water depth is greater than the depression storage depth (refer to Figure 1).

Different depression storage depth can be specified for impervious and pervious subareas of the subcatchment.

To assign depth of depression storage depths:

  • Open the Subcatchment editor interface, SubCatchment Parameters subtab.
  • Update the input in ‘Dstore-Imperv’ (depth of depression storage in impervious subarea) - see Figure 13). This example uses the default value
  • Update the input in ‘Dstore-Perv’ (depth of depression storage in impervious subarea). This example uses 0.15 in

Refer to typical values of depth of depression storage in the realtime help page.

Figure 18

Figure 13:Input fields for specifying depression storage depth in impervious and pervious subareas of the subcatchment.

Figure 19

Figure 14: Typical values of Manning's roughness in the StormNET realtime help page.

5Define Infiltration Characteristics

💡 Infiltration: Where Rainfall Meets Soil

Infiltration is the process by which water enters the soil — and it's the single biggest factor separating urban floods from natural drainage. StormNET supports multiple infiltration methods: Horton (exponential decay), Green-Ampt (physics-based wetting front), and SCS Curve Number (empirical, based on soil type and land use). The Curve Number method is widely used because it integrates soil classification and land cover into a single parameter — and MAGNET can extract it automatically from live-linked spatial databases. Higher curve numbers mean more runoff; lower means more infiltration.

Within pervious areas, StormNET models infiltration into unsaturated soils using one of the following methods: 1) the Horton method, 2) the Modified Horton method, 3) the Green and Ampt methods, 4) the SCS Curve Number method. Infiltration is not modeled within impervious subareas.

Here we will illustrate modeling infiltration with the SCS Curve Number method. The Curve Number method calculates runoff resulting from a given precipitation input and the hydrologic soil group, land use, and hydrologic condition. The difference between input precipitation and calculated runoff is the infiltration amount.

Assign Infiltration Method and Infiltration Parameters

Navigate to the Infiltration / Pollutants / Landuse subtab of the Subcatchment editor interface. The left-panel is used to assign the infiltration method and infiltration parameters (Figure 15).

Select ‘CURVE_NUMBER’ from the drop-down menu next to ‘Infil._Method’.

For this example, we will utilize the default values for curve number, conductivity, and drying time. Refer to the ‘?’ (realtime help) for a table of typical values of curve number and saturated conductivity based on land use and hydrologic soil group Figure 17.

Note: users may examine the land use and soil type/soil properties at their site by mapping Big Data live-linked to the StormNET platform (not shown here; this is detailed in another tutorial):

  • Navigate to VISUALIZATION (header menu) > Data Mapping > Draw Model area
  • Follow the resulting interface to define a mapping area and which parameters to extract and display: DEM, soil, and/or land use and derived parameters, e.g., Curve Number

Alternatively, users may directly extract the Curve Number from Big Data :

  • Navigate to: SIMULATE (header menu) > Add Spatial Data
  • Click ‘ Get Spatial Data’ in the interface that appears (see Figure 18)
  • When the task is finished, notice that the Curve Number is updated in the Subcatchment editor interface (see Figure 19).
Figure 20

Figure : Infiltration Data tab of the Subcatchment editor interface.

Figure 21

Figure : Example of selecting the Curve Number method for modeling infiltration within the subcatchment.

Figure 22

Figure : Realtime help page for Infiltration Data, including tables of typical values for curve number and saturated conductivity.

Figure 23

Figure : Steps for assigning infiltration parameters from Big Data live-linked to Stormnet.

Figure 24

Figure : Updated Curve Number in Subcatchment editor interface after extracting from Big Data server.

6Define Evaporation

Evaporation can be specified as constant daily rate or as monthly averages throughout the year (e.g., for long-term simulation). Evaporation can also follow a time series (similar to rain time-series data), climate file, or users can apply the relatively simple temperature relationship (Hargreaves approach) with automated, instant extraction of maximum and minimum air temperature from:

  • the global CFSR climate generator database (about 38km resolution) containing temperature for the period 1979 to 2018.
  • the NOAA PRISM database containing seamless USA-wide temperature datasets, from 1981 to 6 months ago, at 4km-resolution (with 800m coming soon).

In this example, a constant evaporation rate is applied throughout the half-day simulation of a single (design) storm event is utilized to compute evaporation during simulation.

Assign Evaporation Rate

Figure 25

Navigate to: Network Objects > Climatology > Edit Climatology. This opens the Climatology editor interface (Figure 20).

The default subtab is ‘Temperature’ where users can specify/import temperature data which can be used to compute evaporation. Click on the ‘Evaporation’ subtab and assign a constant daily evaporation rate of 0.05in./day (see Figure 21).

Figure 26

Figure : Climatology editor interface.

Figure 27

Figure : Assigning a constant daily evaporation rate to be applied throughout simulation.

7Define Subcatchment Outlet

The outlet of a subcatchment is the location/network feature that receives the runoff. The outlet can be a node (e.g., a junction, divider, or storage unit), an outfall (special node), or another subcatchment.

In this example, an outfall is utilized. An outfall represents the ‘end-point’; water at an outfall essentially leaves the model network. Outfalls can represent free outflow (i.e., water leaves freely with no tailwater effects), or they can involve user defined tailwater effects (e.g., fixed stage, temporally variable elevations, etc.

Add an Outfall and Assign as Subcatchment Outlet

First, add an Outfall to the bottom-right corner of the subcatchment (Figure 22):

Figure 28
  • Network Objects > Hydrology > Nodes > Outfalls > Start Drawing
  • Click on the map to add the Outfall node
  • Select ‘Stop Drawing’ in the Outfalls submenu

Next, edit the Outfall in the Outfall Editor (Figure 23):

  • We will use the default Type: ‘FREE’ (free outflow)

Note that invert elevation (Invert El) is, by default, zero. To add an invert elevation based on DEM:

  • SIMULATE (header menu) > Add DEM (Figure 24)
  • After a few moments, the extracted DEM at the outfall location will be used to compute the invert elevation.
  • The invert elevation is computed based on a DEM offset (DEM minus offset equals invert elevation. The offset used here is 5ft (Figure 25).
  • Note the updated value in the Outfall Editor interface.

Now link the Outfall to the Subcatchment as its outlet:

  • Navigate to Subcatchment Editor interface, SubCatchment Parameters interface
  • Select ‘Outfalls’ from the Outlet node type drop-down menu, and select Outfall 3 (ID from this example) – see Figure 26.
  • Click Save. Notice the linkage is now represented in the map display (Figure 27)
Figure 29

Figure : Rain gage added to the model at bottom-right corner of subcatchment (essentially the configuration shown in Figure 3).

Figure 30

Figure : Outfall Editor interface.

Figure 31

Figure : Utilizing the ‘Add DEM’ tool to assign invert elevations based on DEM to the nodes in the model.

Figure 32

Figure :Updates to the Outfall Editor interface after utilizing the ‘Add DEM’ tool.

Figure 33

Figure 26: Assigning the outfall node as the subcatchment outlet.

Figure 34

Figure : Map display after assigning the outfall node as the subcatchment outlet.

8Simulate Water Balance & Runoff

After simulation, do not only check whether the model runs. Check whether the continuity error, peak timing, storage response, and routed discharge are consistent with the physical watershed you intended to represent.

StormNET simulates / solves the water balance, runoff depth, and runoff outflow at each time-step of over a simulation spanning a specified length (simulation period).

Assign Simulation Length (Start and End Date & Time)

  • Navigate to: Network Objects > Options > Dates subtab of Simulation Options subtab
  • The simulation length is by default: 48 hours, but our storm event is 2hr
  • Reduce the simulation length to 6 hours by making the End Analysis Time: 6:00pm of the same date as Start Analysis (see Figure 28).

Run Simulation

All aspects of setup and parameterization of relevant hydrological processes has been completed, as the model is ready for simulation, i.e., solving the subcatchment water balance (runoff depth) and simulating the runoff hydrograph for 2-hour storm event.

  • Navigate to: SIMULATE (header menu) > Run Simulation (Figure 29).
  • When the simulation is complete, a summary update report will appear. Also shown is a map display editor that allows users to explore the model outputs or inputs at different times (see next section).
Figure 35

Figure : Adjusting the simulation length: ‘Start Analysis on’ and ‘End Analysis on’ options.

Figure 36

Figure : Run Simulation.

Figure 37

Figure : Status Report and Map Visualization interface, post-simulation.

Customize Map Visualization

Users can show model outputs or inputs in the plan-view (map-based) as color-coded network objects (subcatchments, links, and/or nodes). Use the Map Visualization interface to change the parameter or simulation time-step. For example, we might be interested in observing subcatchment runoff at the time of peak precipitation, in this case, 2:00:00 (see Figure 31: Adjusting the map visualization of model outputs (runoff).Figure 31). Or, we map be interested in knowing what the precipitation intensity (see Figure 32).

Figure 38

Figure : Adjusting the map visualization of model outputs (runoff).

Figure 39

Figure : Adjusting the map visualization of model inputs (precipitation)).

9Visualizing Runoff

💡 From Numbers to Understanding

A runoff hydrograph tells the story of a storm event: when runoff begins, how fast it rises, when it peaks, and how it recedes. The peak flow determines pipe sizing. The volume under the curve determines storage requirements. The time to peak determines whether upstream and downstream systems conflict. StormNET plots both the runoff hydrograph and the "losses" hydrograph — showing exactly how much water was intercepted, infiltrated, and evaporated. Together, they give you the complete water balance in visual form.

There are a number of ways to map, chart, visualize, and analyze the results of the StormNET model. For this example, we are interested in visualizing the runoff hydrograph (time-series) for the simple subcatchment.

To view the runoff hydrograph (runoff time-series):

  • Navigate to: VISUALIZATIONS (header menu) > Simulation > Basic Model > Time Series
  • In the interface that appears, select ‘Subcatchment’ as Object Type, ‘Runoff’ as Parameter (see
  • Double-click in the subcatchment and then click the ‘+’ next to Feature ID
  • Click ‘Show Timeseries Plot’

A graph of runoff over simulation time will appear (see Figure 34). Note that peak runoff occurs at about the same time as peak precipitation.

The user can change the parameter to be plotted, e.g., to “losses” (evaporation, infiltration, storage).

Figure 40

Figure : Creating a runoff hydrograph.

Figure 41

Figure : Runoff Hydrograph and a “Losses Hydrograph” for the subcatchment.

10Sensitivity Analysis

Sensitivity analysis is the fastest way to learn which assumptions control the result. Change one parameter at a time, compare hydrographs and water budgets, and document whether the response is hydrologically plausible.

11Design Experimentation

Design experimentation turns the model into a planning tool. Use alternatives such as lower imperviousness, added storage, green roofs, rain gardens, or changed outlet controls to compare runoff reduction and timing benefits.

The model is built. Now explore how design choices change system behavior — imperviousness, subarea routing, and their impact on runoff peaks and volumes.

💡 Why Sensitivity Analysis Matters

A model's value isn't just in predicting what will happen — it's in exploring what could happen. Sensitivity analysis asks: which parameters matter most? By varying imperviousness from 0% to 100%, you see the full spectrum from natural meadow to concrete parking lot. By routing impervious runoff through pervious areas, you simulate the effect of green infrastructure. StormNET's real-time simulation makes this exploration instant — change a parameter, re-run, compare. This is how engineers optimize designs: not by guessing, but by systematic experimentation.

StormNET’s integrated modeling and design environment enables users to experiment with different scenarios/configurations/parameters and almost instantly visualize the impact of their modifications. This is critical for model sensitivity analysis (i.e., how different parameters/processes control the water dynamics) and model optimization (how the system is best configured to meet compliance requirements).

In this example, it is interesting to consider how runoff routing and degree of imperviousness impacts the subcatchment runoff hydrograph.

Route Runoff to the Pervious Subarea

Let’s first look at the impact of routing runoff from the impervious subarea to the pervious subarea (as opposed to routing impervious directly to the subcatchment outlet, as was done earlier).

The resulting time-series is shown in Figure 36. Note that the peak flow is reducing, and the onset of runoff (and its peak flow) is delayed relative to the ‘baseline’ case where runoff from the impervious areas is routed directly to the subcatchment outlet. This is because the runoff routing allows for more infiltration of water in the pervious area that would have otherwise contributed to direct runoff to the subcatchment outlet.

Model a Completely Impervious Subcatchment

Now let’s consider the case of an 100% impervious subcatchment.

The resulting time-series is shown in Figure 38. Note that the peak runoff is much higher than in the case of a mixed subcatchment (25% impervious, 75% pervious). This is expected, as there is no longer any infiltration in the model (now converted to runoff).

Model a Completely Pervious Subcatchment

Finally, consider the case of an 100% pervious subcatchment.

The resulting time-series is shown in Figure 40. Note that the peak runoff is significantly less than in the case of a mixed subcatchment (25% impervious, 75% pervious) or impervious subcatchment. Also, the timing of the onset of runoff to the outlet and its peak flow is delayed (as was seen before in the runoff routing example). Again, this is expected, as the entire subcatchment area is available for more infiltration (and therefore less runoff).

Figure 42

Figure 35: Routing runoff from the impervious subarea to the pervious subarea.

Figure 43

Figure 36: Runoff hydrograph for the case of runoff routing from impervious subarea into pervious subarea.

Figure 44

Figure 37: Assigning the subcatchment as 100% impervious cover.

Figure 45

Figure 38: Runoff hydrograph for the case of 100% impervious cover in the subcatchment.

Figure 46

Figure 39: Assigning the subcatchment as 100% pervious cover.

Figure 47

Figure 40: Runoff hydrograph for the case of 100% pervious cover in the subcatchment.

Next steps: This tutorial covered single-subcatchment modeling. For a complete stormwater network with multiple subcatchments, junctions, conduits, storage units, weirs, 3D visualization, and green infrastructure — see the StormNET Georeferenced Model Tutorial.