A Friendly Guide to H5s Graphics

Named Data Objects

decor

Glyphs for Datatypes

Glyphs for HDF5 datatypes are shown here. HDF5 supports a rich collection of datatypes—atomic ones where the data element is an indivisible unit of storage, and composite datatypes that are aggregates of any other datatypes, either atomic or composites.

An HDF5 dataset bravo is used to illustrate the different visual elements1-4of the datatype. The graph display in H5s strictly represents the hierarchy of the HDF5 data objects—by design it does not descend into nested composite types. However, by visually combining the rank glyph and the data element type glyph,2,3 it very clearly shows where nested composite types are used, as in this "array of arrays" example:

figure

The Visual Vocabulary of Datatypes

The illustration is composed from screen snippets where real testing values are used. As such, where you see the number '2' used, you can generalize this to 'N', i.e. what is given as a 2-dimensional array could be any N-dimensional array.

The rank of a 1-dimensional array of variable length is distinguished from the rank of a 1-dimension array of fixed size using a lambda-1 notation.

figure

Now we can easily differentiate the variable-length datatypes in the graph.

1
Special Suffix for Compound, Enumerated, and String Types

This is a special suffix that is attached to the data object name only for compound (structured) types, enumerated types, and strings. In each instance, the suffix provides an additional piece of info (actually recorded as a "length" in the HDF5 API) that is a structural part of the datatype, yet not part of its dimensional shape. It has one of the following interpretations:

  • The number of members in a compound/structured datatype,
  • The number of distinct values held by an enumerated datatype, or
  • The length of a string datatype, where the * wildcard is used for variable-length strings.
2
Rank of Array Composites

The rank of a composite array datatype is shown here. Note the lambda-1 notation for the rank of variable-lenth 1-dimensional arrays as described above.

3
Atomic, Composite, Nested Composite Datatype Glyphs

A complete list (excepting "TIME") of the glyphs for all datatypes. In the case of array datatypes, we show three variants: a fixed-length vector, an N-dimensional array, and the variable-length 1-dimensional array with lambda-1 notation. These representations are used when the datatype itself is an array (as in the nexted composite case of "arrays of arrays").

4
Datatype Shape

The shape of the datatype: an n-dimensional fixed shape, a variable-length 1-dimentional shape, a or a scalar value.

5
Arrays and Variable-Length Vectors

Arrays and variable-length vectors are indicated by combining the rank prefix with the glyph of its constituent data type. Here, an array of floats and a variable-length vector of floats are shown.

6
Enumerated and Structured Types

Enumerated and structured types, both as single composite datatypes as well as in array composites.

7
Nested Arrays

Glyphs for arrays when used as element of another composite. The rank of the array is shown as a subscripted suffix, again with the lambda-1 notation denoting a nested variable-length vector.

8
Strings

All manner of variable-length and fixed-length strings as well as their array composites.

HDF5 is a registered trademark of The HDF Group, Inc.
H5s is a native-code, install-once, evergreen application for Windows 10
1
2
3
4
5
6
7
8
figure
figure figure
figure figure
figure figure
figure
figure figure figure figure
figure
figure
figure