Bug report #15202

Raster shows nodata for values near nodata

Added by Mike Taves about 5 years ago. Updated over 2 years ago.

Affected QGIS version:2.14.3 Regression?:No
Operating System: Easy fix?:No
Pull Request or Patch supplied:No Resolution:end of life
Crashes QGIS or corrupts data:No Copied to github as #:23140


QGIS rounds raster values that are near NoData to be presented as NoData in the GUI. I regard this behaviour to be a bug since it is a misleading representation from other software (e.g. ArcGIS), and it can occur as a result of using common open source tools like gdal_calc.py.

For example, the difference between two Float32 rasters A.tif and B.tif with similar values, and a few common pixels with identical values:

gdal_calc.py -A A.tif -B B.tif --outfile=C.tif --calc="A-B"

For this example with gdal_calc.py, note that until recently [1] the default NoData value for Float32 was 1.175494351E-38 [2], which is very close (but not equal) to 0.0.

The result C.tif (attached) will show nodata in QGIS for raster locations with values of 0.0 (top left corner). This same raster can be viewed in ArcGIS without any misrepresentation. (Note that the example raster has one pixel near the centre set with NoData).

[1] https://github.com/OSGeo/gdal/commit/c8d725c6f8ef70f217941074e2d2ca737a70a6e9#diff-e2fab2380f03654cf57cff4f7aa94776
[2] https://github.com/OSGeo/gdal/blob/4654aa64c648ab7918df28e47abbb500238cd2a6/gdal/swig/python/scripts/gdal_calc.py#L60

A.tif (206 Bytes) Mike Taves, 2016-07-03 07:18 PM

B.tif (206 Bytes) Mike Taves, 2016-07-03 07:18 PM

C.tif (223 Bytes) Mike Taves, 2016-07-03 07:18 PM

ArcMap_2016-07-04_14-21-22.png (17.6 KB) Mike Taves, 2016-07-03 07:24 PM

QGIS_2016-07-04_14-22-26.png (10.7 KB) Mike Taves, 2016-07-03 07:24 PM


#1 Updated by Mike Taves about 5 years ago

#2 Updated by Mike Taves about 5 years ago

I've attached screenshots from both applications. ArcGIS shows the raster correctly. The value of the upper left pixel should be 0.0, not nodata. I've identified a pixel with value -0.6. QGIS wants to show -0.599999904632568, which is different than what I get from ArcGIS and GDAL, i.e.:

from osgeo import gdal
ds = gdal.Open('C.tif')
ar = ds.ReadAsArray()
print(str(ar[1,2]))  # -0.6        good
print(repr(ar[1,2])) # -0.5999999  best
print(repr(float(ar[1,2]))) # -0.5999999046325684  is misleading, since it isn't double precision

#3 Updated by Mike Taves about 5 years ago

Correction, GDAL shows similar behaviour for the mask band, see https://trac.osgeo.org/gdal/ticket/6578

#4 Updated by Giovanni Manghi about 5 years ago

  • Category set to Rasters

#5 Updated by Giovanni Manghi over 4 years ago

  • Regression? set to No
  • Easy fix? set to No

#6 Updated by Giovanni Manghi over 2 years ago

  • Resolution set to end of life
  • Status changed from Open to Closed

End of life notice: QGIS 2.18 LTR


QGIS 3.4 has recently become our new Long Term Release (LTR) version. This is a major step in our history – a long term release version based on the massive updates, library upgrades and improvements that we carried out in the course of the 2.x to 3x upgrade cycle.

We strongly encourage all users who are currently using QGIS 2.18 LTR as their preferred QGIS release to migrate to QGIS 3.4. This new LTR version will receive regular bugfixes for at least one year. It also includes hundreds of new functions, usability improvements, bugfixes, and other goodies. See the relevant changelogs for a good sampling of all the new features that have gone into version 3.4

Most plugins have been either migrated or incorporated into the core QGIS code base.

We strongly discourage the continued use of QGIS 2.18 LTR as it is now officially unsupported, which means we’ll not provide any bug fix releases for it.

You should also note that we intend to close all bug tickets referring to the now obsolete LTR version. Original reporters will receive a notification of the ticket closure and are encouraged to check whether the issue persists in the new LTR, in which case they should reopen the ticket.

If you would like to better understand the QGIS release roadmap, check out our roadmap page! It outlines the schedule for upcoming releases and will help you plan your deployment of QGIS into an operational environment.

The development of QGIS 3.4 LTR has been made possible by the work of hundreds of volunteers, by the investments of companies, professionals, and administrations, and by continuous donations and financial support from many of you. We sincerely thank you all and encourage you to collaborate and support the project even more, for the long term improvement and sustainability of the QGIS project.

Also available in: Atom PDF