Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am working with ArcGIS 10.0. As a simple example let's say I have a map of the United States. I want to each row of the data which states have adjacent boundaries with that state - so that in the row for South Carolina there would be new variables adjacent_1 and adjacent_2 that list North Carolina and Georgia (or anything similar to this)

Any thoughts? I know I can select on "features that touch the boundary of the selected feature" but then I'm not sure how to add the information to the data.

share|improve this question
up vote 2 down vote accepted

Buffer the features infinitesimally (such as one meter). Union the buffer layer with itself, thereby creating k records for each distinct overlap of k features. The records in this union include the identifiers of the parent features. Summarize the union on the concatenation of these two identifiers: this effectively strips out all the duplication. You have created a table implementing the desired relation. A many-to-one join of this table to the original layer finishes the job.

(If you don't want to count two polygons meeting at a point as "adjacent," filter out all elements of the union based on their areas or extents: an area less than Pi * r^2 /2, where r is the buffer radius, is almost surely not an indication of adjacency.)

share|improve this answer
I last did this in ArcView 3 (obviously quite a while ago :-). There should be no problems with the same workflow in ArcGIS. – whuber Mar 10 '11 at 17:26
Thanks - I'll try this right now! – Amanda Mar 10 '11 at 17:37
Worked like a CHARM! – Amanda Mar 10 '11 at 19:42

You should be able to write a script that loops through every feature present in the feature class, execute a spatial query to select any adjoining features, loop through the results of the spatial query, and write a specific attribute from the resulting features into the original feature. Depending on how exactly you want to use this information, you'll want to add a new column to the feature class called AdjoiningFeatures, and add a comma separated (or similar format) list of adjoining feature names/ids/etc in that column.

One major issue to think about is that the list of adjoining features is static, and will not update along with your data without having to re-execute your script.

As for where to start, look at Python scripting in ArcGIS 10.0.

share|improve this answer
Thanks - this sounds like exactly what I need to do. – Amanda Mar 10 '11 at 17:12

This is what GIS is for. However if you want the duplication I think you will have to get creative and do some spatial joins. possibly make a copy of your polygon data and sp join that back to the original. ??

share|improve this answer
Yeah I was thinking something similar but since I want it for every state that seemed tedious. I haven't done programming yet, just point and click, though if there someway to program a loop in order to do this then if anyone has references on how to get started I would appreciate. – Amanda Mar 10 '11 at 16:36

I note that you are using ArcGIS Desktop 10.0, but if you were using ArcGIS 10.1 for Desktop or later then you would have access to the Polygon Neighbors tool.

For more details see Adding/updating field to polygon feature class that lists bordering (neighbor) polygons?

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.