Can new versions of HDF4 read HDF4 files written using older versions of the HDF4 library?
Our goal is to make HDF backward compatible in the sense that HDF files can always be read by newer versions of HDF. We have succeeded in doing this so far, and will continue to follow the principle as much as possible. In many instances, HDF is also forward compatible, at least in regards to the data. Metadata, such as attributes, may not be readable by previous releases, but the data should be. Please see the notes following the table below for information on when the data is not forward compatible.
The table below lists the backward and forward compatibility of HDF in regards to the data (not metadata). The Vdata and Vgroup interfaces have been merged into HDF since HDF3.2. Before then, they were in a separate library named Vset.
| CAN READ DATA FILES CREATED WITH Interface | HDF3.1 | HDF3.2 | HDF3.3 | HDF4.0 | HDF4.1 ------------------------------------------------------------------- HDF3.1 | | | | | -RIS8 | YES | YES | YES(1) | YES(1) | YES(1) -RIS24 | YES | YES | YES(1) | YES(1) | YES(1) -PALETTE | YES | YES | YES | YES | YES -ANNOTATION | YES | YES | YES | YES | YES -SDS DFSD | Float32 | Float32 | Float32 | Float32(2)| Float32(2,3) Vset 2.1 | | | | | -VData | YES | YES | YES | YES | YES -Vgroup | YES | YES | YES | YES | YES ------------------------------------------------------------------- HDF3.2 | | | | | -RIS8 | YES | YES | YES(1) | YES(1) | YES(1) -RIS24 | YES | YES | YES(1) | YES(1) | YES(1) -PALETTE | YES | YES | YES | YES | YES -ANNOTATION | YES | YES | YES | YES | YES -SDS DFSD | YES | YES | YES | YES(2) | YES(2,3) -VData | YES | YES | YES | YES | YES -Vgroup | YES | YES | YES | YES | YES ------------------------------------------------------------------- HDF3.3 | | | | | -RIS8 | YES | YES | YES | YES | YES -RIS24 | YES | YES | YES | YES | YES -PALETTE | YES | YES | YES | YES | YES -ANNOTATION | YES | YES | YES | YES | YES -SDS SD | YES | YES | YES | YES(2) | YES(2,3) -SDS DFSD | YES | YES | YES | YES(2) | YES(2,3) -VData | YES | YES | YES | YES | YES -Vgroup | YES | YES | YES | YES | YES ------------------------------------------------------------------- HDF4.0 | | | | | -GR | YES | YES | YES | YES | YES -RIS8 | YES | YES | YES | YES | YES -RIS24 | YES | YES | YES | YES | YES -PALETTE | YES | YES | YES | YES | YES -MFAN | YES | YES | YES | YES | YES -ANNOTATION | YES | YES | YES | YES | YES -SDS SD | YES | YES | YES | YES | YES(3) -SDS DFSD | YES | YES | YES | YES(2) | YES(2,3) -VData | YES | YES | YES | YES | YES -Vgroup | YES | YES | YES | YES | YES ------------------------------------------------------------------- HDF4.1 | | | | | -GR | YES | YES | YES | YES | YES -RIS8 | YES | YES | YES | YES | YES -RIS24 | YES | YES | YES | YES | YES -PALETTE | YES | YES | YES | YES | YES -MFAN | YES | YES | YES | YES | YES -ANNOTATION | YES | YES | YES | YES | YES -SDS SD | YES | YES | YES | YES | YES -SDS DFSD | YES | YES | YES | YES | YES -VData | YES | YES | YES | YES | YES -Vgroup | YES | YES | YES | YES | YES
- except for JPEG compression
- except for gzip and nbit compression
- except for chunking and chunking with compression
NOTES:
- The table above does not include the low-level compression interface, which was introduced in HDF 4.0.
- The SD interface should always be able to read an HDF file that was created with the DFSD interface.
- With HDF 4.1r2, the SD dimension representation introduced in 4.0r1 will ONLY be used by default. To be read by earlier versions of the software, the SDsetdimval_comp must be called to store the old and new dimension representations in an HDF file.
- Old HDF libraries will NOT always be able to read HDF data written by newer version HDF libraries. For example, HDF3.1 can not read 16-bit integer SDS's because HDF 3.1 did not support this data type.
- In HDF 4.1r1, chunking and Vdata/Vgroup attributes were added. Previous releases will not be able to read data which was created using these features.