Slope-Area Computation Program Graphical User Interface 

1.0—A Preprocessing and Postprocessing Tool for 

Estimating Peak Flood Discharge Using the Slope-Area 

Method

Introduction

The slope-area method is a technique for estimating the 

peak discharge of a flood after the water has receded (Dalrymple and Benson, 1967). 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 (HWMs) on trees 

or buildings. These indicators of flood stage are combined with 

measurements of the cross-sectional geometry of the stream, 

estimates of channel roughness, and a mathematical model 

that balances the total energy of the flow between cross sections. This is in contrast to a “direct” measurement of discharge 

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 gage 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 stream gage, resulting in more accurate 

computation of high flows. 

The Slope-Area Computation program (SAC; Fulford, 

1994) is an implementation of the slope-area method that computes a peak-discharge estimate from inputs of water-surface 

slope (from surveyed HWMs), channel geometry, and estimated 

channel roughness. SAC is a command line program written 

in Fortran that reads input data from a formatted text file and 

prints results to another formatted text file. Preparing the input 

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

describes the SAC graphical user interface (GUI), a crossplatform “wrapper” application that prepares the SAC input file, 

executes the program, and helps the user interpret the output. 

The SAC GUI is an update and enhancement of the slope-area 

method (SAM; Hortness, 2004; Berenbrock, 1996), an earlier 

spreadsheet tool used to aid field personnel in the completion 

of a slope-area measurement. The SAC GUI reads survey data, 

develops a plan-view plot, water-surface profile, cross-section 

plots, and develops the SAC input file. The SAC GUI also 

develops HEC-2 files that can be imported into HEC–RAS. 

Slope-Area Computation Program Graphical User 

Interface Description

The SAC GUI is a menu-driven application that reproduces and extends the functionality of SAM. The application 

is organized around four main menus; File, Edit, View, and 

SAC. The File menu is similar to the File menu in most modern 

applications, providing options to launch the New Indirect 

Wizard (fig. 1), open an existing project file, save changes to a 

project (the user is encouraged to use this option often), change 

the project’s file name, or quit the application. The File menu 

also contains options to (1) export plots as 300-dpi portable 

network graphic (PNG) files, (2) export a HEC-2 formatted 

file, (3) export cross-section and high-water-mark elevation and 

stationing, and (4) lock or unlock a project.

The Edit menu provides direct access to the edit screens 

for the project data. These screens are similar to or identical to 

those used in the New Indirect Wizard.

The View menu provides access to the plots and the underlying data. Once a plot is loaded into the main window of the 

application, it behaves in a manner similar to the New Indirect 

Wizard. For example, the user can edit the channel centerline 

on the plan-view plot or adjust the water-surface profile on the 

high-water-mark plot. Plots can also be customized. The user 

can change the plot symbols, colors, title, axes labels, and other 

properties by right clicking on a plot to bring up a menu of 

options. This menu also includes options to save the plot as a 

300-dpi PNG file or as an editable vector graphic. The user can 

also edit the original survey data, but should keep in mind that 

when any of the raw survey data change, the application must 

regenerate all plots and, consequently, any plot customizations 

will be lost. 

The SAC menu is used to generate the SAC input files and 

execute the SAC Fortran program. The Run SAC command 

opens a window in which the user specifies the names and locations of the SAC input and output files and optional remarks 

that appear in the SAC output file. When the user executes the 

SAC program, status messages from SAC are displayed in a 

window, and if SAC executes successfully, the GUI displays the 

standard text output from SAC and creates a graphical summary 

of the SAC output as an energy-profile plot accessible from the 

View menu. Figure 2 shows the SAC output summarized on the 

energy-profile plot.

Data Entry and Reach Characterization

The core of the SAC GUI is the New Indirect Wizard, 

which guides the user through the process of preparing the data 

needed to make a slope-area discharge estimate (fig. 1). The 

U.S. Department of the Interior

U.S. Geological Survey

