Slope-Area Plot Notes

The Slope-Area Plot relates local slope to local upstream contributing area in log-log space (a scatter plot of log-Slope vs. log-Flow Accumulation). The plots reveal geomorphic process regimes and the “rollover” region.

The goal is a simple XY chart of log-Slope vs. log-Flowacc (see Liv’s successful plot below). The two values apply to each pixel in your watershed DEM.
livs basin
– The hard thing about SA plots is dealing with the large amount of data reqired to produce a single chart. This is because programs like Excel are slow with large data sets. You start with pixels and convert to points (inherently slow in Arc). For most small watersheds, its not much of a wait. If you have a huge watershed or want to plot the values directly from the raster using some fancy pants code, then do it that way.
– Some people smooth the Slope raster (Focal Stats, Mean) first in order to reduce high frequency noise.
– Each pixel needs a unique identifier (row numbers). Determine how you want to do this.

– Create a percent rise Slope raster.

– Create a Flowacc raster. Flowacc is proportional to area: Flowacc raster value = number of upstream contributing pixels. So multiply value by area of one pixel to get Area.

– Compile the two values for each pixel in a table. The only columns you need are: UniqueID, Slope, Flowacc, Area.

– Plot Slope and Area values in XY space, using a log-log plot. You can first convert the pixels to points (attribute table), then export the table to Excel for plotting. Or don’t export and use Arc’s graphing functions.

– Sometimes people bin the values, take the mean of each bin, and plot curve through the bin means. See figures in referenced papers for examples. You decide how best to display the data.

– Charting: Set both axes to Logarithmic (remember: Area on X, Slope on Y).

– Maximum Slope should be at top of the y-axis; maximum Area value at far right (convert FlowAcc to actual Area in km2).

– Figure out why you have negative values (if you do); correct or remove them.

– No trendline.

– See McNamara’s 2006 article (or others referenced) for examples of how the chart should look.

More Detailed Info

Channel heads occupy a threshold position in the landscape: the transition from diffusive hillslope to incisive channel, which is both a landform change and a geomorphic process boundary. Their location falls within a zone coincident with colluvial swales, diffuse seeps, springs (the emergence of surface flow), and the first appearance of the bed and bank. A “threshold” value, chosen by the user (see Watershed Delineation), controls the specific location of channel heads in a digital watershed.

The two inputs to a Slope-Area analysis begin as rasters: a Slope raster and a Flow Accumulation raster. Both derive from a DEM clipped to the watershed boundary.

Slope is the first derivative of elevation. A slope raster is easily created from a DEM in ArcGIS (Spatial Analyst > Surface tools > Slope tool). Use Percent Rise units not Degrees. Each pixel of the slope raster contains one slope value, thus the pixel dimension controls the spatial resolution of slope measurements within the watershed. For example, if a slope raster is created from a 30m DEM clipped to a watershed’s boundary, there will be one slope value on each grid center, spaced 30m apart. Slope can also be measured in the field using a long rod & inclinometer or a laser level or some other tool. Manual methods will not be covered here, though early papers on the topic used them.

It is important to realize that high density slope measurements (small pixels) is actually counterproductive to Slope-Area analyses due to the large amount of noise inherent in high frequency measurements. Better to smooth the slope raster with a roving window (i.e., 3×3 Mean or 5×5 Mean) prior to plotting slope vs. area than to use the “raw” slope raster.

Because the slope and flowacc rasters are spatially coincident, there is one slope value for every flowacc value.

The Flow Accumulation raster derives from Flow Direction and Elevation (DEM) rasters. Think about flowacc like this: Let a single digital raindrop fall on each pixel. If any slope exists, then flow will begin. Some pixels will accumulate flow from pixels upstream. Where a lot of accumulation occurs, you get channels. The highest flowacc value in a watershed occurs at the outlet (also the lowest elevation pixel in the watershed). Where accumulation is diffuse, flowacc values will remain low (pixels on planar hillslopes). Very low flowacc values occur along ridge crests (relatively high topographic positions in the landscape). There are no pixels upstream of a ridge, thus flowacc pixel values for ridges and spurs are near zero. Where flow cannot leave a pixel, a “sink” forms. Sinks are problematic and must be dealt with early on (fill sinks).

Each pixel in a flowacc raster has 1 flow unit to contribute. So the value of any given flowacc pixel equals the total number of pixels flowing down into it. Sometimes flow accumulation is called “upstream contributing area” or “drainage area to a point”. This is because each pixel describes both a value (the accumulated flow) and a portion of the watershed (i.e., 30m x 30m pixel occupies 900m2). Multiplying the flowacc value by the pixel dimension gives you the upstream contributing area at a given pixel location.

