Culvert Analysis Program Graphical User Interface 1.0—

A Preprocessing and Postprocessing Tool for Estimating Flow Through Culverts

Introduction

The peak discharge of a flood can be estimated from the 

elevation of high-water marks near the inlet and outlet of a 

culvert after the flood has occurred. This type of discharge 

estimate is called an “indirect measurement” because it relies 

on evidence left behind by the flood, such as high-water marks 

on trees or buildings. When combined with the cross-sectional 

geometry of the channel upstream from the culvert and the 

culvert size, shape, roughness, and orientation, the high-water 

marks define a water-surface profile that can be used to 

estimate the peak discharge by using the methods described by 

Bodhaine (1968). This type of measurement is in contrast to a 

“direct” measurement of discharge made during the flood where 

cross-sectional area is measured and a current meter or acoustic 

equipment is used to measure the water velocity. When a direct 

discharge measurement cannot be made at a streamgage during 

high flows because of logistics or safety reasons, an indirect 

measurement of a peak discharge is useful for defining the 

high-flow section of the stage-discharge relation (rating curve) 

at the streamgage, resulting in more accurate computation of 

high flows.

The Culvert Analysis Program (CAP) (Fulford, 1998) is a 

command-line program written in Fortran for computing peak 

discharges and culvert rating surfaces or curves. CAP reads 

input data from a formatted text file and prints results to another 

formatted text file. Preparing and correctly formatting the input 

file may be time-consuming and prone to errors. This document 

describes the CAP graphical user interface (GUI)—a modern, 

cross-platform, menu-driven application that prepares the CAP 

input file, executes the program, and helps the user interpret the 

output.

Description of the CAP GUI

The CAP GUI is organized around a series of input screens 

that specify the culvert type, the approach section geometry, the 

spatial relation between the two, and the depth of the flow. A 

representative sample of the input screens is shown in figure 1. 

The input screens are accessed from a series of menus that are 

arranged from left to right in the order that the data typically are 

entered.

The New Indirect item from the File menu opens an input 

screen for basic information about the flood, the survey, the 

system of units, and the personnel involved. This information 

can be edited later by selecting Project Info (fig. 1A) from the 

General menu. This information is not used in the computation 

of peak discharges or in the culvert rating.

U.S. Department of the Interior

U.S. Geological Survey

Figure 1A. Screen shot of the project info screen in the CAP input 

data process. 

The Shape menu defines the culvert shape. Five shapes 

are supported: box, circular (fig. 1B ), elliptical, pipe arch, and 

non-standard. 

Figure 1B. Screen shot of the shape input example 

in the CAP input data process. 

Fact Sheet 2013–3045

July 2013
The Alignment menu specifies how the culvert is aligned 

in relation to the road and the flow. Three alignment options 

are supported: unskewed (fig. 1C), skewed road to flow, and 

mitered culvert. 

Figure 1C. Screen shot of the alignment input example in the CAP 

input data process (SRD, section reference distance).

The culvert edging is defined using the Edging menu. 

Available options are no edging, rounding, beveled (fig. 1D ), 

bell mouth or tongue and groove, mitered end, and flared pipe. 

Figure 1D. Screen shot of the edging input example in the CAP 

input data process.

The Wingwalls menu allows culvert wingwalls to be 

specified as none, equal angled (fig. 1E), or unequal angled. 

Figure 1E. Screen shot of the wingwalls input example in the CAP 

input data process. 

Culvert projection, either flush, equal projection (fig. 1F), 

or unequal projection, is defined using the Projection menu. 

Figure 1F. Screen shot of the culvert projection input example in 

the CAP input data process. 

The Approach menu is used to define the approach 

cross-section location, geometry (fig. 1G), roughness, and 

water-surface elevation. 

Figure 1G. Screen shot of the approach cross section input 

screen in the CAP input data process.

The flows (fig. 1H) and tailwater elevations (fig. 1I) that 

CAP should evaluate are defined using the Flow/Tailwater menu. 

Up to 48 discharges and 50 tailwater elevations are supported. 

Figure 1H. Screen 

shot of the flow 

input screen in the 

CAP input data 

process. 

Figure 1I. Screen shot 

of the tailwater input 

screen in the CAP input 

data process. 
Optional coefficients are entered using the Coefficients

menu. The coefficients for flow types 1, 2, and 3 (fig. 1J ) 

can be specified as an entrance coefficient rating curve or as 

discharge coefficient adjustments based on the details of the 

shape of the culvert entrance. The coefficients for flow types 4, 

5, and 6 are defined as an entrance coefficient rating curve. The 

type of high-head flow and the elevation at which the transition 

between flow types 5 and 6 occurs may also be defined.

Figure 1J. Screen shot of the discharge coefficients input screen 

in the CAP input data process. 

Figure 2A. Screen shot of an energy profile output plot from 

the CAP GUI.

Once all the data are entered, the CAP menu controls 

execution of the CAP program and access to the output. The 

Run CAP item opens a dialog box where the user specifies the 

locations of the CAP input and output files. Before the CAP 

GUI executes CAP, it performs basic validation steps to ensure 

that all required data have been supplied and that all data are the 

correct type. It does not verify that the data are sensible.

If CAP executes successfully, the GUI presents the output 

in a variety of ways, all accessible through the CAP menu. Plots 

include the energy profile (fig. 2A), approach section water surface elevation versus discharge for a given tailwater elevation 

(fig. 2B ), and discharge versus tailwater elevation for a given 

approach water-surface elevation (not shown). Right-clicking 

on a plot displays a menu with a variety of options to customize 

the plot or export a high-resolution version to a file. The CAP 

GUI does not directly create plots for the tailwater elevation 

contours and the culvert rating surface. Instead, an option to 

export a script (fig. 2C) that will create those plots using the 

free R statistical package (http://www.r-project.org/) is available (fig. 2D, 2E). The GUI also presents a table of approach 

elevations as a function of discharge and tailwater elevation 

(fig. 2F). This data table is the equivalent of the 3-parameter 

table computed by CAP and can be electronically copied and 

pasted into a text file or spreadsheet for further analysis using 

standard keyboard shortcuts. The raw CAP output file also is 

available. 

Figure 2B. Screen shot of an approach section water surface 

elevation versus discharge output plot from the CAP GUI.

Figure 2C. Screen shot of the R-script export dialog from the CAP 

GUI with CAP output file in the background. 
For more information

about the CAP GUI, please contact h2osoft@usgs.gov

References

Bodhaine, G.L., 1968, Measurement of peak discharge at 

culverts by indirect methods: U.S. Geological Survey Techniques of Water-Resources Investigations, book 3, chap. A3, 

60 p.

Fulford, J.M., 1998, User’s guide to the U.S. Geological Survey 

Culvert Analysis Program, Version 97–08: U.S. Geological 

Survey Water-Resources Investigations Report 98–4166, 

70 p.

By D. Nathan Bradley

Figure 2D. Example of the tailwater elevations contour plot 

generated by the R statistical package from the CAP GUI.

Figure 2E. Example of the culvert rating surface plotted by 

the R statistical package from the CAP GUI.

Figure 2F. Screen shot of the 3-parameter table from the CAP GUI, listing the computed approach section 

elevation for all combinations of flow and tailwater elevation.

Obtaining and Installing CAP and the CAP GUI

The CAP GUI is a Java program that interfaces with the 

CAP command-line Fortran program. The CAP GUI and CAP 

have been run successfully under Windows and Macintosh 

operating systems. CAP GUI, CAP, example datasets, 

documentation, installation requirements, and an installer are 

available from the CAP/CAP GUI Web page (http://water.usgs.

gov/software/CAP/).