hdf images hdf images

OPeNDAP HDF4 Handler Limitations

This new enhanced handler has many limitations. Not all HDF/HDF-EOS2 products can be visualized by the OPeNDAP clients using this handler. Here, we summarize why some products cannot be visualized and list some data products and sample files that fail to be accessed by OPeNDAP visualization clients at the end of this page.

Reasons of Visualization Failure

1. No Support for Multiple Geo-location information

Most visualization clients expect the shared geo-location information datasets (a.k.a shared dimensions or map data) among DAP Grids and Swath following CF convention. Thus, if an HDF-EOS2 file has multiple geo-location information with different arrays sizes, the enhanced handler will throw an error saying The HDF-EOS2 library cannot process this file.

2. No Support for Vgroups

The enhanced handler suppresses the handling of Vgroups for the technical reasons of the old HDF4 handler. Thus, if the same dataset name (including dimension information like Latitude/Longitude) is used under the two different Vgroups, the handler throws an error "Problem with DDS semantics" to avoid ambiguity. CERES files will show this error message.

3. No Support for Duplicate Name

Generating all shared dimensions could result in the DDS semantics problem. For example, some MODIS Grid files used the same name for both Grid variable and geo-location information variable. When a shared dimension variable x is generated outside a Grid variable x[x=3][lat=180][lon=360], the OPeNDAP library detects the x as a duplicate variable name in DDS. In this case, the HDF4 handler throws an error "Problem with DDS semantics" to avoid ambiguity. One work-around solution for this problem is to disable all dds.check_semantics() in hdfdesc.cc source code since some OPeNDAP visualization clients like IDV and Panoply do not care whether using the same name for Grid variable and dimension variable. However, the GrADS will complain with an error message Grid map variable `x' conflicts with the grid array name in grid `x'.


Figure 1: Panoply works on MODIS Grid if dds.check_semantics() is disabled.

4. No Support for Some Projection

Some 2-D Grid projection like Lamaz projection cannot be supported.

5. No Support for Point data

No Point data can be visualized.

6. No Support for Swath with 1-D geo-location Data

Some HDF-EOS Swath files use 1-D geo-location data array. This is rather unusual because mose Swath files have 2-D geo-location data array and it is more like a time series data on a (lat, lon) point. The DDS structure looks like below: Float32 lat[ntime=154649]; // Geo-location data Float32 lon[ntime=154649]; // Geo-location data Float32 X[ntime=154649]; // Dataset Please note that this is not the problem of the new enhanced handler. The client like IDV simply doesn't understand 1-D Swath case since the CF convention is still under development for such case. If a visualization client is smart enough to interpret the 1-D Swath correctly, it can visualize such data. For example, see the HDF5-Friendly OPeNDAP Client Library work.

7. No Support for Invalid Character

There's a bug in the OPeNDAP system that returns a garbage character if '%' is used as an HDF-EOS object name. For example, IDV will throw an error saying Illegal Netcdf Object Name = 'Valid_EV_Obs_Band_2_(some garbage character...', should be [a-zA-Z_][a-zA-Z0-9_@:\.\-\(\)\+]* when it reads such object.

List of Sample Unsupported Data

Here's a sample list of unsupported HDF-EOS2 data that fail to display using clients.

MissionInstrumentTypeSample FilenameReason for Failure
AQUAMODISSwathMAC05S0.A2006153.0000.002.2007098162108.hdf1
TERRAMISRGridMISR_LAND_FIRSTLOOK_P068_O044103_F07_0022_ATS_b32-38.hdf1
TERRAMODISSwathAST_L1B_00305292006080906_20060604094034_7323.hdf2
AQUAMODISGridMOD08_D3.A2008284.005.2008289105354.hdf3
TERRAMISRGridMISR_AM1_CGAS_MAR_01_2006_SITE_INTEXB_F06_0021.hdf4
AQUAAMSR-EPointAMSR_E_L2_Land_B04_200206182340_A.hdf5
TERRAMOPITTSwathMOP02-20000303-L2V5.7.1.val.hdf6
AQUAMODISSwathMOD10_L2.A2000136.0235.004.2003009030119.hdf7

- - Last modified:September 23rd 2009