Select to view content in your preferred language

How to calculate the change of the slope angle between cells?

1835
6
03-26-2013 05:27 PM
MarkusHeinz
Emerging Contributor
Hello,

I want to to do the following thing: I want to create NoData if the change of the slope angle between cells is >30%
But I dont know what I have to do to realize it.

What I did is:
-Used Fill for the DEM --> Fill_DEM
-Used Slope (Percent and Degree) for Fill_DEM --> Slope_Percent & Slope_Degree

What should I do next? I really have no idea since i am very new into Arcmap

Thank you so much for your help!
Mheinz
0 Kudos
6 Replies
curtvprice
MVP Alum
I want to to do the following thing: I want to create NoData if the change of the slope angle between cells is >30%
But I dont know what I have to do to realize it.


Hi Markus,

The easiest way to do this (in my opinion) using the Raster Calculator tool:

SetNull("slope percent" > 30, "slope percent")

The above expression will set all cells of the raster "slope percent" with a value greater than 30 to NoData; the rest of the cells will retain their value. (The input raster is unchanged -- the Raster Calculator tool will save the results to a new raster.)

By the way, Fill is used when you are going to computing flow direction. If slope is what you're interested in, you're probably better off using the original, un-filled DEM.
0 Kudos
MarkusHeinz
Emerging Contributor
Thank you Curtis, i will try this later 🙂
0 Kudos
MichaelStead
Frequent Contributor
The way I read this "if the change of the slope angle between cells is >30%" does not sound like it is asking if the slope of the cell is >30%, it sounds as if it is looking for a change in slope between adjacent cells. If two adjacent cells have a slope of 40% this methodology would set both these cells to NULL when there is no change in slope at all.

I am not sure what the intent is, but each cell is surrounded by 8 adjacent cells and depending on what you are trying to accomplish you might need to play with neighbourhood statistics on your slope grid looking for area's with a range statistic greater than 30%. This would only help find the areas, not the specific cells.

You might try creating a flow direction and accumulation grid, then create an exaggerated stream network (minimum contributing area of 1 cell), turn this into a route event. Turn your slope grid into a point grid and locate the points along the routed stream network. By opening this output table in some spreadsheet software you should be able to use a simple formula to identify changes in slope along the flow paths greater than >30% and then use this as a route event to create points and then use these points to set the raster cells as NULL.

I am sure there are better ways, but it seemed to me you were asking a different question that was was answered. Curt knows his stuff, maybe he has better ideas on how to address the problem I interpret this to be asking.
0 Kudos
MarkusHeinz
Emerging Contributor
Sorry, it seems that you missunderstood my question because of my bad english.

I want to do an estimation of erosion and I am using USLE for this.

My question is: I want to create NoData if the slope angle between two cells (or areas?) changes more than 30percent.
So, if  one cell has a slope of 40°..... and the neighbour cell has a slope of 15° --> No Data
Is there a possibilitly to do this @msted & curtvprice?

Later when I want to calculate the flow_length, I want to this NoData cells to be out.

I hope it is now understandable:confused:

Thank you again for your help:)
Markus
0 Kudos
MarkusHeinz
Emerging Contributor
I've found an extract of literature which describes plan very good.

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

The problem is that there is no tutorial about how the implementation works in ArcGIS 😞

Greetings
markus
0 Kudos
curtvprice
MVP Alum
Markus, I am have never done an implementation of USLE analysis in ArcGIS. I see you found an expert to help you on gis.stackexchange.com - I will quote his answer here for the local USLE fan club:

Jeffrey Evans:

How to calculate changes in slope angle between cells/areas?

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 



One downside of the stack exchange is they do not promote discussion - they just want the answers! So may I ask you, Markus, to follow up the post when you have figured out how to do this. I am especially interested in whether the Curvature tool (which is designed to capture this deposition/erosion factor for modeling) was any use to you in parameterizing USLE. I'm sure the Spatial Analyst team would love to hear what you think, especially if you have a idea on how to improve or complement that tool.
0 Kudos