Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Example:


Creation of a new file named 'test_write.h5' on the folder 'C:\temp'.
Add a new dataset sames 'some_name' in the root group /.
This datased is an unidimensional vector of a compound type, with this structure:

...

and filled with an array with two values:
15 3.0 2.0 1.0
2 1.1 2.2 3.3
Add another dataset named 'other_name', with a bidimensional array of floats, in 2 columns, and filled with:
15.1 3.0
22.0 1.4
6.5 2.8
(then the number of rows is 3)

Datasets are compressed with maximum compression level=9
Finally the file is closed

Code Block
package require hdf5

...


set h hdf2

...


hdf5 $h {C:\temp\test_write.h5}

...


set compress_level 9

...


$h set -vtype compound -fields {index uint v1 float v2 float v3 float} -compress $compress_level -ncolumns 1 /some_name {15 3.0 2.0 1.0 2 1.1 2.2 3.3}

...


$h set -vtype float -compress $compress_level -ncolumns 2 /other_name {15.1 3.0 22.0 1.4 6.5 2.8}

...


$h close


Example:


Open an existent file named'test_read.h5' for reading.
get the attribute named /mesh/ntc1_2/all and print all its names and values
get the attribute named /mesh/ntc1_2/all and print the value of the attribute named 'type'
get the dimensions of the dataset named /mesh/ntc1_2/all/selectorOnMesh/GC011 and print them
print the data stored in this datased
get all groups child ot of the root group (named always \ allways), and for each group get its datasets and print its data.


Code Block
package require hdf5

...


set h hdf1

...


hdf5 $h {C:\temo\test_read.h5}

...


puts [$h get_attribute /mesh/ntc1_2/all]

...


puts [$h get_attribute /mesh/ntc1_2/all type]

...


set dataset /mesh/ntc1_2/all/selectorOnMesh/GC011

...


puts [$h get -dimensions $dataset] ;#get the dimensions only

...


puts [$h get $dataset] ;#get the data

...


set groups [$h glob -directory \ -types group *]

...


foreach group $groups {

...


    set datasets [$h glob -directory \$group -types dataset *]

...


    foreach dataset $datasets

...

 {
       set data [$h get $dataset]

...


       puts $data
    }
}
$h close