[Qgis-user] Re: [gdal-dev] Problems with gdal and hdf files

Etienne Tourigny etourigny.dev at gmail.com
Wed May 2 09:04:24 EDT 2012


On Wed, May 2, 2012 at 9:43 AM, Agustin Lobo <alobolistas at gmail.com> wrote:
> You are right. I was confusing bands and subdatasets.
> The following does not work:
> $ gdal_translate -b 4  lndsr.L5169054_05420101216.hdf test.tif
> Input file contains subdatasets. Please, select one of them for reading.
>
> The following works:
> $ gdal_translate -sds lndsr.L5169054_05420101216.hdf test.tif
> which results in test.tif1 to test.tif9 (probably should be test1.tif
> to test9.tif)
>
> but there is no way to actually select 1 or more specific subdatasets

same thing if you use the extended file syntax (e.g.
HDF4_EOS:EOS_GRID:"lndsr.L5169054_05420101216.hdf":Grid:band1 ) .

You can probably work around this limitation by creating a vrt file
with gdalbuildvrt

>
> The most important
> QGIS complains:
> Cannot get GDAL raster band:
>
> R (raster) complains
>> r <- brick("lndsr.L5169054_05420101216.hdf")
> Error in .rasterObjectFromFile(x, objecttype = "RasterBrick", ...) :
>  Cannot create a RasterLayer object from this file.
> In addition: Warning message:
> In .rasterFromGDAL(x, band = band, objecttype, ...) :
>  GeoTransform values not available; georeferencing will not be correct
>>

pass the vrt file you created to R, it should work as long as gdalinfo
works on that vrt file, although I have never tried it.

>
> but GDALinfo() is correct.
> Cannot test hdf5 or readGDAL() in R as the file is huge
>
> I guess the problem is in QGIS (and R package raster)? I'm not sure,
> as I do not know if
> subdatasets can be selected for reading using gdal.

Also see if you can load the vrt file in qgis!

