[gdal-dev] [gdal_translate] Spatial subset HDF4Image with multiple subdatasets?
dcd
dennis.duro at glel.carleton.ca
Wed Jun 20 05:50:29 PDT 2012
Le mardi 19 juin 2012 23:55:49, dcd a écrit :
> Hi,
>
> Is it possible to spatially subset an HDF4Image that contains multiple
> subdatasets using gdal_translate (GDAL 1.9.1)? When using a spatial subset
> switch ("-a_ullr"), I get the following response:
>
> "Input file contains subdatasets. Please, select one of them for reading."
>
> This happens regardless of output format specified (HDF4Image, GTiff,
> ENVI,
> etc.), or whether the "-b" switch has been used as per the examples here:
> http://www.gdal.org/gdal_translate.html. A workaround is to use the "-sds"
> switch allows the process to complete, but (as expected) it processes each
> subdataset as a separate file. I suppose I can just merge these
> subdatasets
> together again, but I'd like to avoid the extra step. Is this possible?
>
> I'm working with a MODIS imagery (MOD09GA), but I've had the issues with
> other similar HDF4 datasets.
You can use one of the subdataset names listed by gdalinfo on the HDF file
as a
pseudo-filename usable by any GDAL utility (including gdal_translate).
For example :
$ gdalinfo MOD02HKM.A2011169.1750.005.NRT.hdf
[...]
Subdatasets:
SUBDATASET_1_NAME=HDF4_EOS:EOS_SWATH:"MOD02HKM.A2011169.1750.005.NRT.hdf":MODIS_SWATH_Type_L1B:EV_500_RefSB
SUBDATASET_1_DESC=[5x4060x2708] EV_500_RefSB MODIS_SWATH_Type_L1B (16-bit
unsigned integer)
SUBDATASET_2_NAME=HDF4_EOS:EOS_SWATH:"MOD02HKM.A2011169.1750.005.NRT.hdf":MODIS_SWATH_Type_L1B:EV_500_RefSB_Uncert_Indexes
SUBDATASET_2_DESC=[5x4060x2708] EV_500_RefSB_Uncert_Indexes
MODIS_SWATH_Type_L1B (8-bit unsigned integer)
[...]
$ gdalinfo
HDF4_EOS:EOS_SWATH:"MOD02HKM.A2011169.1750.005.NRT.hdf":MODIS_SWATH_Type_L1B:EV_500_RefSB
Driver: HDF4Image/HDF4 Dataset
Files: MOD02HKM.A2011169.1750.005.NRT.hdf
Size is 2708, 4060
Coordinate System is `'
GCP Projection =
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"]]
[...]
_______________________________________________
Merci beaucoup for the quick reply!
Sorry, I didn't mention in the original post that I need to spatially subset
hundreds of images.
While I know that I can declare subdatasets individually, it will still mean
that I need to combine the individual subdatasets after spatial subsetting.
Also, declaring individual subdatasets by name is a bit of pain, although
doable if need be.
It would be nice if the "-b" switch in gdal_translate could be used for
selecting specific subdatasets within an HDF4Image, either by their full
name (SUBDATASET_1_NAME=....), description (SUBDATASET_1_DESC=...), or
preferably by index ("-b 1" would be equivalent to "SUBDATASET_1", "-b 2"
would be equivalent to "SUBDATASET_2", etc). When reading the gdal_translate
documentation for the "-b" switch, it appears that this should be possible,
although the example is with a GTiff image. If it is possible with HDF
files, I'd like to know how. If not, I will put in a request using the
appropriate channels.
I could always use the MODIS Reprojection Tool to script this task, but I'd
like to have done this exclusively using GDAL.
Anyway, thanks for the tip!
--
View this message in context: http://osgeo-org.1560.n6.nabble.com/gdal-translate-Spatial-subset-HDF4Image-with-multiple-subdatasets-tp4982526p4982668.html
Sent from the GDAL - Dev mailing list archive at Nabble.com.
More information about the gdal-dev
mailing list