surface angle in each cardinal direction

8944
14
01-22-2013 07:41 AM
toddsams
Deactivated User
Hello,

For a DEM, I would like to calculate the surface angle (i.e. slope) for each grid cell in the 4 cardinal directions (N, S, E and W). In other words, for a given cell, what is the angle between a flat plane and the DEM surface in each direction.

For example, a grid cell located on a 45 degree slope facing due west (270 degrees aspect) would have angles relative to a flat plane of 0, 0, 45 and -45 (or 225) degrees for N, S, E and W respectively.

Does anyone know how this can be generated using Arc? I imagine it would require generating 4 separate grids, one for each direction.
0 Kudos
14 Replies
toddsams
Deactivated User
Thanks for the detailed reply. Creating a raster surface of slope in a single direction seems like it would work.

The Arc slope function uses a 3 x 3 cell neighborhood. How is the neighborhood size specified in: SD = S * cos((D - A) * pi /180)? Which surrounding cells are used for the slope analysis?
0 Kudos
Luke_Pinner
MVP Regular Contributor
Although there are a number of slope algorithms, only one is implemented in ArcGIS (How slope works). It uses the 8 neighbbours (i.e. 3x3 around the centre cell). You can't specify a different neighbourhood without writing your own slope algorithm using focal functions.
0 Kudos
toddsams
Deactivated User
So in your method, it would also be a 3x3 window because SD = S * cos((D - A) * pi /180) relies on the Arc "Aspect" tool, which is also  3x3 window, correct?
0 Kudos
Luke_Pinner
MVP Regular Contributor
Yes. I'm not sure why you are concerned about the 3x3 window though. I interpreted your original question as wanting to calculate slope in specific direction, not downhill slope - the method I described does exactly that, it simply uses downhill slope and aspect to calculate slope for a specified direction.  Look at the hypothetical surface in my 2nd attachment, slope (D) i.e in an easterly direction, directly across slope, is 0 as expected.

Unless I've misinterpreted your question and you want to calculate a single downhill slope value using only 4 adjacent (i.e. not diagonal) cells...? - aka "Rooks case":

[ATTACH=CONFIG]22272[/ATTACH]
Image source: http://www.lpc.uottawa.ca/publications/moransi/moran.htm#Defining%20Contiguity
0 Kudos
MarkBoucher
Honored Contributor
In post #8 I proposed using the shift command. I was using it to shift the raster around in each direction and then use the mosaic command to find the average or max value of the cells around it. I found that focal statistics does this nicely for me. It might work for you in what you are doing (though I didn't take time just now to review your problem). I just felt the need to post my discovery of focal statistics.
0 Kudos