Fact Sheet 2012–3112

August 2012
New Indirect Wizard includes the Project Info screen (fig. 1A), 

which provides an opportunity for entry of station and reach 

location and other data relative to the specific slope-area measurement. The required input data include the x-y-z coordinates 

(expressed as easting, northing, and elevation, in units of feet 

or meters) of HWMs and cross-section points surveyed in the 

field (fig. 1B). Azimuth-distance surveys must be converted to 

x-y-z coordinates prior to using the SAC GUI. The input file 

must include columns of sequence number, easting, northing, 

elevation, and a point identifier. An optional remarks column is 

also supported. The New Indirect Wizard imports tab, comma, 

or space-delimited ASCII text files, such as those generated by 

a total station or Global Positioning System (GPS) unit. The 

columns in the input file can be in any order. The input file 

Figure 1. Screen shots of the New Indirect Wizard showing selected steps in the preparation of the Slope-Area 

Computation program input data [(A) Project Info screen, (B) Survey Data Input screen, (C) Plan View Plot screen, (D) High 

Water Marks Profile screen, and (E) Cross Section screen].

A B

C D

E

requirements are listed in table 1 and table 2. The point identifier consists of up to three fields delimited by dashes (“-”). The 

first field is a two- or three-letter code that identifies the type of 

point. Supported identifier code types are listed in table 2. In the 

case of a cross section, a unique identification number assigned 

to that cross section is also given as part of the type assignment. 

For example, cross section number 3 would begin with “X3-”. 

The second field is the point number. Point numbers represent 

ongoing benchmark and reference mark numbers established at 

the gage, surveying or turning-point numbers assigned during 

the field survey, consecutive ground points along each cross 

section, or HWM numbers along each bank. The third field is an 

optional code used to denote the quality of each HWM. Supported quality codes are listed in table 2.
Figure 2. The Graphical User Interface simplifies execution of the Slope-Area Computation program and summarizes the results graphically 

[(A) Plan View Plot screen and (B) Energy Profile Plot screen].

A B

After importing the survey data, the New Indirect Wizard 

leads the user through several additional data setup steps. First, 

the user defines a channel centerline by either clicking on a 

plan-view plot of the survey data (fig. 1C) and (or) by typing 

coordinates into a table. The channel centerline is used to compute the stationing of HWMs and cross sections (fig. 1D). The 

centerline can be curved and should extend beyond the range of 

the survey data. The user specifies the flow direction by marking the furthest downstream centerline point. If cross sections 

have been included in the input file (fig. 1E), the New Indirect 

Wizard fits cross-section lines to the cross-section points and 

includes them in the plan-view plot. The user can override the 

default cross-section line by clicking on the plot to define a new 

line. The distance from the left bank of each cross-section point 

(stationing along a cross section) is computed by projecting 

each survey point onto the cross-section line.

Next, the user defines the water-surface elevation profile(s) 

along the reach. The New Indirect Wizard generates three 

HWM-profile plots: a plot of left-bank HWMs, a plot of rightbank HWMs, and a plot including HWMs of both the left and 

right banks. The user can define left-bank and right-bank watersurface profiles by clicking on the plots or by typing distances 

and elevations into a table. If cross sections have not yet been 

surveyed, the high-water-mark profile plots can be used to 

decide where they should be located. In this case, the user exits 

the New Indirect Wizard and restarts the process after cross sections have been surveyed. Otherwise, the New Indirect Wizard 

proceeds to the next step.

Once the cross-section points have been surveyed and 

included in the input file, the user can also define a “combined” 

water-surface profile. SAC uses the elevations defined in the 

combined profile to establish water-surface elevation at each 

cross section. A combined profile is created by (1) entering 

the water-surface elevation at each cross section into a table 

or (2) letting the program automatically compute an average 

of the two profiles (interpolated for each cross section). The 

second option uses the left- and right-bank profiles to define a 

