Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

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.

Thanks in advance

share|improve this question
add comment

3 Answers 3

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
1  
Worked like a CHARM! –  Amanda Mar 10 '11 at 19:42
add comment

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
add comment

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
add comment

Your Answer

 
discard

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.