2

I am working in ArcMap 10.3.1 with Spatial Analyst tools. I have a raster with some large contiguous areas with NoData. I want to assign the floating point value of the closest cell to each NoData cell. This would be similar (as I understand it) to using the Euclidean allocation tool, but the return value (i.e., output raster) for that tool is integer type, not the floating point type which I need. I want to do this only for areas with NoData, w/o affecting values in cells surrounding the NoData areas. The attached image shows a small part of the study area (colored areas have values, areas w/ DEM background have NoData). A similar question was asked here, but again, I want results to be floating point. Any ideas?

raster with values is in color; NoData areas show DEM in background

1

Sadly the Nibble tool requires an integer input. However, you could create an integer grid by multiplying you data by a factor equivalent to your acceptable scale. So, if you can accept, say five decimal places, create an integer grid from your raw input raster by multiplying by 100000.

Perform the nibble and then divide by the same factor. Obviously this will truncate your decimal places and you may experience some rounding errors, so the bigger the factor you can use the, the better - within the limits of your data and the pixel depth of your raster. Given that you could use a 32 bit or even 64 bit raster - I expect you have a lot of scope. Wrap the process in Model Builder and you have a one-click solution.

  • Thanks. I actually applied a similar solution before seeing your comment, but used Euclidean Allocation after multiplying my raster by 10K and changing to an Integer raster (then /10K and changed back to floating point). The 10K factor captured the values in my original raster. I applied Nibble per your suggestion, and it looks like the results are exactly the same as with Euc. All. Nibble required a couple more steps than Euc. All.--i.e., to prepare the input raster by changing NoData areas to a constant, leaving other values alone. I used IsNull then Con tools to do this. – mas May 25 '16 at 0:11

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.