Page History
...
Contents
1 Introduction
1.1 Intended usage
1.2 Supported features
2 Glossary
2.1 HDF5 Dependencies
3 H5M Structure
3.1 Root : Group "/"
3.2 Signal Set : Group
3.3 Signal : Dataset
4 H5M Data Descriptions
4.1 Naming conventions
4.2 Attributes
4.3 Data types
4.3.1 Default value
4.3.2 Strings: favour unicode (UTF-8) over ascii
4.3.3 iso_fmt
4.3.4 unit_str
4.3.5 prop_str
4.3.6 obj_ref
...
Anchor | ||||
---|---|---|---|---|
|
Experiment | In the context of this convention, any action that results in one or more signals that need to be stored. E.g. MMS2 Measurement, ReFresco Calculation, XMF Simulation, SHARK data analysis. |
---|---|
H5M | MARIN convention of structuring the content of a HDF5 container for Experiment Datasets. |
Master Signal | Independent value range. E.g. the timestamp values for a time series signal that correspond with each sample value. |
Signal | Measured, calculated or simulated variable; range of values. |
Signal Set | Set of signals grouped by one or more common properties. E.g. origin, experiment run, sample rate, sample count, timestamp. |
Slave Signal | Dependent value range |
. E.g. the sample values at each corresponding timestamp for a time series signal or the RAO value at certain values on several frequency axis. |
Anchor | ||||
---|---|---|---|---|
|
HDF5 Dependencies
The current version of the HDF5 libraries to be used is 1.8.18. This might change to 1.8.20 in the near future.
The upgrade to 1.10 has been postponed because the hdf5 object ID datatype is incompatible between v1.10 and v1.8. Version 1.10 can read the 1.8 object id (int32), bug version 1.8 cannot read the 1.10 object id (int64) correctly. The upgrade has to wait until all h5m readers (eg, ReFRESCO-XMF on linux cluster) made the step to 1.10 (or 1.12 that will arrive soon).
Anchor | ||||
---|---|---|---|---|
|
...
- attributes that identify the used H5M format.
- zero or more HDF Groups for each set of signals.
- attributes that identify the provenance of the file.
Attributes:
Name | Role | Data type | Exists? | Description | Convention / example |
name | i | utf8 | A | Name of the convention; constant | “H5M” |
description | i | utf8 | A | Description of the format; constant.: | “HDF5 MARIN Datasets File” |
version | a | utf8 | A | H5M Format version number | “0.1” |
documentation | i | utf8 | A | Where to find this convention | |
hdf5Version | i | utf8 | A | Version of HDF5 | “1.8.19” |
libraryName | i | utf8 | A | Name of the library that performed the actual writing. In case of appending signal sets only the last editor is tracked. | “pymarin”, “Marin.Experiments.IO.H5M” |
libraryVersion | i | utf8 | A | Version of this library | e.g. “7.0.1” |
applicationName | i | utf8 | NS | Name of the application that wrote this file | “SHARK”, “SHARK: some vistrail.vt” |
applicationVersion | i | utf8 | NS | Version of this application used. | “0.0.20” |
systemName | i | utf8 | O | Name of the system running the application. This not necessarely the system that performed the experiment (e.g. measurement). | “LP3138”, “MMS2” |
systemVersion | i | utf8 | O | Version or configuration of this systtem | (tbd) |
dateTimeOfCreation | i | iso_fmt | A | Date and time of the moment the file was created. | ISO 8601 “2017-09-27 T21:13:00.012345” |
userName | i | utf8 | NS | Name of user / author | “user123” |
notes | i | utf8 | NS | Any additional notes at file level. | (free text) |
writeErrors | i | utf8[] | O | Specifies any errors that occurred while writing the file.. |
...
Anchor | ||||
---|---|---|---|---|
|
The signal set group contains a set of signals that are logically a single group. Such signals share common properties like number of samples andsample rate. Which properties are common has to be determined by the consumer of the data; either a human or an application.
Name: HDF Group name of the set of signals.
Path: "/<Signal set name>"
Attributes:
Name | Role | Data type | Exists? | Description | Convention / example |
type | a | utf8 | NS | type of signals in the set. Value NS maps to “General”. | “General”, “Frequency”, “Time” |
rawName | i | utf8 | O | original signal set name if this had to be renamed to be used as valid hdf5 name. |
description | i | utf8 | NS | additional description of the set | (tbd) |
parent | s | obj_ref | O | Link to parent signal set. | (tbd) |
parentName | s | utf8 | O | For information only: the name of the parent signal set. |
dataScale | a | float64 | A | Scale of the signal values in the set with respect to full scale | 1.0 ( full scale) 23.456 (model scale) 0.023456 (larger than life) |
waterDensityFactor | a | float64 | NS | water density factor to be used for scaling data values to full scale. | 1.432 |
stepSize | i | float64 | A | if one and only one master signal for all signals and it is equidistant a value; otherwise, NaN In case of a time master this is the inverse of the sample rate. |
dateTimeRecordingStart | a | iso_fmt | A | date and time of first sample of the time signal of measurement or simulation. | (tbd) |
dateTimeRecordingEnd | a | iso_fmt | O | date and time of last sample of the time signal of the measurement or simulation. | (tbd) |
projectNo | a | int32 | A | projectnumber | “80220” |
projectSubNo | i | int32 | NS | subnumber | “368” |
programNo | a | int32 | A | test programme number | 1 |
source | a | utf8 | A | name of the source application or facility | “SMB”, “ReFresco” |
categoryNo | a | int32 | A | Number of the test category used. | 2 |
testNo | a | int32 | A | Number of the test setup used. | 3 |
experimentNo | a | int32 | A | Number of the experiment settings used. | 4 |
measurementNo | a | int32 | A | Number of the actual measurement c.q. experiment execution | 2 |
modelScale | a | float64 | A | Scale of the model in this project. (Unrelated to the signal values in the set.) | 23.456 |
notes | i | utf8 | NS | Any additional information about this signal set. | (free text) |
writeErrors | i | utf8[] | O | Specifies any errors that occurred while writing the signal set (group). |
...
Anchor | ||||
---|---|---|---|---|
|
The signal is a dataset containing the samples of the measurement or simulation or calculation or postprocessing step. A signal maps to an experiment variable.
Name: HDF Dataset name; must be unique in the set. It is the HDF-safe name of the signal. For reference the original potentially HDF-unsafe name is provided with the data in the 'signalSource' attribute.
Path: "/<set name>/<signal name>"
Additional properties of the signal are added as attributes. Below are the common attributes. In sub sections domain or source specific attributes can be found.
Attibutes:
Name | Role | Data type | Exists? | Description | Convention / example |
rawName | i | utf8 | O | original signal name if this had to be reformatted to be used as hdf5 name. |
unit | a | unit_str | A | name of the unit of the signal. This defines the quantity of the experiment variable. | “m/s”, “-“, “rad” |
signalType | a | prop_str | NS | defines the experiment variable or simulation property or the kind of quantity. | “velocity”, etc “angular velocity” |
description | i | utf8 | A | description of the signal. More detail than name. E.g. the kind of quantity or experiment variable; whether it is an absolute value or a delta. | (tbd) |
timeOffset | a | float64 | NS | the time offset in seconds between real start time and the moment the timestamp is created. |
order | a | int32 | O | In case of frequency data specifies whether it is a first or second order effect or otherwise. | 1: first order. 2: second order. -1: Not applicable. |
position | a | float64[3] | NS | location of the variable in the specified Coordinate System. | [0.0, 0.0, 0.0] |
direction | a | float64[3] | NS | direction of the signal c.q. experiment variable in the specified CS. In case of a rotation it is the direction of the axis of rotation. | Roll in ACK: [1.0,0.0,0.0] Sway in ACK: [0.0, 1.0, 0.0] |
referenceSystem | a | utf8 | NS | specifies in which Coordinate Sytem position and direction are given. | “ACK”, (todo: complete list) |
signalSource | I | utf8 | O | holds information about the sensor. Depends on system used. Also contains the original signal name from the measurement system. | (tbd) |
channelNo | i | int32 | O | if no sensor information is provided holds the channel number in case of measured data. | 123 |
bases | s | obj_ref[] | O | List of object references to all datasets that are a master signal to this signal. | [objRef(“time”)] |
baseNames | s | utf8[] | O | Names of the base signals (informational only. Not intended for rebuilding the datamodel) |
notes | i | utf8 | A | Any additional information about this signal. | (free text) |
writeErrors | i | utf8[] | O | Specifies any errors that occurred while writing the signal (dataset). Mostly value errors. |
...
Note: There is no explicit sample rate property. Sample rate is a specific attribute of equidistant time based signals. If sample rate needs to be visible it can be specified in the attribute 'description' of the signal set group.
...