I have been searching for a solution to this problem, but was not satisfied by the answer given in Finding nearest raster cell value based on vector point?

I have some points that land on cells with NoData in a raster of continuous data, and would like to assign values to the points based on either the closest cell with data or calculate a value with bilinear interpolation from neighboring cells with data. However, using tools in ArcGIS 10.2 Spatial Analyst such as Extract Multi Values to Points, I get a NoData result whether the bilinear interpolation of values is checked or not, despite neighboring cells having data, apparently because the tool is not overlooking the NoData cell. Is there a way to ignore the NoData cell usign this method or another way of getting values for these points?

Here is a screenshot example of what I'm looking at, where white cells have no data:enter image description here

  • 1
    Well, in this case, you can only interpolate so far before it becomes nonsensical. You will likely have to approach this differently. – Jeffrey Evans Feb 10 '15 at 22:21
  • Why not reassign the NoData values to 0 for example? – Aaron Feb 10 '15 at 22:26
  • I do not want to use 0 in place of NoData because despite not having data in certain cells, using a value that is the same or similar to a nearby cell makes sense in this case. These data represent atmospheric deposition where the stuff that fell out of the sky in one spot is not expected to vary greatly in the distance of a few cells, so for our purposes, it's close enough. – Leo Feb 10 '15 at 22:35

I came up with another solution that works for me. I really didn't like the idea of converting a raster to a vector point layer.

I ended up using a conditional statement in the Raster Calculator to replace all NoData cells with a mean of nearby cells within a rectangle of a specified size. I found this solution on the ESRI Support page, HowTo: Remove and replace no data values within a raster using statistical information from the surrounding data values.

This allows me to use a value based on nearby cells up to a specified distance that I feel will still be reasonable, and then I will extract values to points from the new raster (I just need to put it all into Model Builder to iterate through a lot of them now). As you can see below, the bluish cells are the recalculated cells that now have a value associated with them (the original raster is displayed in gray-scale over the new raster here):

enter image description here

| improve this answer | |
  • Apologies for answering my own question! – Leo Feb 19 '15 at 16:26

One solution that could work is to create a buffer polygon around each point in the point layer and then average the cells that fall within each polygon, ignoring NoData values, by using Zonal Statistics (requires Spatial Analyst license). This would let me set the radius of the buffer to a distance that I'm comfortable with using data from other cells.

| improve this answer | |
  1. Convert raster to points
  2. Do spatial join

To reduce file size I'd buffer points in question first and clip the raster

| improve this answer | |
  • I will try this. So if I understand correctly, my original points will join to the closest "raster points" that contain a value? – Leo Feb 11 '15 at 14:17

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.