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 have a polygon data set of corn yield collected by a combine. However, as the combine drove through the field, there was slight overlap between passes, leading to overlapping polygons within the same shapefile. I also have a point dataset of sampling sites within the field. Occasionally, these points fall on locations where two polygons are overlapping. At each point, I would like to extract the value from whichever polygon has the higher yield.

enter image description here

I've thought of two ways to do this:

  1. If I can extract the values from both polygons to the attribute table, I can process the data in Matlab to get the maximum. However, most of the points are entirely contained within one polygon. I've tried doing a 'Join by spatial location' but because the polygons are in the same layer, it will only join one of the two records.

  2. Create new polygons for all the overlapping areas and then use join to extract the data.This example from Grass seems to do what I want, but I don't know how to do the behind-the-scenes programming. Is there a built-in function of Arc that can do the same thing?

I am using ArcMap 10 with spatial analyst. There are hundreds of polygons overlapping, so I'd like to use some sort of automated extraction. Thanks in advance!

share|improve this question
add comment

3 Answers

up vote 3 down vote accepted

And another way:

Do a spatial join of the polygon data to the points and set the field mapping merge rules to 'Max'.

share|improve this answer
    
Thanks Sylvester. To summarize, I used this technique: 1. Analsis Tools -> Overlay -> Spatial Join 2. In spatial join dialog box: -Target features = Points -Join features = Polygons -Join Operation = Join one to one -Right click on 'yield' field in join feature field map, select properties, choose 'Maximum' as merge rule -Match option = Intersect Thanks to everyone else for responses, also! –  Sam Zipper Jan 10 '13 at 16:53
add comment

I am assuming you are calculating yield from one time period. In this case, you can essentially "clean" your polygons so that they do not overlap and increase the error rate of your calculations. There are three ways to go about this type of analysis. The first is to use a tool in ArcGIS called Eliminate.

enter image description here

A second option similar to Eliminate is to use the Integrate tool:

enter image description here

And finally, you can incorporate topology rules within a feature dataset to perform the same type of border corrections as previously described. I suspect the Integrate or topology rules options will best suit your needs.

Once your polygons are cleaned, perform an intersection or one of the other overlay tools that best suit your analysis.

share|improve this answer
add comment

Here is a method you can use:

  1. Make sure point layer has a unique ID field
  2. Run Intersect tool on both point and polygon layer (point layer as first input)
  3. Open attribute table of intersect result layer and right click on the ID field and select Summarize
  4. Within Summarize dialog expand yield field and check maximum
  5. Join summary result table back to original point layer based on unique ID field.

These steps/tools can be modeled in ArcGIS ModelBuilder for future automation.

Hope this helps!

share|improve this answer
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.