Slope height

5845
10
08-24-2015 05:26 AM
Labels (1)
AnsuLouw1
New Contributor

Hello

I am trying to determine the height of slopes from the actual toe to the crest, without having to digitize the toe and crest. I'm not being lazy - the area of interest is large and it will be very time-consuming to do the latter. In essence, I am hoping there is a method in Spatial Analyst / 3D Analyst or a formula that I can use in Raster Calculator.

0 Kudos
10 Replies
XanderBakker
Esri Esteemed Contributor

Do you already have the crests and toes extracted?

How many of those slope "lines" should be created?

Should the length show the length using the surface or a straight line?

0 Kudos
AnsuLouw1
New Contributor

Hi Xander,

I don't have the toes and crests extracted as yet.

The client wants to see the height of the slope as contours / colour grid ranging from 0m to ± 300m in 50m intervals. The length should be the actual height of the slope and not the values of the surface elevation

0 Kudos
XanderBakker
Esri Esteemed Contributor

Hi Ansu Louw ,

I'm afraid I'm a bit lost in the explanation... When you refer to the "actual height of the slope", are you referring to the elevation or the length of the slope?

For what I understand you are not interested in the length of the brown line following the surface, but in the slope length, right? ... and you want to generate contours in a 50 m interval based on the length of the slope... If so, that will probably be a very complicated process and include some heavy coding (even if you would already have lines representing crests and toes)...

AnsuLouw1
New Contributor

Hi Xander,

Yes that is correct. I want the actual slope length (perhaps height is not the right wording).

If I were to simplify it and try obtain the length of the "brown line" what would you suggest?

0 Kudos
XanderBakker
Esri Esteemed Contributor

Thanks for the additional explanation. To determine the slope length using the actual surface doesn't make things easier. I would probably apply some of the code used for this solution: Re: Creating a surface buffer? .

However, If you are more interested in the straight slope length between crest and toe, than the straight line would make it less complex. Now the idea of creating contours that represent an equal slope length, makes things ever more complex. It would require to create multiple slope lines (many), determine points on these lines and the interval mentioned (50m) and connect these to form lines (and determine if the interval should start on the crest or the toe). Additionally mountains should be isolated for this process. Sounds like a very interesting problem, but pretty complex...

  • Create 3D toe and crest lines
  • Iterate points on the crest line using an interval
  • Snap to the nearest toe line on both sides of the crest line
  • Determine elevation of crest and toe point
  • Create 3D slope line and calculate 3D length of line
  • Iterate through resulting 3D slope lines, and extract contour interval point, and construct contour line.
  • Optionally adapt the contour line to the surface to make the slope contour follow the surface...

As I said... pretty complex..., but not impossible...

0 Kudos
DanPatterson_Retired
MVP Emeritus

You will have to digitize the toe and crest since a slope value only applies for a very small 3x3 window so all you could do is figure out the length by considering the slope value and aspect at a cell.  This would give you the ability to get an estimate of the surface length for the window...but consider that the slope derived for one cell is not know by its adjacent cells.  You task would be to make these cells self-aware. 

Consider the following example:

  • a 500 m line of constant slope denotes the space between the toe and crest
  • each cell along that line has the same slope value
  • each cell doesnt what the values of its neighbor
  • the directional slope is currently not known since you need to determine the slope at various directions from those normal to the slope

So the questions become:

  • what criteria are you going to use to identify areas of 'constant' slope?
  • how are you going to identify the toe and crest from these data
  • how are you going to account for the fact that you could have slope areas with different slope values? (for example, a 25% slope on one side of a v-shaped valley versus 22% across...what if the valley is u-shaped?
  • once you have identified the areas, how do you ensure that the slope determined, its length and elevations are normal to the direction of the contours?

You can easily do this in your head...can't you?  The task becomes translating your 'rules' to those that can be implemented in raster and/or vector world.  So some discussion of your criteria, would be useful.  Are you only interested in

  • particular slope, elevation difference values?
  • do you want to rule out areas where the elevation differences are less that a threshold values regardless of the slope?
  • etc etc

Interesting problem, there are some things that could be done, but rather than throwing tools at a problem and hoping a solution arises, formulate the required steps to see if the solution is realizable without human intervention.

0 Kudos
XanderBakker
Esri Esteemed Contributor

mmm, just wondering... I remember that your friend William Huber did some magic in Avenue to detect crests...

Would it be possible to generalize the aspect of the surface using the SciPy circular mean (scipy.stats.morestats.circmean(numpy_raster)) as Shaun Walbridge​ showed in his presentation at the DevSummit this year (Python: Working With Scientific Data ) and using a moving window to detect opposite aspect angle ranges to depict crests and toes (won't work with rather flat and wide valleys)?

XanderBakker
Esri Esteemed Contributor

mmm... I think this is the (ancient) thread I was talking about Finding peaks from a DEM where William Huber​ collaborated.

0 Kudos
DanPatterson_Retired
MVP Emeritus

I will have a look through Bill's links later, but I do remember him doing something like this and curvature is coming to mind, but don't quote me.  Some of my concerns in my original post still haven't be answered as yet even if the surface length is still being sought after.  Contour lines would help IFFF they are at least representative of the underlying DEM, you can atleast propagate normal lines etc.  I will have a look, just trying to finish up some einsum stuff

0 Kudos