Re: 1.8 file format

NOTE: The netcdf-hdf mailing list is no longer active. The list archives are made available for historical reasons.

Thanks Elena, this is what i found:

Message 1...
  Message ID (sequence number):                   0x0003 `datatype' (0)
  Dirty:                                          FALSE
  Message flags:                                  <C>
  Chunk number:                                   0
  Raw message data (offset, size) in chunk:       (40, 8) bytes
  Message Information:
     Type class:                                  reference
     Size:                                        12 bytes
     Fix dumping reference types!

Message 3...
  Message ID (sequence number):                   0x0008 `layout' (0)
  Dirty:                                          FALSE
  Message flags:                                  <C>
  Chunk number:                                   0
  Raw message data (offset, size) in chunk:       (80, 24) bytes
  Message Information:
     Version:                                     1
     Type:                                        Contiguous
     Data address:                                12224
     Data Size:                                   0

matching my dump (sort of):

-->Datatype(3) messageSize=8 flags = 1
  Datatype type=7 version= 1 flags = 1 0 0 byteSize=12 byteOrder=BIG
  --type 7(reference): type= 1

 -->Layout(8) messageSize=24 flags = 1
  StorageLayout version= 1 type = 1 ndims=2: 5 12 dataAddress= 12224

Elena Pourmal wrote:

You may wish to try h5ls tool to find the address of the object header for that dataset and then use h5debug tool to see header messages.

I believe commands will be like in the following examples

h5ls -var file.h5

You will see addresses of the datasets (say the address of the dataset you are interested in is XXXX).

Then use h5debug

h5debug file.h5 XXXX
to see the messages at address XXXX.

May be it is not exactly the correct syntax but it is easy to figure out when you know what you are looking for in the file.


At 5:50 PM -0600 7/24/07, 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?

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:

To unsubscribe netcdf-hdf, visit:

  • 2007 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the netcdf-hdf archives: