I am in the process of developing some generic HDF tools to make HDF files more accessible to regular applications.
In developing datasets for scientific visualization and animation I frequently must load 2D and 3D datasets into third party software packages, some of which are open source and some are not. The output of these datasets are 3D graphics and other metadata.
It would be desirable to amalgamate regular files into HDF file datasets and be able to read those datasets as a simple files, so that programs that do not have HDF code would be able to read the files without modify their application code. Applications that are HDF savy would be able to do more
sophisticated operations on the datasets.
Last week I developed a prototype using macfuse (which is based on the soureforge FUSE), that allows me to mount an HDF file and make it look like a regular file system. In the test I was able to generate a FBX graphics files (part of another prototype) readable by the Maya animation package,
insert them into an HDF file, mount the HDF file as a file system and have quicktime read the FBX datasets contained in the HDF file.
I am planning to develop two tools: hdfFUSEin and hdfFUSE.
hdfFUSEin would ingest a file and create a dataset under the group "/FUSE/" . It would be a command line program with arguments specifying the HDF filename, ingest filename, and optional alternate dataset name (default would be the ingest filename). If the dataset name is all ready in use, an
error would be returned and the ingest file would not be amalgamated.
hdfFUSE would expose all /FUSE/ group datasets as files, mounted under a filesystem having the same name as the HDF file.
Initially it would be a read-only filesystem and would be a command line program. Shortly after, I plan to make it work under the OS gui so that when you click the HDF file it mounts its /FUSE/ datasets. Later on I would eliminate hdfFUSEin and make hdfFUSE a writable file system.
I do not think at this point it would advisable to FUSE mount every dataset in an HDF file as a regular file, but only specific datasets under /FUSE/ group such as 1D character contiguous datasets.
Before I code this up I wanted to put out this RFC for design ideas.
National Center for Macromolecular Imaging
Baylor College of Medicine/Houston Texas USA