Information and code (Arc/Info and ArcGIS) used to calculate cumulative downhill slope length, maximum downhill slope angle, and flowdirection from a DEM.

  • Directional slope calculations
    • Download a copy of the python code (for ArcGIS 10.x, not Pro) HERE. Readme information at this link.
  • RUSLE Calculations (While this code will continue to be hosted on this website, Rick VanRemortel will be taking over tech support for the RUSLE code.) Work is underway to build a ArcGIS Pro version (as of 6/29/2019)
    • 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. Note, there were problems with the ArcMap extension, and the has been taken down. 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

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

***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 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