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 Calculations

    • 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 PDF

    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 outer buffer
          • m_slpexp = slope exponent (m) used in final L-constituent calculations
          • nd_chg2 = nodata check to check progress of slope-length iterations
          • slp_lgth_beg = initial slope length used to begin slope-length iteration
          • 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 cumulation
          • 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 iteration
          • slp_lgth_prev = renamed slp_lgth_max for checking progress
          • *_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 file


  • USLE Calculations

    • 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 2000.
    • 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' file.

***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 PDF
  • 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. DOWNLOAD PDF
  • Hickey, R., 2000, Slope Angle and Slope Length Solutions for GIS. Cartography, v. 29, no. 1, pp. 1 - 8. DOWNLOAD PDF
  • 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 PDF
  • 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 PDF


Bob's Homepage # Geography Dept. # CWU


last modified: 22 November, 2009