How to identify nearest neighbouring polygon for points within a buffer

02-03-2013 05:31 AM
New Contributor
Hello all,

I'm working on a project in which I want to determine whether or not points near the margins of polygons border neighbouring polygons with lower scores.  I have attached an image to help describe my problem.  The points represent closed laneways and they are in polygons that have scores that range from -30 to +30.  I am going to create a buffer inside the polygon (if this is possible?) and do a spatial join with the points to get points that fall inside those marginal areas.  With that spatial join, I should have a table with laneway ID and score of the polygon in which it is contained.  Now, this is where I need help.  How do I add a column that tells me what is the ID of the nearest neighbouring polygon?  Then I need to determine whether or not the score of that polygon is lower, equal to, or higher than the polygon in which the neighbouring polygon is in.  To do this I was thinking I could just subtract the score of the polygon in which the laneway is in from the score of the neighbouring polygon.  If this value is positive, then the neighbouring polygon has a lower score and if it is 0 or negative, then the neighbouring polygon does not have a lower score.  Please help!



Tags (2)
0 Kudos
1 Reply
Occasional Contributor III
You can use Generate Near Table in the Analysis--Proximity toolbox.  At the bottom there is a check box "Find only closest feature (optional)."  Uncheck that and type 2 for the number of matches you want.  It will create a table showing the closest 2 polygons to each point (the one it's in and the neighbor).  There will be 2 output records for each input point.  Delete all the records with distance 0, leaving only the records for the neighboring polygon.  You can table join the output to your points to get the neighboring polygon ID in there.

From there you can table join to get the neighbor's score, and use Field Calculator to do the comparison.
0 Kudos