Alpha Release of the NeXus API with HDF-5 support

Mark Koennecke Mark.Koennecke at PSI.CH
Fri Aug 17 10:06:40 BST 2001



Dear NeXus Developers,

for some times we have announced that the NeXus API based on HDF5 will
be available soon! Now we are in the happy situation to release the
alpha-version. As you might have noticed from the flurry of CVS 
messages.

This version is tested successfully under:

Digital UNIX
LINUX
Windows NT 4.0.

It would be helpful if you are looking into the new API to make
comments. For testing you should install HDF5 version 1.4.0 .

Some comments from our side.

Besides the source code files we are distributing the Makefile for the
UNIX and LINUX platform. This Makefile can be started with 3 different
options:

lib4
lib5
lib45

The command make lib4 will start up the Sub-Makefile makefile_hdf4. In
this version only the NeXus HDF4 API and the HDF4 library  will be
compiled and linked.

The command make lib5 will start up the Sub-Makefile makefile_hdf5. In
this version only the NeXus HDF5 API and the HDF5 library  will be
compiled and linked.

 The command make lib45 will start up the Sub-Makefile makefile_hdf45. In
this version the NeXus API including HDF4 and HDF5 libraries  will be
compiled and linked.

It is necessary that the appropriate HDF libraries are installed already
on your system. The NeXus HDF5 API was tested with the HDF5 library
version 1.4.0!

For testing you can check the addtional compiled test programmes
test4o(HDF4), test5o(HDF5), test4 (HDF4/5) and test5 (HDF4/5).

For the Windows NT platform we have prepared 3 projects under the MS VC++
Developer Studio 6.0. Analogous to the other platforms the following
project files are available: hdf45_4.dsw (only HDF4), hdf45_5.dsw (only
HDF5) and hdf45_45.dsw (both HDF4 and HDF5). Additionally we have created
appropriate *.mak files.
 
The following decisions had to be made in order to get this to work:
- Global attributes are root group attributes in HDF-5
- The NeXus class is a special HDF-5 group attribute with the name 
  nxclass. The API handles this transparently to  the user but it is worth
  knowing this when looking a the HDF-5 files with generic HDF tools.
- The API does it best to figure out which HDF version to use. However,
  when creating a file we need to decide upon a HDF version. A new define:
  NX_ACC_CREATE5 has been added which causes a HDF-5 file to be created.
  The old CREATE creates a HDF-4 file.
- HDF-5 requires any compression type to be specified at dataset creation
  time. This implied the following changes:
  * a new API function NXmakecompdata creates compressed data sets.
  * NXcompress is deprecated and is only kept for backwards compatibility.
    However, with HDF-5 this function will cause an error.
    
Before commiting the new version to the repository, the old version of the
API was tagged with the tag nexus4. This allows us to retrieve the old
version from the repository any time and to branch on it until the new 
version is stable.

Neither the F77, F90, NXdict of Java neXus part have been updated yet.

Best regards

Mark Koennecke
Uwe Filges
 
 





More information about the NeXus-developers mailing list