[gdal-dev] gdalinfo -stats Misses invalid data value in ENVI header
Peter Willis
pwillis at aslenv.com
Fri Oct 19 14:57:01 PDT 2012
Hello,
When I run :
Gdalinfo -stats <FILENAME>
One file (success) provides statistics calculated by excluding the no data values.
Ie: min=0.25 max=1234.0 mean=12.0
The other file (failed) provides statistics with -999 calculated into the stats.
Ie: min = -999.0 max=1234.0 mean=-993.0
I have looked at both binary files. Each of the two files contain the mask value.
ENVI loads both files and headers fine and reports the same no data value, for each file, in header info just fine.
I think you could probably model the problem by generating a much smaller file with multiple channels.
The steps happening are as follows:
1.) Original file (IN_IMG) is UTM projection ENVI format 49 bands BSQ, float32
2.) gdalwarp -of ENVI -t_srs "+proj=latlong +datum=WGS84" ${IN_IMG} ${OUT_IMG}
3.) put the data ignore value back in the file:
echo "" >> $OUT_HDR
echo "data ignore value = -9.99000000e+002" >> $OUT_HDR
4.) Call gdalinfo for number of bands in original file => $BANDS
5.) loop through bands seq 1 $BANDS => $BAND
gdal_rasterize -b $BAND -burn -999 -l ${LAYER_NAME} ${MASK_SHP} ${OUT_IMG}
6.) gdalinfo -stats ${OUT_IMG}
At step #6, gdalinfo -stats reports data stats with the -999 values calculated into the min/max/mean/stdev.
Band 2 Block=2178x1 Type=Float32, ColorInterp=Undefined
Description = Band 2
Min=-999.000 Max=12.250
Minimum=-999.000, Maximum=12.250, Mean=-946.817, StdDev=222.404
NoData Value=-999
Metadata:
STATISTICS_MINIMUM=-999
STATISTICS_MAXIMUM=12.25
STATISTICS_MEAN=-946.81678963104
STATISTICS_STDDEV=222.4036660914
If I perform gdalinfo -stats on the original UTM file the min/max/mean/stdev exclude -999 from calculations.
Band 2 Block=1677x1 Type=Float32, ColorInterp=Undefined
Description = Band Math (Band Math (Band Math (1996_104 Landsat-4/5 TM :Surface Temperature Sensor:6:LSatThermalCube_96-98.img):LSatThermalCube_96-98_float.img):LSatThermalCube_96-98_float_cmsk.img)
Min=0.250 Max=12.250
Minimum=0.250, Maximum=12.250, Mean=1.379, StdDev=0.995
NoData Value=-999
Metadata:
STATISTICS_MINIMUM=0.25
STATISTICS_MAXIMUM=12.25
STATISTICS_MEAN=1.3787828985307
STATISTICS_STDDEV=0.99545771926881
I hope this helps.
Let me know if you need any more information.
Peter
-----Original Message-----
From: Even Rouault [mailto:even.rouault at mines-paris.org]
Sent: October-19-12 2:08 PM
To: gdal-dev at lists.osgeo.org
Cc: Peter Willis
Subject: Re: [gdal-dev] gdalinfo -stats Misses invalid data value in ENVI header
Le vendredi 19 octobre 2012 22:57:13, Peter Willis a écrit :
> Hello,
>
> The one listed as 'failed' actually fails for me as it is sent .
Just to be sure we are talking about the same thing, what do you call "fail"
exactly ? Is it that gdalinfo doesn't report "NoData Value=-999" for the bands ?
Just for reference, I've create a fake
"LSatThermalCube_96-98_float_cmsk_landmasked_ll.img" and gdalinfo on it reports :
Driver: ENVI/ENVI .hdr Labelled
Files: LSatThermalCube_96-98_float_cmsk_landmasked_ll.img
LSatThermalCube_96-98_float_cmsk_landmasked_ll.hdr
Size is 2178, 1841
Coordinate System is:
GEOGCS["WGS 84",
DATUM["WGS_1984",
SPHEROID["WGS 84",6378137,298.257223563,
AUTHORITY["EPSG","7030"]],
TOWGS84[0,0,0,0,0,0,0],
AUTHORITY["EPSG","6326"]],
PRIMEM["Greenwich",0,
AUTHORITY["EPSG","8901"]],
UNIT["degree",0.0174532925199433,
AUTHORITY["EPSG","9108"]],
AUTHORITY["EPSG","4326"]]
Origin = (-124.258818822248998,51.670841529998398)
Pixel Size = (0.000337173258152,-0.000337173258152)
Metadata:
[.... cut ....]
Image Structure Metadata:
INTERLEAVE=BAND
Corner Coordinates:
Upper Left (-124.2588188, 51.6708415) (124d15'31.75"W, 51d40'15.03"N) Lower Left (-124.2588188, 51.0501056) (124d15'31.75"W, 51d 3' 0.38"N) Upper Right (-123.5244555, 51.6708415) (123d31'28.04"W, 51d40'15.03"N) Lower Right (-123.5244555, 51.0501056) (123d31'28.04"W, 51d 3' 0.38"N)
Center (-123.8916371, 51.3604735) (123d53'29.89"W, 51d21'37.70"N)
Band 1 Block=2178x1 Type=Float32, ColorInterp=Undefined
Description = Band 1
NoData Value=-999
Band 2 Block=2178x1 Type=Float32, ColorInterp=Undefined
Description = Band 2
NoData Value=-999
[... cut ... ]
Band 49 Block=2178x1 Type=Float32, ColorInterp=Undefined
Description = Band 49
NoData Value=-999
More information about the gdal-dev
mailing list