I am using 3 feature classes in ArcGIS 10.7

  1. an irregular spaced set of data points.
  2. a set of regular spaced points 100m apart that covers the data area of 1, generated using Fishnet.
  3. a polygon of circles around each of the points generated in 2 (50m radius).

I want to assign the closest data value to each generated point, within the 50m radius. If there is no data point within the radius, I want a null value assigned (not zero - the data can be positive or negative).

I could code this but is there an existing ArcGIS function that does so.

Failures I have tried:

  • Spatial Join statistics assigned statistics, not closest value.
  • Spatial Join closest not statistics option claims it assigns the first value it comes across, but appears to have assigned values outside the 50m radius.

The attached pictures show how "Statistics" Join is similar to the data input, but "First" Join has assigned values everywhere in a Nearest Neighbour looking style.


Join by Statistics - white equals no value/null

Join by "First" - fills almost everything

  • Any reason why you used "CLOSEST" and not "INTERSECT" in the spatial join attempt? Would doing a spatial join with the INTERSECT option work for you? Dec 9, 2020 at 4:22
  • @Son of a Beach - they seem to be the default settings of a Join in Desktop at least. You can choose to assign a circle polygon statistics of all points found within it, or it assigns the first value it comes across. I do not know the definition of a "first" value but almost every circle was assigned a value even though most do not have any points inside them. Uploading pictures to help.
    – user24007
    Dec 9, 2020 at 5:28
  • 1
    I'd go near for points to points with search radius of 50. Transfer attributes to points with near_fid <> -1. You don't need buffer.
    – FelixIP
    Dec 9, 2020 at 6:45
  • @Son of a Beach - you are right, I should use the command instead of the GUI and choose closest.
    – user24007
    Dec 9, 2020 at 22:17
  • @FelixIP you are also right, the proper join lets me dispense with the buffer polygon.
    – user24007
    Dec 9, 2020 at 22:17

1 Answer 1


Instead of using a spatial join with the "CLOSEST" option, use a spatial join with the "INTERSECT" option.

However, as @FelixIP commented, you can avoid the extra step of creating the buffer polygons altogether by using a points-to-points spatial join with the "WITHIN A DISTANCE" option and a search radius the same as your previous buffer distance.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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