Great! But I see that we need to clean some code in the library
(H5Odtype.c "Fix dumping reference types!" ) :-)
At 9:14 PM -0600 7/24/07, John Caron wrote:
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:
John,
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.
Elena
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" {
DATATYPE H5T_REFERENCE
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.
Quincey
==============================================================================
To unsubscribe netcdf-hdf, visit:
http://www.unidata.ucar.edu/mailing-list-delete-form.html
==============================================================================
==============================================================================
To unsubscribe netcdf-hdf, visit:
http://www.unidata.ucar.edu/mailing-list-delete-form.html
==============================================================================
--
------------------------------------------------------------
Elena Pourmal
The HDF Group
1901 So First ST.
Suite C-2
Champaign, IL 61820
epourmal@xxxxxxxxxxxx
(217)333-0238 (office)
(217)333-9049 (fax)
------------------------------------------------------------
==============================================================================
To unsubscribe netcdf-hdf, visit:
http://www.unidata.ucar.edu/mailing-list-delete-form.html
==============================================================================