sloped water surface. In this case, SAC uses the sloped surface 

to compute the hydraulic properties of each cross section and 

the average water surface to compute the fall between sections. 

When the sloping water-surface option is used, the combined 

profile cannot be edited.

The final step is to specify the channel roughness by entering a Manning’s n value for the complete cross section or by 

dividing each cross section into subareas with differing values 

of Manning’s n. Each cross section must include at least one 

roughness subarea. The subareas are separated by horizontal 

roughness breakpoints defined by clicking on the cross-section 

plot and entering the Manning’s n value into a table. The user 

can also adjust the water-surface elevation at a cross section 

(defined in the previous step) if it looks incorrect when plotted 

along with the cross section. Any updates to the water-surface 

elevation made here are reflected in the combined water-surface-profile plot. 

Once the user has finished the steps described above using 

the New Indirect Wizard, the rest of the process, including 

execution of the SAC program, graphical interpretation of the 

SAC output, and project file management takes place within the 

main window of the SAC GUI. 

Obtaining and Installing the Slope-Area Computation 

Program and the Slope-Area Computation Program 

Graphical User Interface

The SAC GUI is a runnable Java Archive that interfaces 

with the SAC command-line Fortran program. The SAC GUI 

and SAC have been successfully run under Windows and 

Macintosh operating systems. The SAC GUI, SAC, example 

datasets, documentation, installation requirements, and an 

installer can be found at the U.S. Geological Survey SAC/SAC 

GUI Web page (http://water.usgs.gov/software/SAC/).
Table 1. Input data file fields.

Field Description Data type Required?

Sequence 

number

Integer Yes

Easting (x) Distance east 

of some 

datum

Number Yes

Northing (y) Distance north 

of some 

datum

Number Yes

Elevation (z ) Height relative 

to some 

datum

Number Yes

Point identifier A combination 

of characters 

and digits 

identifying 

the point

Alpha-numeric 

characters 

(see table 2)

Yes

Remarks Comments 

about the 

point

Up to 50 alphanumeric 

characters

No

Table 2. Supported point identifier and high-water-mark quality 

codes.

Point identifiers

Code Description

BM Benchmark

RM Reference mark

HUB Surveying or turning point

LH Left-bank high-water mark

RH Right-bank high-water mark

GH Stream gage

X[1] Cross-section point. [1] indicates the cross-section 

number (for example, “X1,” “X2,” and so forth)

High water mark quality codes

Code Description

E Excellent

G Good

F Fair

P Poor

References Cited

Berenbrock, Charles, 1996, A procedure to generate slope-area 

plots and compute estimated discharge for peak flows in 

the field using a portable computer [abs.]: U.S. Geological 

Survey National Computer Technology Meeting, programs 

and abstracts, Rancho Mirage, Calif., May 19–24, 1996: U.S. 

Geological Survey Open-File Report 96–204. (Also available 

at http://pubs.usgs.gov/of/1996/0204/.)

Dalrymple, Tate, and Benson, M.A., 1967, Measurement 

of peak discharge by the slope-area method: U.S. Geological Survey Techniques of Water-Resources Investigations Report, book 3, chap. A2, 12 p. (Also available at 

http://pubs.usgs.gov/twri/twri3-a2/.)

Fulford, J.M., 1994, User’s guide to SAC, a computer program for computing discharge by slope-area method: U.S. 

Geological Survey Open-File Report 94–360, 31 p. (Also 

available at http://water.usgs.gov/software/SAC/code/doc/

sacman.pdf.)

Hortness, J.E., 2004, SAM 2.1—A computer program for 

plotting and formatting surveying data for estimating peak 

discharges by the slope-area method: U.S. Geological Survey 

Fact Sheet 2004–3028, 4 p., accessed July 23, 2012, at http://

pubs.er.usgs.gov/publication/fs20043028.

For more information about 

the SAC GUI, please contact 

H2osoft@usgs.gov.

By D. Nathan Bradley