>
> Agus
>
> 2012/5/2 Even Rouault <even.rouault at mines-paris.org>:
>> Selon Agustin Lobo <alobolistas at gmail.com>:
>>
>>> Hi!
>>>
>>> The gdal info of a multiband satellite image in hdf is reported by
>>> gdal as "Size is 512, 512"
>>> in contradiction with the size of the subdatasets. QGIS and R
>>> (raster+rgdal) report an error at opening the file,
>>> while envi and HDFLook can open it with no problem. I include the
>>> gdalinfo output and the
>>> info reported by HDFLook. Any help appreciated.
>>
>> I don't consider that to be a problem. The size reported on a GDAL dataset that
>> is only made of subdatasets (that is to say when the dataset has no raster bands
>> in itself, which is the case here) has no meaning, and is put to a default value
>> of 512x512. You have to open the subdatasets to know their size(in the case of
>> HDF4, the description of the subdataset also give them). There are cases where
>> the subdsatasets have different sizes, so it would be impossible to set a
>> significant value for the size of the dataset.
>>
>>> Thanks
>>> Agus
>>>
>>> $ gdalinfo --version
>>> GDAL 1.8.0, released 2011/01/12
>>>
>>> $ gdalinfo lndsr.L5169054_05420101216.hdf
>>> Driver: HDF4/Hierarchical Data Format Release 4
>>> Files: lndsr.L5169054_05420101216.hdf
>>> Size is 512, 512
>>> Coordinate System is `'
>>> Metadata:
>>>   DataProvider=UMD
>>>   Satellite=LANDSAT_5
>>>   Instrument=TM
>>>   AcquisitionDate=2010-12-16T00:00:00.000000Z
>>>   Level1ProductionDate=2012-02-22T00:00:00.000000Z
>>>   SolarZenith=42.02009
>>>   SolarAzimuth=141.4236
>>>   WRS_System=2
>>>   WRS_Path=169
>>>   WRS_Row=54
>>>   NumberOfBands=6
>>>   BandNumbers=1, 2, 3, 4, 5, 7
>>>   ShortName=L5TSR
>>>   LocalGranuleID=L5TSR.a2010350.w2p169r054.020.2012117105207.hdf
>>>   ProductionDate=2012-04-26T10:52:07Z
>>>   PGEVersion=1.0.9
>>>   ProcessVersion=1.0.4
>>>   WestBoundingCoordinate=36.6199876177544
>>>   EastBoundingCoordinate=38.780676500528
>>>   NorthBoundingCoordinate=9.61826703329522
>>>   SouthBoundingCoordinate=7.72285510894074
>>>   OrientationAngle=0
>>>   PixelSize=30
>>>   HDFEOSVersion=HDFEOS_V2.4
>>>   Cloud Mask Algo Version=CMReflectanceBasedv1.0
>>> Subdatasets:
>>>
>>>
>> SUBDATASET_1_NAME=HDF4_EOS:EOS_GRID:"lndsr.L5169054_05420101216.hdf":Grid:band1
>>>   SUBDATASET_1_DESC=[6961x7901] band1 Grid (16-bit integer)
>>>
>>>
>> SUBDATASET_2_NAME=HDF4_EOS:EOS_GRID:"lndsr.L5169054_05420101216.hdf":Grid:band2
>>>   SUBDATASET_2_DESC=[6961x7901] band2 Grid (16-bit integer)
>>>
>>>
>> SUBDATASET_3_NAME=HDF4_EOS:EOS_GRID:"lndsr.L5169054_05420101216.hdf":Grid:band3
>>>   SUBDATASET_3_DESC=[6961x7901] band3 Grid (16-bit integer)
>>>
>>>
>> SUBDATASET_4_NAME=HDF4_EOS:EOS_GRID:"lndsr.L5169054_05420101216.hdf":Grid:band4
>>>   SUBDATASET_4_DESC=[6961x7901] band4 Grid (16-bit integer)
>>>
>>>
>> SUBDATASET_5_NAME=HDF4_EOS:EOS_GRID:"lndsr.L5169054_05420101216.hdf":Grid:band5
>>>   SUBDATASET_5_DESC=[6961x7901] band5 Grid (16-bit integer)
>>>
>>>
>> SUBDATASET_6_NAME=HDF4_EOS:EOS_GRID:"lndsr.L5169054_05420101216.hdf":Grid:band7
>>>   SUBDATASET_6_DESC=[6961x7901] band7 Grid (16-bit integer)
>>>
>>>
>> SUBDATASET_7_NAME=HDF4_EOS:EOS_GRID:"lndsr.L5169054_05420101216.hdf":Grid:atmos_opacity
>>>   SUBDATASET_7_DESC=[6961x7901] atmos_opacity Grid (16-bit integer)
>>>
>>>
>> SUBDATASET_8_NAME=HDF4_EOS:EOS_GRID:"lndsr.L5169054_05420101216.hdf":Grid:lndsr_QA
>>>   SUBDATASET_8_DESC=[6961x7901] lndsr_QA Grid (16-bit integer)
>>>
>>>
>> SUBDATASET_9_NAME=HDF4_EOS:EOS_GRID:"lndsr.L5169054_05420101216.hdf":Grid:band6
>>>   SUBDATASET_9_DESC=[6961x7901] band6 Grid (16-bit integer)
>>> Corner Coordinates:
>>> Upper Left  (    0.0,    0.0)
>>> Lower Left  (    0.0,  512.0)
>>> Upper Right (  512.0,    0.0)
>>> Lower Right (  512.0,  512.0)
>>> Center      (  256.0,  256.0)
>>>
>>>
>>> HDFLooK:
>>>
>>> Global attributes: 26
>>> DataProvider:
>>>
>> UMDLANDSAT_5TM2010-12-16T00:00:00.000000Z2012-02-22T00:00:00.000000Z    SolarZenith:    42.0201
>>>       SolarAzimuth:   141.424
>>> 2     WRS_Path:       169
>>>       WRS_Row:        54
>>>       NumberOfBands:  6
>>>       BandNumbers:    1,  2,  3,  4,  5,  7
>>>
>> L5TSRL5TSR.a2010350.w2p169r054.020.2012117105207.hdf2012-04-26T10:52:07Z1.0.91.0.4      WestBoundingCoordinate: 36.62
>>>       EastBoundingCoordinate: 38.7807
>>>       NorthBoundingCoordinate:        9.61827
>>>       SouthBoundingCoordinate:        7.72286
>>>       OrientationAngle:       0
>>>       PixelSize:      30
>>>
>> HDFEOS_V2.4-----------------------------------------------------------------------------------
>>> GROUP=SwathStructure
>>> END_GROUP=SwathStructure
>>> GROUP=GridStructure
>>>       GROUP=GRID_1
>>>               GridName="Grid"
>>>               XDim=7901
>>>               YDim=6961
>>>               UpperLeftPointMtrs=(238785.000000,1063215.000000)
>>>               LowerRightMtrs=(475815.000000,854385.000000)
>>>               Projection=GCTP_UTM
>>>               ZoneCode=37
>>>               SphereCode=12
>>>               GridOrigin=HDFE_GD_UL
>>>               GROUP=Dimension
>>>               END_GROUP=Dimension
>>>               GROUP=DataField
>>>                       OBJECT=DataField_0
>>>                               DataFieldName="band1"
>>>                               DataType=DFNT_INT16
>>>                               DimList=("YDim","XDim")
>>>                       END_OBJECT=DataField_0
>>>                       OBJECT=DataField_1
>>>                               DataFieldName="band2"
>>>                               DataType=DFNT_INT16
>>>                               DimList=("YDim","XDim")
>>>                       END_OBJECT=DataField_1
>>>                       OBJECT=DataField_2
>>>                               DataFieldName="band3"
>>>                               DataType=DFNT_INT16
>>>                               DimList=("YDim","XDim")
>>>                       END_OBJECT=DataField_2
>>>                       OBJECT=DataField_3
>>>                               DataFieldName="band4"
>>>                               DataType=DFNT_INT16
>>>                               DimList=("YDim","XDim")
>>>                       END_OBJECT=DataField_3
>>>                       OBJECT=DataField_4
>>>                               DataFieldName="band5"
>>>                               DataType=DFNT_INT16
>>>                               DimList=("YDim","XDim")
>>>                       END_OBJECT=DataField_4
>>>                       OBJECT=DataField_5
>>>                               DataFieldName="band7"
>>>                               DataType=DFNT_INT16
>>>                               DimList=("YDim","XDim")
>>>                       END_OBJECT=DataField_5
>>>                       OBJECT=DataField_6
>>>                               DataFieldName="atmos_opacity"
>>>                               DataType=DFNT_INT16
>>>                               DimList=("YDim","XDim")
>>>                       END_OBJECT=DataField_6
>>>                       OBJECT=DataField_7
>>>                               DataFieldName="lndsr_QA"
>>>                               DataType=DFNT_INT16
>>>                               DimList=("YDim","XDim")
>>>                       END_OBJECT=DataField_7
>>>                       OBJECT=DataField_9
>>>                               DataFieldName="band6"
>>>                               DataType=DFNT_INT16
>>>                               DimList=("YDim","XDim")
>>>                       END_OBJECT=DataField_9
>>>               END_GROUP=DataField
>>>               GROUP=MergedFields
>>>               END_GROUP=MergedFields
>>>       END_GROUP=GRID_1
>>> END_GROUP=GridStructure
>>> GROUP=PointStructure
>>> END_GROUP=PointStructure
>>> END
>>>
>> -----------------------------------------------------------------------------------
>>> CMReflectanceBasedv1.0
>>> _______________________________________________
>>> gdal-dev mailing list
>>> gdal-dev at lists.osgeo.org
>>> http://lists.osgeo.org/mailman/listinfo/gdal-dev
>>>
>>
>>
> _______________________________________________
> Qgis-user mailing list
> Qgis-user at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/qgis-user


More information about the gdal-dev mailing list