NoData values recognised in raster in ArcGIS Desktop but not following symbology rules?

There's definitely something very funky going on with that file/data.

You're right in that ArcGIS shows two different types of NoData even though the attributes both show the same thing. QGIS does this too. I have absolutely no idea whats happening in the data (but my guess would be that there are two different "noData" values being used behind the scenes, one may be "null" the other "-9999" for instance) but would be interested to know, maybe someone else can enlighten us.

However, there are a couple of possible workarounds:

Export the data - If you export the data being sure to "use renderer" it will start working correctly. If you don't tick the use-renderer your new file will have the same issues. On the downside this converts it to 8 bit data (0-255). Some other tool may be able to re-render it while keeping the data as 32bit floats.

Use Classified - The Classified symbology method seems to display both NoData types properly (i.e.e as the same thing) so use that if possible and you don't want to alter the data. Stretched exhibits your reported bug and "Unique Values" just doesn't show anything.

(Using ArcGIS 9.3.1)


I downloaded the file and converted it to a numpy array and when I loop over the values in the array I can see that I get -3.40282347e+38 and NaN as nodata values. Maybe you could reclassify these to values to one or the other, so all nodata values are the same.

You could use the reclassify tool, arcpy.sa.setnull or I am sure numpy has some fancy functions that could do this if you convert the image to a numpy array.

Gdal translate could also be useful if you want to go down the open source path.


I just came across the same issue - and found a "solution". If you multiply the raster by 1.0 with the raster calculator, ArcMap will recognize the NoData values.