[gdal-dev] why do I get a floating point nodata value from a byte raster?
Even Rouault
even.rouault at spatialys.com
Fri Aug 29 10:34:31 PDT 2014
Le jeudi 28 août 2014 23:32:38, Richard Sharp a écrit :
> I have a byte GTiff dataset that has a nodata value of 0 according to QGIS.
Well, I've just created such a file, and with QGIS 1.8, the GUI display well
the -3.4028230607370965e+38 value, but with 2.4, it displays 0. So seems to be
on QGIS side.
That said, -3.4028230607370965e+38 doesn't make sense as a nodata value for
Byte, which can only range from 0 to 255.
After some testing, it seems that QGIS displays 0 when the nodata value is out
of the range of the data type.
>
> However, when I load it using the gdal python API, I get this:
> >>> ds= gdal.Open('cdl10lu83.tif')
> >>> band=ds.GetRasterBand(1)
> >>> band.GetNoDataValue()
>
> -3.4028230607370965e+38
>
> Also when I run `gdalinfo` I see the same nodata value:
>
> Band 1 Block=128x128 Type=Byte, ColorInterp=Gray
> Min=0.000 Max=26.000
> Minimum=0.000, Maximum=26.000, Mean=10.115, StdDev=5.072
> NoData Value=-3.4028230607370965e+038
>
> I'm running GDAL 1.11.0, although I've also experienced the same behavior
> on gdalinfo with 1.9.0. I'm using QGIS 2.4 which is built against GDAL 1.9.
>
> Any ideas what's going on and how to handle it?
>
> --
> Richard P. Sharp Jr.
> Lead Software Architect
> Natural Capital Project
> Stanford University, U Minnesota, TNC, WWF
> 371 Serra Mall
> Stanford, CA 94305
> http://www.stanford.edu/~rpsharp/
--
Spatialys - Geospatial professional services
http://www.spatialys.com
More information about the gdal-dev
mailing list