Drainage area (A) can be used as a proxy for discharge (Q). This is the A for Q substitution of Hack (1957), Flint (1974), and Howard et al. (1994). The concept isn’t limited to just the watershed outlet pixel. Each pixel in the watershed functions as an “outlet” for all pixels that contribute their flow to it. Said another way, each pixel serves as the outlet to its own “subbasin”, even if the subbasin is very small or very large. This is a key concept: Flowacc = Drainage Area to any given pixel and Drainage Area approximates Discharge.

When constructing Slope-Area plots, noise can be a problem. To reduce noise, the “raw” flowacc values are binned and the mean value for each bin is plotted. Usually 100 equal-interval bins are used for a watershed. To learn more about reducing noise in these plots see Cohen et al., 2008 and older articles referenced therein.

The figures below show interpretations of Slope-Area plots. The “rollover” is the transition between positive and negative slope of the curve. The rollover marks the hillslope-channel transition (from diffusive hillslope to incisive fluvial channel). See the articles referenced below for a more complete treatment of geomorphic process regimes.


Cohen et al. (2008)


UBC Geography website after Montgomery & Foufoula-Georgiou (1993)













McNamara et al. (2006)









Montgomery & Dietrich (1994)











– Set up a project folder and store all files there.

– By default, ArcGIS will only allow 32 classes, but maximum possible is 200. Increase the maximum number of classes allowed using the “ArcMap Advanced Settings Utility.exe”. I found the utility here on my PC: C:\Program Files (x86)\ArcGIS\Desktop10\Utilities. Open “ArcMapAdvancedSettings.exe. Under the Raster tab, set the maximum number of classes to 200. Click Apply and Close. You’ll need to restart ArcGIS now for the change to take effect.

– Work through the Watershed Delineation lesson through Step #13. You will need the flow accumulation aster, the DEM clipped to the watershed boundary, and the boundary polygon.

– Add both the ws_dem and the flowacc raster to the map.

– Create a Slope raster in percent rise units from the watershed DEM (ws_dem). Read more about how Slope is calculated in Arc (How Slope Works).
Example output filename: slope

Slope Conversion Equations
From Percent Rise to Degrees –> Percent = [ Tan ( Degrees ) ] x 100
From Degrees to Percent Rise –> Degrees = Tan-1 (Slope Percent / 100)

– Smooth the Slope raster using a 3×3 roving window with Mean as the operator (Spatial Analyst tools > Neighborhood > Focal Statistics). The new raster contains smoothed Slope values.
Example output filename: slope_3x3

– Smooth the Slope raster using a 10×10 roving window with Mean as the operator (Spatial Analyst tools > Neighborhood > Focal Statistics). The new raster contains smoothed Slope values.
Example output filename: slope_10x10

– Convert DEM pixels to points (Conversion tools > From Raster > Raster to Points). This creates a “target” set of points. Elevation values will appear in a field called GRID_CODE in the attribute table. The attribute table will contain these fields: FID, Shape, POINTID, and GRID_CODE.
Example output filename: points1

– Extract the values from 3 different rasters (flowacc, slope, slp_3x3) to the attribute table of points1 (Spatial Analyst tools > Extraction > Extract Multiple Values to Points tool). This will append the new fields and their values to point1. It will take a while to process.
Example output filename: n/a

– Open the attribute table for points1. The “GRID_CODE” field contains elevation values from ws_dem. Let’s give the field a better name. Create a new field called “Elev_m” (short integer). Use Field Calculator to populate the new field with “GRID_CODE” values (double click to enter [GRID_CODE] into the equation box and hit OK).

– Delete the “GRID_CODE” field. Either right click > delete or use the Delete Field tool (Data Management > Fields > Delete Field tool).

– The attribute table for points1 should now have the following fields:
FID, Shape, POINTID, flowacc, slope, slp_3x3, Elev_m

* Note: The Extract Multiple Values to Points tool works fine for small rasters or very small watersheds. Very long processing times and processing failures tend to occur when the watershed has millions of points.

– Save your .mxd.

– Keep the attribute table for points1 open. Create a new field called “Area_km2”.

– Create an equation in the Field Calculator to convert “flowacc” field values to areas in square kilometers. The calculated values should populate the new field (Area_km2). You will need the pixel dimensions for ws_dem (Properties > Source tab). The equation needs to square the pixel dimension and multiply the product by values in “flowacc” field.

