Hello,

I'm having trouble with what I think should be a relatively straightforward analysis of 10 meter dem data. If you have a minute, could you offer any suggestions.

I am trying to calculate a sort of "exposure" score for every cell in a raster. The basic idea is to compare the value of each raster cell with those nearby(200-400m radius).

E1= (# cells in surrounding area with elev.< cell elev.)/(# cells in surrounding area with elev.> cell elev.)

E2= (sum[cell elev.-(elev.of surrounding cells<gage elev.)])/(sum[(elev.of surrounding cells>cell elev.)-cell elev.])

For both indices, larger values represent locations with greater exposure and smaller values represent more protected, less exposed locations. For instance, the E1 value for a location on top of a cone would be infinity, while that for the low point of an inverted cone would be 0. I've been able to compute these indices for a small number of point locations using a combination of buffer and zonal tools. Unfortunately, I'm now trying to perform this analysis for every cell in a much larger area(2-3 thousand cells) and my original method is no longer feasible.

I would greatly appreciate any suggestion you could offer.

Thanks,

spencer

I'm having trouble with what I think should be a relatively straightforward analysis of 10 meter dem data. If you have a minute, could you offer any suggestions.

I am trying to calculate a sort of "exposure" score for every cell in a raster. The basic idea is to compare the value of each raster cell with those nearby(200-400m radius).

E1= (# cells in surrounding area with elev.< cell elev.)/(# cells in surrounding area with elev.> cell elev.)

E2= (sum[cell elev.-(elev.of surrounding cells<gage elev.)])/(sum[(elev.of surrounding cells>cell elev.)-cell elev.])

For both indices, larger values represent locations with greater exposure and smaller values represent more protected, less exposed locations. For instance, the E1 value for a location on top of a cone would be infinity, while that for the low point of an inverted cone would be 0. I've been able to compute these indices for a small number of point locations using a combination of buffer and zonal tools. Unfortunately, I'm now trying to perform this analysis for every cell in a much larger area(2-3 thousand cells) and my original method is no longer feasible.

I would greatly appreciate any suggestion you could offer.

Thanks,

spencer

I think that using numpy should be the way to go here. There is not much help on using numpy in ArcGIS, but I came across a nice blog post that explains some of the basics. I tried to calculate the E1 and E2 (see script and results below).

Result of analysis E1[ATTACH=CONFIG]29001[/ATTACH]

In E2 there will be an nasty effect at the bottom and right side, since no compensation is applied for the reduction in the moving window size.

Result of alternativeAs an alternative it might be interesting to look at the percentage of pixels in the neighborhood with a cell value higher than the value of the central pixel. This shows drainage with dark red colors and ridges in green. Don't know if this is useful...

[ATTACH=CONFIG]29002[/ATTACH]

Some useful links:http://shreshai.blogspot.nl/2011/07/utilizing-numpy-to-perform-complex-gis.html

http://wiki.scipy.org/Tentative_NumPy_Tutorial

RasterToNumPyArray (arcpy)

NumPyArrayToRaster (arcpy)

Kind regards,

Xander