For instance, if the url http://maps.gdal.org/daac-bin/nph-hdf/3B42.HDF.dds returns a DDS definition like this:
Dataset {
Structure {
Structure {
Float64 percipitate[scan = 5][longitude = 360][latitude = 80];
Float64 relError[scan = 5][longitude = 360][latitude = 80];
} PlanetaryGrid;
} DATA_GRANULE;
} 3B42.HDF;
then the percipitate grid can be accessed using the following GDAL dataset name:
http://maps.gdal.org/daac-bin/nph-hdf/3B42.HDF?DATA_GRANULE.PlanetaryGrid.percipitate[0][x][y]
The full path to the grid or array to be accessed needs to be specified (not counting the outer Dataset name). GDAL needs to know which indices of the array to treat as x (longitude or easting) and y (latitude or northing). Any other dimensions need to be restricted to a single value.
In cases of data servers with only 2D arrays and grids as immediate children of the Dataset it may not be necessary to name the grid or array variable.
In cases where there are a number of 2D arrays or grids at the dataset level, they may be each automatically treated as seperate bands.
Attributes {
GLOBAL {
Float64 Northernmost_Northing 71.1722;
Float64 Southernmost_Northing 4.8278;
Float64 Easternmost_Easting -27.8897;
Float64 Westernmost_Easting -112.11;
Float64 GeoTransform "71.1722 0.001 0.0 -112.11 0.0 -0.001";
String spatial_ref "GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563]],PRIMEM[\"Greenwich\",0],UNIT[\"degree\",0.0174532925199433]]";
Metadata {
String TIFFTAG_XRESOLUTION "400";
String TIFFTAG_YRESOLUTION "400";
String TIFFTAG_RESOLUTIONUNIT "2 (pixels/inch)";
}
}
band_1 {
String Description "...";
String
}
}
It will have the following subitems:
It will have the following subitems:
Colormap {
Color_0 {
Byte red 0;
Byte green 0;
Byte blue 0;
Byte alpha 255;
}
Color_1 {
Byte red 255;
Byte green 255;
Byte blue 255;
Byte alpha 255;
}
...
}