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

  • RUSLE LS factor calculations. For ArcGIS Pro.
  • Directional slope calculations
    • Download a copy of the python code (for ArcGIS 10.x, not Pro) HERE. Readme information at this link.
  • RUSLE Calculations (For old ArcInfo workstation. Yup, it's legacy 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 last tested under 9.1 [run from the arc prompt in workstation] on 16 Feb, 2007).
      • 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

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

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. The 2000, 2001, and 2004 papers represent updates of the 1994 work for both the USLE and RUSLE. The 2020 thesis is the most recent incarnation of this work, and contains significant updates and improvements.

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 Hickey, Quinn, and Schag paper follows up on this with some newerPython code.

  • 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
  • Moody, A., 2020, Comparing RUSLE LS Calculation Methods Across Varying DEM Resolutions. Unpublished master’s thesis. Central Washington University, Ellensburg, WA, USA. DOWNLOAD PDF

Bob's Homepage # Geography Dept. # CWU


last modified: 21 June, 2020