Re: 1.8 file format

Hi John,

On Jul 24, 2007, at 6:50 PM, John Caron wrote:

Hmm, looks like the docs are out of date and/or wrong for region references. Because region references are variable in length, the actual reference information is stored in the global heap and a (fixed length) heap ID is stored in the dataset's raw data - that part is right, although too briefly described.

the data storage layout messaage seems to imply the HeapID is 12 bytes long. Usually they are 16 bytes long.

   type = Layout(8); contiguous storageSize = (2,12) dataAddress=13352

I dont see enough detail in h5dump:

        DATASET "VIIRS-NCC-EDR_Gran_0" {
           DATASPACE  SIMPLE { ( 2 ) / ( 2 ) }

is there another option that would verify that?

in any case is 12 bytes correct? if so, what does a 12-byte HeapId look like?

Yes, 12 bytes is correct. The format of a heap ID is: an 8 byte file address of the global heap to use, followed by a 4 byte heap "index" without that global heap. You can see how this is decoded and used by the library in the H5R_dereference routine in src/H5R.c.


The format of the data in the
heap is wrong however. The information actually stored in the heap is as follows: - The offset of the object header of the object (ie. dataset) pointed to (yes, an object ID) - A serialized form of a dataspace _selection_ of elements (in the dataset pointed to). I don't have a formal description of this information now, but it's encoded in the H5S_<foo>_serialize () routines in src/H5S<foo>.c, where foo = {all, hyper, point, none}. There is _no_ datatype information stored for these sort of selections currently. I'll file a bug report in our bugzilla to make certain this description gets fixed in the file format spec.

====================================================================== ========
To unsubscribe netcdf-hdf, visit:
====================================================================== ========

Attachment: smime.p7s
Description: S/MIME cryptographic signature