Accurate rainfall input is the foundation of any EPA SWMM model. The quality of your hydrologic simulation depends directly on how well you represent precipitation. This tutorial covers the essential techniques for setting up rain gages, creating time series, implementing design storms, and importing measured rainfall data.
Field names and rainfall-format definitions in this tutorial follow the EPA SWMM 5.2 User’s Manual, especially the Rain Gage property reference and Chapter 11 rainfall-file guidance.
Understanding Rain Gages in SWMM
Rain gages are SWMM objects that provide rainfall data to subcatchments. Each subcatchment is assigned to a rain gage, and multiple subcatchments can share the same gage. SWMM supports three rainfall data formats:
- Intensity - Average rainfall rate over the interval, in inches/hour or mm/hour
- Volume - Rainfall depth that fell during the interval, in inches or mm
- Cumulative - Accumulated depth since the start of the last series of non-zero values, in inches or mm
Rain Gage Properties
When creating a rain gage, you must specify:
- Rain Format: Intensity, Volume, or Cumulative
- Time Interval: Recording interval (e.g., 5 min, 15 min, 1 hour)
- Snow Catch Factor: Adjustment for snow (1.0 for rain only)
- Data Source: Time series or external file
Creating Time Series for Design Storms
SWMM uses time series to define how rainfall varies over time. For design applications, you typically create synthetic storms based on local design criteria.
Entering an Adopted Temporal Distribution
Obtain the complete temporal distribution from the edition and figure, table, or data file adopted for the project. Do not combine selected ordinates from different reproductions or infer missing increments from a short example. Convert every cumulative fraction to depth using the same total storm depth, then check that the series begins at zero, never decreases, and ends at the adopted total.
In SWMM, enter the resulting time-value pairs in the Time Series Editor and set the rain-gage format to match the values you prepared. A cumulative series must contain cumulative rainfall depth; an incremental depth series must use the Volume format. Preserve the source interval so the peak portion of the distribution is not smoothed or shifted.
Converting IDF to Hyetograph
For a method that expressly requires an alternating-block hyetograph, first convert each duration-specific IDF intensity to cumulative depth:
Where:
- P(t_j) = cumulative depth through duration t_j
- i(t_j) = average IDF intensity for duration t_j
- t_j = duration from the start of the nested depth sequence
Then difference successive cumulative depths to obtain each block:
Rank the incremental blocks and place the largest at the selected peak position, alternating the remaining blocks before and after it according to the required convention. Multiplying every IDF intensity by only the single block interval would be incorrect because an IDF intensity is an average over its associated duration.
Importing Historical Rainfall Data
For model calibration or continuous simulation, you will need to import measured rainfall from external sources.
Supported File Formats
SWMM can read rainfall from several file formats:
- User-prepared files - Station ID, date/time, and a rainfall value on each line
- NCEI hourly or 15-minute precipitation files - In formats identified in the User’s Manual
- Legacy U.S. and Canadian agency formats - Only where the exact documented format matches
User-Prepared File Format
The user-prepared rainfall format is space-delimited, with one record per line:
;Example rainfall file for SWMM
;Station ID: GAGE1
;Units: inches
GAGE1 2024 6 15 0 0 0.00
GAGE1 2024 6 15 0 15 0.02
GAGE1 2024 6 15 0 30 0.08
GAGE1 2024 6 15 0 45 0.15
GAGE1 2024 6 15 1 0 0.12
GAGE1 2024 6 15 1 15 0.06
Each line contains: Station ID, Year, Month, Day, Hour, Minute, Value
Setting Up External File Input
To use an external rainfall file:
- Open the Rain Gage properties dialog
- Select “File” as the Data Source
- Specify the file path
- Enter the Station ID that matches your file
- Set the appropriate rain units
Rainfall Time Series Best Practices
Temporal Resolution
Rainfall, runoff, routing, and reporting intervals serve different purposes. Preserve the resolution and accumulation convention of the governing rainfall source, then test whether refinement materially changes peaks, volumes, continuity, or instabilities. There is no universal five-minute or fifteen-minute interval that is appropriate for every watershed and analysis objective.
Spatial Distribution
For larger watersheds, consider spatial variation in rainfall:
- Use multiple rain gages when the available data and watershed scale resolve meaningful spatial variation
- Assign subcatchments using a documented spatial method rather than proximity alone
- Consider using NEXRAD radar-rainfall data for complex spatial patterns
The Thiessen polygon method provides a systematic way to assign rain gages:
Where A_i is the Thiessen polygon area for each gage.
Design Storm Selection
Choose design storms based on your project requirements:
Frequency-Based Storms
Return periods and required event sets come from the governing code, owner criteria, and risk assessment. Do not infer the required event from a generic application table.
Storm Duration
Test the range of storm durations required by the governing criteria. The critical duration for peak flow can differ from the duration that controls storage, surcharge, or overflow.
Common Mistakes to Avoid
1. Inconsistent Units
SWMM allows both US Customary and SI units. Verify that:
- Rain gage units match your time series values
- Depth and intensity are not confused
- Time intervals are consistent
2. Incorrect Time Format
SWMM uses a 24-hour clock. Ensure times are formatted correctly:
- 2:30 PM should be entered as 14:30
- Midnight is 0:00, not 24:00
3. Missing Data Periods
Gaps in continuous rainfall data cause problems:
- SWMM assumes zero rainfall for missing periods
- Verify data completeness before running long simulations
4. Mismatched Recording Intervals
If your rainfall interval differs from the model time step:
- SWMM distributes rainfall evenly across intervals
- Very small routing steps with hourly rainfall may show stepped responses
Practical Example: Setting Up a 10-Year Design Storm
Here is a step-by-step workflow for a typical design analysis:
- Obtain IDF Data: Get local IDF curves from NOAA Atlas 14 or local agency
- Select Duration: Test the durations required by the governing method
- Choose Distribution: Use the jurisdiction-approved temporal distribution
- Calculate Depths: Obtain location-specific frequency estimates from the controlling source
- Build Time Series: Use the increment and temporal distribution required by the selected source
- Create Rain Gage: Match its format and interval to the time-series values
- Assign to Subcatchments: Link each subcatchment to the rain gage
The complete setup ensures that your model receives properly formatted, temporally distributed rainfall that represents design conditions.
Summary
Effective rainfall data management in SWMM requires:
- Understanding the three rainfall formats (Intensity, Volume, Cumulative)
- Selecting appropriate time intervals for your analysis
- Properly formatting time series and external files
- Choosing design storms that match project criteria
- Validating data quality and consistency
Rainfall input directly affects every downstream calculation in your model. Taking time to set up rain gages correctly prevents errors and improves model reliability.
References
-
Rossman, L. A. (2022). Storm Water Management Model User’s Manual Version 5.2. U.S. Environmental Protection Agency, EPA/600/R-22/030. Official PDF.
-
Natural Resources Conservation Service. (2019). National Engineering Handbook, Part 630, Chapter 4: Storm Rainfall Depth and Distribution. U.S. Department of Agriculture. Official PDF.
-
NOAA. (2022). NOAA Atlas 14: Precipitation-Frequency Atlas of the United States. National Weather Service.
-
U.S. Environmental Protection Agency. Storm Water Management Model (SWMM). Official software and documentation page.