The Nature of Geographic Information

9. Slope


Slope is a measure of change in elevation. It is a crucial parameter in several well-known predictive models used for environmental management, including the Universal Soil Loss Equation and agricultural non-point source pollution models.

One way to express slope is as a percentage. To calculate percent slope, divide the difference between the elevations of two points by the distance between them, then multiply the quotient by 100. The difference in elevation between points is called the rise. The distance between the points is called the run. Thus, percent slope equals (rise / run) x 100.

Diagram illustrating how slope may be calculated as a percentage calculation, explained in caption
Figure 7.10.1 Calculating percent slope. A rise of 100 feet over a run of 100 feet yields a 100 percent slope. A 50-foot rise over a 100-foot run yields a 50 percent slope.

Another way to express slope is as a slope angle, or degree of slope. As shown below, if you visualize rise and run as sides of a right triangle, then the degree of slope is the angle opposite the rise. Since degree of slope is equal to the tangent of the fraction rise/run, it can be calculated as the arctangent of rise/run.

Illustration showing how slope may be calculated in degrees. Using arctangent. explained in caption
Figure 7.10.2 A rise of 100 feet over a run of 100 feet yields a 45° slope angle. A rise of 50 feet over a run of 100 feet yields a 26.6° slope angle.

You can calculate slope on a contour map by analyzing the spacing of the contours. If you have many slope values to calculate, however, you will want to automate the process. It turns out that slope calculations are much easier to calculate for gridded elevation data than for vector data, since elevations are more or less equally spaced in raster grids.

Several algorithms have been developed to calculate percent slope and degree of slope. The simplest and most common is called the neighborhood method. The neighborhood method calculates the slope at one grid point by comparing the elevations of the eight grid points that surround it.

3x3 grid showing how slope at center point is calculated as a function of the elevations of 8 surrounding points
Figure 7.10.3 The neighborhood algorithm estimates the percent slope in cell 5 by comparing the elevations of neighboring grid cells.

The neighborhood algorithm estimates percent slope at grid cell 5 (Z5) as the sum of the absolute values of east-west slope and north-south slope, and multiplying the sum by 100. Figure 7.10.4 illustrates how east-west slope and north-south slope are calculated. Essentially, east-west slope is estimated as the difference between the sums of the elevations in the first and third columns of the 3 x 3 matrix. Similarly, north-south slope is the difference between the sums of elevations in the first and third rows (note that in each case the middle value is weighted by a factor of two).

Algorithm for calculating slope with gridded elevation data see text description below
Figure 7.10.4 The neighborhood algorithm for calculating percent slope.
Click here for a text version of the equation shown in the image above

The illustration shows how the terrain slope at a given elevation grid cell can be calculated from elevations of the eight grid cells that surround it. First, north-south slope is calculated from the grid columns. Then east-west slope is calculated from the grid rows. The square root of the sum of the north-south slope and east-west slope, multiplied by 100, equals the percent slope at the original grid cell. The fancy technical term for the procedure is "neighborhood algorithm."

The neighborhood algorithm calculates slope for every cell in an elevation grid by analyzing each 3 x 3 neighborhood. Percent slope can be converted to slope degree later. The result is a grid of slope values suitable for use in various soil loss and hydrologic models.