Thursday, December 15, 2016

An improved zonal statistics for dealing with overlapping buffers

A while back I posted an article about two alternative options for summarizing and extracting data from around points.  The two solutions that I posited where zonal statistics and neighborhood statistics.  Each has its advantages and disadvantages.  The standard zonal statistics tool in ArcGIS doesn't deal with overlapping polygons, which is a common problem.  The neighborhood approach tends to be slow, but has the advantage that it can deal with overlaps effectively and necessary for people doing wall-to-wall predictive maps (such as species distribution modeling).

There is, however, a third option.  The zonal statistics tool can be modified to accommodate overlaps.  That is exactly what I have done.  Below is the model that I created in Model Builder to achieve this.

I plan to have this out soon as a tool available to download.  In the mean time there are a couple of key features to this model that I'd like to point out. 

1) Iteration by Field Values - This step iterates through a categorical raster, lets say land cover classes, producing an output that represents to proportion cover for each type.

2) Intersect/Erase - Buffers are generated and the intersect and erase tools are used identify the "normal non-overlapping" portion of the buffer as well as the overlapping portion.  Unfortunately the Erase tool requires a full ArcGIS Advanced license so I'll need to put some more thought into how to make this available to folks with lower license levels.

3) Zonal statistics - The tool performs a couple of zonal statistics operations.  It sums the number of cells in each class and then sums the total number of cells to get the proportional cover.

4) Once the proportional cover has been calculated for overlapping buffer areas and non-overlapping buffer areas there is a need to put this information together.  The field calculator is used with the following formula max( !Prpn_Overlap_Raster!, !Prpn!).  This effectively deals with the fact that there are Null values from one output when there are data values from the other and visa versa.  This seems to be an effective way of getting around trying to make field mapping work.

Look soon for a new tool to automate this process.

No comments:

Post a Comment