Calculating standard deviations of elevation within specific buffers

6795
6
09-24-2015 07:37 AM
Jessica_Fort
New Contributor

I've already posted this so I apologize for any confusion, but I accidentally marked the question as "Assumed Answered" and it's not allowing me to change that or erase my post, so here it is again.

I'm fairly new to GIS and I haven't been able to find much on this specific topic in the ESRI community.

I would like to be able to calculate a "Terrain Ruggedness" index for each one of my sites in my study area and found a couple different suggestions, but I think calculating the standard deviation of elevation would give me useful values.  The problem is I can't find how to calculate this within specific buffers.  For example, I have made a TIN from a contour shapefile around my sites (Figure 1; edited with river shapefile) and then converted that to a Raster shapefile (Figure 2).  I've made 500m buffers around each site and would like to calculate the standard deviation of elevation within those buffers for each site.  OR really any kind of value that could measure "terrain ruggedness" within each buffer.

Are there any suggestions on how to do this?

Thanks!

Jess

Figure 1. TIN

Screenshot_TIN.png

Figure 2. Raster

Screenshot_DEM.png

0 Kudos
6 Replies
IanMurray
Frequent Contributor

HI Jessica

Have you looked at the Zonal Statistics Tool?  It should be able to calculate the standard deviation for each different buffer area, if you select STD for the statistics type.

ArcGIS Help (10.2, 10.2.1, and 10.2.2)

Also for the record, you posted this in the GeoNET help area, which is supposed to be for questions regarding Geonet.  I went ahead and shared it with Spatial Analyst and Spatial Statistics, but if possible you should move it to the correct area.

Jessica_Fort
New Contributor

Thanks Ian, I went ahead and moved it to Spatial Analyst and Spatial Statistics.

I used Zonal Statistics and got this, which I think is definitely a step in the right direction, but I'm still confused on how to calculate the mean elevation of each buffer if this is all one shapefile and I can't seem to find an attribute table associated with it?  Any advice?

Thank you!

Screenshot_zonal_stats_buffers.png

0 Kudos
IanMurray
Frequent Contributor

What did you use for your zone field?

Are all your buffers a single entry in the attribute table, or does each have its own record in the attribute table?  If they each have unique ID's then the ID field could be used as the zone field, so it calculates only the std for that particular ID area.

Also perhaps I should have pointed you towards Zonal Statistics as Table Tool, it seem more like what you are looking for.

ArcGIS Help (10.2, 10.2.1, and 10.2.2)

DarrenWiens2
MVP Honored Contributor

Just make sure you know what you're getting into with these tools. Often overlooked, and applies to this situation:

If the zone feature input has overlapping polygons, the zonal analysis will not be performed for each individual polygon. Since the feature input is converted to a raster, each location can only have one value.

An alternative method is to process the zonal statistics iteratively for each of the polygon zones and collate the results.

This opens a whole new can of worms, like using a Python SearchCursor to iterate through your polygons.

Jessica_Fort
New Contributor

Ok thank you all for your help, I think I figured it out!

0 Kudos
StevenBerger
New Contributor

Hi Jessica:

   I am answering this e-mail from home and I do not have ARCGIS on my machine but at work, I wanted to calculate the "uneveness" of an area around some of our facilities or subway stations.  A subway station entrance at street level can be very high in elevation in Washington Heights, a hilly part of Manhattan and still be flat and easy to pass by walking.   What I did, from memory is as follows:

1)  For each facility or stop, choose a buffer, let us say, a half mile.

2)  Bring in an altitude-contour file of elevations, this is not a raster file but a vector file.   Make sure that you can see that each contour has a label showing elevation.

3)  I believe you do a spacial join so that each facility or stop will be associated with a selection of elevations based on the contour file.

4)  The next step is the hardest:  You will need to select those contour lines that are within, touches, or intersects the buffer border.  I do not know if you are familiar with contour maps, but you can have a peak within the buffer area and this contour line at the peak may not be selected.  You have to experiment to get most of the contour lines in.

5)  Do the spatial join and select the detail table rows generated. 

6)  Create a report using elevation as the main field.  In this way you can get for each buffer area the low and high elevation, average and standard deviation.    A buffer that has a high SD implies that there is a great deal of roughness in the area of the buffer, which can be the area around a station or facility.

I did this using no special tools.  I do not have a delux package of ARCGIS.

I hope this helps:

0 Kudos