Information and code (Arc/Info and IDRISI) used to calculate
cumulative downhill slope length, maximum downhill slope angle, and flowdirection
from a DEM.
- Breaking news: We have discovered a minor error
in the version 5 (ArcMap extension) code. As such, we have taken it
offline until we can get it cleaned up. Use the version 4 code instead
- it's good.
- Breaking news 2: While this code will continue to
be hosted on this website, Rick
VanRemortel will be taking over tech support for the RUSLE code.
- RUSLE Version 5 is, effectively, RUSLE Version 4 recoded
in C to work off an array. It was later converted to run as an ArcMap
extension. The download includes both the .dll files and a readme
file. The original C code was published in:
Van Remortel, R., R. Maichle, and R. Hickey, 2004, Computing the
RUSLE LS Factor through Array- based Slope Length Processing of
Digital Elevation Data Using a C++ Executable. Computers and
Geosciences. V. 30, No. 9-10, pp. 1043-1053. DOWNLOAD
Note: there have been a few bug fixes over the years. Be sure to
grab the latest version! Thanks to the folks that sent info which
helps improve the code.
- RUSLE Version 4 (an AML): (posted on 12/018/2003) - Version 4
is intended to correct an order-of-operations error in earlier versions
that affected the computation of the slope steepness constituent,
generally yielding higher (by about 5-10%) LS factor values. This
is the latest version of the RUSLE code that was modified from the
original USLE-based code by Rick
D. Van Remortel and Mathew E. Hamilton of the Remote Sensing
and Technical Services Department, Lockheed Martin Environmental
Services. Calculates LS Factor using DEM data according to RUSLE-based
criteria. See the AML itself for more info. Download the UNIX
version or the Windows Version.
(windows version tested under 9.1 [run from the arc prompt in workstation]
on 16 Feb, 2007).
- Version 4 Output Files
- DEM Results
- dem_fill = filled-sink DEM
- dem_fill_b = filled-sink DEM + 1-cell outer buffer
- down_slp_ang = downlsope angle in degrees
- flowdir_in = flow direction entering a cell
- flowdir_out = flow direction leaving a cell
- flowdir_out_b = flow direction leaving a cell + 1-cell
- m_slpexp = slope exponent (m) used in final L-constituent
- nd_chg2 = nodata check to check progress of slope-length
- slp_lgth_beg = initial slope length used to begin
- slp_lgth_cum = cumulative slope length at completion
of each slope length iteration
- slp_lgth_cell = length of cell with respect to flowdir
- slp_end_fac = factor (threshold) that will end slope-length
- slp_lgth_ft = slope length expressed in feet, used
as input to L and S factor calculations
- L and S Factor Calculations
- slp_lgth_max = renamed slp_lgth_cum from previous
- slp_lgth_prev = renamed slp_lgth_max for checking
- *_ruslel = calculated L-constituent of LS factor
- *_rusles = calculated S-constituent of LS factor
- *_ruslels2 = final output grid; calculated grid value
is LS factor x 100 which retains significant digits
within the integer grid and minimizes grid storage requirements
(actual ls_factor value is an additional side attribute
in .vat file
- Older versions of the RUSLE code (versions 2 and 3) are still
available for download. Both (and a readme file) are within the
- ArcInfo GRID AMLs: Download here.
These work fine under UNIX, but (usually) crash (eventually) when
running under NT/2000. I've been unable to find the bug - if anyone
does, please send me the fix. For more information, see the Computers,
Environment, and Urban Systems paper listed below. Information
regarding how to use the code is at the start of the text file.
NOTE: this is Version 2 of the AML. It has been modified
to calculate slope length in x,y space. The original code
calculated slope length along the slope itself (x,y,z space).
The change was done to conform to USLE and RUSLE requirements.
If you want the originals, they can still be downloaded
(you will have to break them into separate aml files). The output
from this code produces slope angle, slope length, and USLE LS factor
value files. To put some dates on things, Version 1 was coded (and
published) in 1994; Version 2 was coded in 1999 and published in
- IDRISI executable file :
Version 2 is now available. See the readme
file for information regarding the changes and how to run the software.
Output files include maximum downhill slope angle, cumulative downhill
slope length, and flowdirection (aspect). For those of you who hate
readme files, be warned, the IDRISI files must be in REAL ASCII
format to run. Version 1 (calculates slope length in x,y,z
space) is still available - see the bottom of the above 'readme'
***And a notice to users of ALL sets of code -- this is iterative software
and will run on your entire grid a number of times equal to one more than
the maximum number of cells in the longest flowpath on the grid.
Yes, this means that the code can, sometimes, run
for a number of days. The IDRISI code is faster, as it works
on an array. The Arc/Info AMLs are constantly reading and writing
to a disk (fast harddrives are good......). The RUSLE Version 4 code is
the fastest of the AMLs. Version 5 is pretty fast, too.
Please feel free to use any of the code posted on this page. The original
work came from my dissertation, and the details can be found either there
or in the Computers, Environment, and Urban Systems paper. The
Environment and Planning A paper is listed as a more general reference
to work using erosion modeling as a part of a larger project. The Cartography
papers discuss the slope length algorithms in more detail, including the
differences/similarities of the IDRISI/ARC and USLE/RUSLE code. Finally,
the Dunn and Hickey paper discusses differences among the different available
slope angle algorithms - including the maximum downhill slope angle algorithm
which I prefer. The 2000, 2001, and 2004 papers represent updates of the
1994 work for both the USLE and RUSLE.
- Hickey, R., 1994, Design and Simulation of Smelter Reclamation Strategies
using an Environmental Decision Support System. Ph.D. dissertation.
Department of Geography, University of Idaho, Moscow, ID.
- Hickey, R, A. Smith, and P. Jankowski, 1994, Slope length calculations
from a DEM within ARC/INFO GRID: Computers, Environment and Urban
Systems, v. 18, no. 5, pp. 365 - 380. DOWNLOAD
- Hickey, R. and P. Jankowski, 1997, GIS and Environmental Decision-making
to aid smelter reclamation planning: Environment and Planning A,
v. 29, pp. 5 - 19.
- Dunn, M. and R. Hickey, 1998, The effect of slope algorithms on slope
estimates within a GIS. Cartography, v. 27, no. 1, pp. 9 - 15.
- Hickey, R., 2000, Slope Angle and Slope Length Solutions for GIS.
Cartography, v. 29, no. 1, pp. 1 - 8. DOWNLOAD
- Van Remortel, R., M. Hamilton, and R. Hickey, 2001, Estimating the
LS factor for RUSLE through iterative slope length processing of DEM
elevation data. Cartography. V. 30, no. 1, pp. 27 - 35. DOWNLOAD
- Hickey, R., E. Burns, J. Bolte, and D. Walker, 2005, Development
of a Statewide Erosion Vulnerability Screening Tool for Oregon, Geography
Online . V. 5, no. 2.
- Van Remortel, R., R. Maichle, and R. Hickey, 2004, Computing the
RUSLE LS Factor through Array- based Slope Length Processing of Digital
Elevation Data Using a C++ Executable. Computers and Geosciences.
V. 30, No. 9-10, pp. 1043-1053. DOWNLOAD