2

I have two vector layers: one polygon and one point layer. The polygon layer has a value from 1 to 10. I am trying to find the average value for all polygons within or partly within a 1-mile radius of each of the points in the points layer. What would be the best way to go about this?

I am using ArcGIS 10.2 and I have access to the Spatial Analyst extension.

2
  • When you say "value" of the polygons, what are you referring to?
    – GeoJohn
    Dec 30 '15 at 15:29
  • I should have specified this. I am referring to a column containing values from 1 to 10.
    – Lilly
    Dec 30 '15 at 15:34
2

Use the Buffer Tool with your points and then use the Spatial Join tool. For the Spatial Join make the point buffers the target and the polygons the join features with the One To One option and change the merge property of the column with the values you want averaged in the field list to use Mean instead of Sum (or add a new field to the field list if you want both the sum of the values and the mean in separate fields). The point buffers and Spatial Join output will retain the FID of the original points in a field, so you can transfer the Mean from the Spatial Join output into the original points using a standard Join and the Field Calculator.

Technically you do not have to do the Buffer, since you can set a radius/tolerance for the Spatial Join tool to function like a buffer. However, the Buffer tool is fast and the Spatial Join tool will run much faster when you use a radius/tolerance of 0.

6
  • ...And if you use the buffer, it gives you a nice visualization of the process!
    – GeoJohn
    Dec 30 '15 at 15:59
  • Didn't see this, you beat me to it!
    – crmackey
    Dec 30 '15 at 16:03
  • 1
    crmackey I do like the screen shot in your answer. Anyway, the similarity of our two answers confirms that the method we have outlined is a typical approach to solving a problem like this. Dec 30 '15 at 16:06
  • Agreed. Seems like the easiest way to do it.
    – crmackey
    Dec 30 '15 at 20:04
  • With 1:1 join what is going to happen to polygon sitting within 100m from point A and 200m from point B?
    – FelixIP
    Dec 31 '15 at 1:44
2

You should be able to do this using a spatial join of the Polygons to your Points. Set the Join option to JOIN_ONE_TO_ONE and in the Field Mappings, right click on your value field from the Polygons and set the merge rule to Mean. For the Search Distance, set that to 1 mile. That should give you the average of all polygons within 1 mile of the points (see screenshot below).

enter image description here

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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