[gdal-dev] -unscale issue with multiband vrt

Kyle Shannon KShannon at gcs-research.com
Wed Dec 7 16:16:59 EST 2011


Your correct Even.  I thought I had nodata values in the other bands, but I didn't, I introduce those later in processing.  Thanks again.  Good guessing.

kss

-----Original Message-----
From: Even Rouault [mailto:even.rouault at mines-paris.org] 
Sent: Wednesday, December 07, 2011 2:03 PM
To: gdal-dev at lists.osgeo.org
Cc: Kyle Shannon
Subject: Re: [gdal-dev] -unscale issue with multiband vrt

Le mercredi 07 décembre 2011 20:17:39, Kyle Shannon a écrit :

I think you are in fact exactly running in the issue of #3085.

It is difficult to know for sure without having the data under my eyes, but I'm going to guess one more time ;-)

So my guess it that before -unscale, your band 1 et 2 have pixels whose value match the nodata value of -9999. And they are not taken into account in the minimum/maximum value computation, which is appropriate.

After -unscale - that doesn't do special for nodata values - , those values of
-9999 are multiplied by 100, hence the -999900 as the new minimum value for band 1 and 2. For other bands the minimum value after unscale is the minimum value before unscale * 100.

So all in all the behaviour is just consistant for all bands, but not the one you expect.


> Hi All,
> I am running into an issue with unscaling a multiband raster.  I am
> creating a vrt from 5 xyz datasets.  I use the following command:
> 
> gdalbuildvrt -separate -srcnodata -9999 mmi.vrt csv\*
> 
> 3 of the 5 rasters are of the lower 48 states of the US, the other 2 are
> only the western half.  gdalbuildvrt works good, and pads the eastern half
> of the US with nodata values of -9999 for the western rasters.  I have to
> scale all of the bands, so I edit the vrt and add <Scale>100</Scale> to
> each VRTRasterBand
> 
> This displays correctly in gdalinfo:
> 
> C:\Users\k\Desktop\mmi_tmp\vrt_test>gdalinfo -stats -nomd mmi.vrt
> Driver: VRT/Virtual Raster
> Files: mmi.vrt
>        csv\2008.WUS.Xpgv.537.2475
>        csv\2008.WUS.Xpgv.537.475
>        csv\UShazard.20081231.pga.10pc50
>        csv\UShazard.20081231.pga.2pc50
>        csv\UShazard.20081231.pga.5pc50
> Size is 1201, 509
> Coordinate System is `'
> Origin = (-125.025000000000010,50.024999999999999)
> Pixel Size = (0.050000000000000,-0.050000000000000)
> Corner Coordinates:
> Upper Left  (-125.0250000,  50.0250000)
> Lower Left  (-125.0250000,  24.5750000)
> Upper Right ( -64.9750000,  50.0250000)
> Lower Right ( -64.9750000,  24.5750000)
> Center      ( -95.0000000,  37.3000000)
> Band 1 Block=128x128 Type=Float32, ColorInterp=Undefined
>   Min=0.100 Max=200.000
>   Minimum=0.100, Maximum=200.000, Mean=10.363, StdDev=16.347
>   NoData Value=-9999
>   Offset: 0,   Scale:100
> Band 2 Block=128x128 Type=Float32, ColorInterp=Undefined
>   Min=0.100 Max=123.982
>   Minimum=0.100, Maximum=123.982, Mean=4.866, StdDev=8.152
>   NoData Value=-9999
>   Offset: 0,   Scale:100
> Band 3 Block=128x128 Type=Float32, ColorInterp=Undefined
>   Min=0.005 Max=1.110
>   Minimum=0.005, Maximum=1.110, Mean=0.041, StdDev=0.064
>   NoData Value=-9999
>   Offset: 0,   Scale:100
> Band 4 Block=128x128 Type=Float32, ColorInterp=Undefined
>   Min=0.005 Max=2.037
>   Minimum=0.005, Maximum=2.037, Mean=0.103, StdDev=0.150
>   NoData Value=-9999
>   Offset: 0,   Scale:100
> Band 5 Block=128x128 Type=Float32, ColorInterp=Undefined
>   Min=0.005 Max=1.346
>   Minimum=0.005, Maximum=1.346, Mean=0.063, StdDev=0.097
>   NoData Value=-9999
>   Offset: 0,   Scale:100
> 
> When I unscale the raster, the Full US bands do fine, but the no data value
> for the Western US Bands isn't respected and the nodata values are
> changed.  Am I missing something in my vrt?  Any thoughts.
> 
> C:\Users\k\Desktop\mmi_tmp\vrt_test>gdal_translate -unscale mmi.vrt mmi.tif
> Input file size is 1201, 509
> 0...10...20...30...40...50...60...70...80...90...100 - done.
> 
> C:\Users\k\Desktop\mmi_tmp\vrt_test>gdalinfo -nomd -stats mmi.tif
> Driver: GTiff/GeoTIFF
> Files: mmi.tif
> Size is 1201, 509
> Coordinate System is `'
> Origin = (-125.025000000000010,50.024999999999999)
> Pixel Size = (0.050000000000000,-0.050000000000000)
> Corner Coordinates:
> Upper Left  (-125.0250000,  50.0250000)
> Lower Left  (-125.0250000,  24.5750000)
> Upper Right ( -64.9750000,  50.0250000)
> Lower Right ( -64.9750000,  24.5750000)
> Center      ( -95.0000000,  37.3000000)
> Band 1 Block=1201x1 Type=Float32, ColorInterp=Gray
>   Minimum=-999900.000, Maximum=20000.000, Mean=-582357.045,
> StdDev=493551.313 NoData Value=-9999
> Band 2 Block=1201x1 Type=Float32, ColorInterp=Undefined
>   Minimum=-999900.000, Maximum=12398.200, Mean=-582586.370,
> StdDev=493279.394 NoData Value=-9999
> Band 3 Block=1201x1 Type=Float32, ColorInterp=Undefined
>   Minimum=0.500, Maximum=111.030, Mean=4.092, StdDev=6.447
>   NoData Value=-9999
> Band 4 Block=1201x1 Type=Float32, ColorInterp=Undefined
>   Minimum=0.500, Maximum=203.720, Mean=10.284, StdDev=14.961
>   NoData Value=-9999
> Band 5 Block=1201x1 Type=Float32, ColorInterp=Undefined
>   Minimum=0.500, Maximum=134.630, Mean=6.273, StdDev=9.686
>   NoData Value=-9999
> 
> 
> 
> Kyle Shannon
> Senior Software Engineer
> GCS Research
> Office 406-532-3254 * Direct 406-541-3276
> kshannon at gcs-research.com<mailto:kshannon at gcs-research.com> *
> www.gcs-research.com<http://www.gcs-research.com/>


More information about the gdal-dev mailing list