Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

I am doing an estimation of erosion with ArcGIS. I use the UniversalSoilLossEquation (USLE) for this.

Now, i want to calculate the L-factor of this equation. I need the FlowLength for this. My problem begins here: I calculated the Slope of the DEM --> Slope_DEM Now i want to do the following: I want to calculate the changes in slope angles between cells and create "NoData" if the change is more than 30%. Example: If one cell has a slope angle of 50° and the next cell has an angle of 25°, I want to create NoData cause the change of slope angle is more than 30% (here it is 50%). After this the flowlength resets

How can I realize this in ArcGIS? I am very thankful for your help! Greeting Markus

Here is something I found in literature which describes what I want to do very well:

"This particular problems is addressed by the cutoff slope angle which is a user-input value. The cutoff slope angle is defined as the change in slope angle from one cell to the next along the flowdirection. This value ranges from 0 to 1 for all areas where the slope angle decreases from one cell to the next (if the slope angle increases, there will definitely be no deposition). Therefore, the user input value will range from 0 – 1 and be dependent upon the amount of sediment carried by overland flow. For example, an input value of zero will cause the slope length to reset every time there is a decrease in slope angle. An input value of one will cause the slope length to never reset. In an ideal world, this value would be set by an expert familiar with the particular area in question. However, this is not always feasible. The literature(Griffin,et al., 1988; Wilson, 1986) suggests references that a value closer to 0.5 (slopedecreasing by 50% or greater) is appropriate.

(source: http://onlinegeographer.com/slope/hickey_slope_length.pdf)

share|improve this question

3 Answers 3

SAGA GIS has a tool to calculate LS-factor in its Terrain Analysis - Hydrology toolset. It gives you several choices for method, including Moore et al. 1991, Desmet and Govers 1996, and Boehner and Selige 2006. The first two are mentioned in the PDF you link to. And it's free!

share|improve this answer
Hi Jay, thank you for your answer. So it is not possible in ArcGIS? I already did all the other factors of USLE in ArcGIS. I think i can't transfer these results to SagaGis? –  Markus Mar 28 '13 at 21:13
It may be possible to do it in ArcGIS, I just don't know how. I'm just suggesting that since SAGA has a ready-made tool, why not use that to calculate your LS factor, then export it as a GeoTIFF and finish your calculation in ArcGIS. That being said, it can be fun to reinvent the wheel :). –  Jay Guarneri Mar 28 '13 at 21:18
Thank you, i will try it this way :-) –  Markus Mar 28 '13 at 21:56

The original USLE assumed little slope curvature and no deposition. To account for flow convergence in complex terrain, modifications were made to the LS factor with an equation that incorporates flow accumulation. Because they are now used interchangeably, when you see reference to slope-length most likely it is in reference to the LS factor, as calculated below.

To calculate the LS factor for the RUSLE equation, first calculate flow accumulation (facc) and slope in degrees (slp). Then a bit of map algebra in the raster calculator yields LS.

Power(facc * cell resolution / 22.1, 0.4) * Power(Sin(slp * 0.01745) / 0.09, 1.4) * 1.4

share|improve this answer
Hi Jeffrey, thank you for your helpful answer! Is the cutoff slope value (as seen in the extract of literature I posted) included in this equation? –  Markus Mar 28 '13 at 22:10
From which source is that equation taken? –  Steinin Aug 12 '13 at 23:52

Instead of proposing a different approach to the USLE, here is how to calculate changes in slope.

1 - calculate slope in degrees 2 - calculate slope in percent using the output of step 1 as your input

While calculating slope from elevation data would give you percental changes in height, using a slope map as your input will result in percental changes in slope, logically. We will call the output of step 2 "slopeChange".

3 - using raster calculator (for a 50% threshold): SetNull(slopeChange, flowDirection, "Value >= 50")

This will set all raster cells to NoData where "slopeChange >= 50" is true. However, if the condition is false, respective output raster cells will be assigned values according to your flowDirection raster.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.