Example equation to populate the “Area_km2” field:
[flowacc] * 27.777 * 27.777

– Save your .mxd.
– Clip flowacc raster to watershed boundary
Example output filename: acc_ws

– Classify flowacc using 100 equal interval bins (100 classes). “VALUE” field = bin names, “COUNT” field = number of pixels in each bin
Example output filename: acc_ws_100

– Convert the reclassifed raster (acc_ws_100) to points on the “VALUE” field.
Example output filename: acc_ws_100_points

– Extract slope_ws values to point shapefile using Extract Multiple Values to Points tool.
Example output filename: acc_ws_100_points_slope

– Export attribute table for acc_ws_100_points_slope as a text file for use in Excel.
Example output filename: SA_new_export.txt

– Open .txt file in Excel (import the comma delimited file). “GRID_CODE” field = Bin name.

– Save as .xlsx.
Example output filename: SA_new_export.xlsx

– Sort by bin name column to consolidate slopes by bin.

– Highlight each range of slopes manually, read Mean at lower right margin of window, read value.

– Record mean for highlighted range of slopes value in summary column. Repeat for all bins.

– From Table Options pulldown menu in the attribute table, export the table for points1.shp as a .txt file in your project folder. Do not add the table to the map.
Example output filename: SA_Export.txt

– Open Excel and navigate to the exported .txt file (make sure to Show All Files *.*). Open it and run through the import steps to bring the comma delimited file into Excel.

– Save spreadsheet as an Excel worksheet.
Example output filename: Slope Area Worksheet.xlsx

– Delete the “FID” field if it does not contain values.
– Sort the dataset Ascending on the “flowacc” column.
– Insert a Scatter type chart; plot “flowacc” (Y-axis) vs. “slp_ws” (X-axis); change both axes to Logarithmic; adjust Min and Max axis values for better display; label axes; provide a title for chart.
– Use a Combination chart?
– Chart slope-bin mean values as new Series on same axes.….
– Add a trendline through mean values – just a portion of the dataset – how to select/show?
– Rollover area (Ac) is located where?……

– ????????? In Excel, bin the Smoothed Slope values (column RASTERVALU) using a bin interval of 2% slope increments (intervals at every 2 percent of rise). You’ll need to set up the worksheet to create a histogram (Tools > Data Analysis > Histogram or add the Histogram Add-in to Excel) and use the Frequency function. See the Binning Data lesson or Google: “Excel Histogram”.

– ?????????? Bin Area values (column RASTERVALU1) by 100m2 bins……use script………

– Get mean value of each bin (bin averaging)…..

– Sort dataset on Area in Ascending order.

– Slope (y) vs. Area (x) Plot in log-log space.

– See referenced articles for charting variations, delineating dominant process domains, and interpreting the data.

* If ArcGIS gives you problems when these creating rasters, try xToolsPro or DEM Surface Tools extensions. These rarely fail and both are free. See ‘Extensions, Freeware & Links’ post.

MatLab method by Chris Tressler PDF
Willgoose et al. (1991)
Dietrich (1992)
Seidl & Dietrich (1992)
Tarboton et al. (1992)
Dietrich & Dunne (1993)  <– channel initiation threshold by seepage erosion
Montgomery & Foufoula-Georgiou (1993)  <– channel initiation threshold by overland flow
Montgomery (1994)
Willgoose (1994)
Moglen & Bras (1995)
Prosser & Abernethy (1996)
Montgomery & Dietrich (1998)  <– channel initiation threshold by shallow landsliding
Sklar & Dietrich (1998)
Willgoose & Hancock (1998)
Montgomery (2001)
Hancock & Willgoose (2002)
Finlayson & Montgomery (2003) LINK  <– Addresses scale issues well
Hancock (2005)
Grimaldi et al. (2005)
Korup (2005) LINK
Hancock & Evans (2006)
McNamara et al. (2006) PDF <– Good presentation of geomorphic process domains
Wobus et al. (2006)
Cohen et al. (2008) <–Presents novel ways to control noise in data
Istanbulluoglu et al. (2008) LINK
Conway et al. (2010) LINK
Laurent Roberge’s methods LINK
Welcker et al. (2011) LINK
Hoffmann & Schwanghart (2012) LINK
University of Southampton School of Geography LINK  <– channel head concept
University of Southampton School of Geography MapInfo Tutorial on Slope-Area Plots LINK