In the image below, the green points are associated with radar wave amplitude data. They're generated from RasterToPoint, so they're at the centroid of each pixel and have only the value of the amplitude at that point. The red points are a associated with surface motion at that location, so they have values for displacement, acceleration, coherence, etc.


What I want to do is associate each red point (motion) with its nearest green neighbor (amplitude). The resulting dataset will have the attributes of both datasets - except that for green points not near a red point (this will be most of them) the data for the motion attributes will simply be empty.

I suppose the better way to do it is to snap the datset with the smaller number of points to the datset with the greater number of points.

I am using ArcGIS 10.2 for Desktop.

  • Can you post sample data / screenshots? Depending on the spatial arrangement you could maybe create ring buffers around the larger set's features, use the buffer layer to "catch" the attributes from the smaller set using spatial join, then use the result of that with another spatial join to write the attributes to the bigger point set. – MapEngine May 29 '15 at 11:39
  • Why not use the original raster dataset directly? ArcGIS provides tools to extract raster values at specified locations. It will even do better than that: it can interpolate among them for greater accuracy. – whuber Jun 2 '15 at 15:06

This is easiest accomplished with a Spatial Join as MapEngine mentioned. Your target features will be the green points and the join features will be the red points. You'll use a one-to-one join with the keep_all option, and the closest match_option. Note that a red point may be closest to more than one green point, and used more than once.

You'll need to specify a search radius as well, otherwise every green point will get a matching red point no matter how far away it is. I would recommend a radius at most the distance between green points to limit the number of 'reused' red points and avoid spreading their values to green points too far away.

The result will be your green points with all the attributes of the closest red points, and those that didn't have a match within the radius will have null values for all the red attributes.

Both the Near and Generate Near Table tools would offer similar options, but you'd have to then join the results back to the two point tables based on FID to actual match attributes up (their output tables only specify FIDs). Note you could use Snap to align the points, but that doesn't address the attribute transfer, and the other methods take care of the same operation.

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.