H5 Objects 種々のH5オブジェクトのプロパティを説明

## 内容

- H5ファイル

- H5グループ

- H5データセット

- H5データスペース

- H5属性

- H5型

- H5リファレンス

## 説明

H5オブジェクトはアクセス可能なプロパティを有します. 全てのプロパティ名は,大文字小文字を区別します(パス名およびオブジェクト名を 除きます).

## H5ファイル

以下のプロパティにアクセス可能です:

- name: ファイル名;

- size: ファイルの大きさ;

- version: HDF5ライブラリのバージョン;

- root: ルートグループ "/".

フィールド名が'/'で始まる場合, パスとみなされ, 戻り値はこのパスに対応するH5オブジェクトとなります.

    x = [1 2;3 4];
    save(TMPDIR + "/x.sod", "x");
    a = h5open(TMPDIR + "/x.sod");
    // aはファイル
    h5isFile(a)
    // プロパティにアクセス
    a.name, a.size, a.version, a.root
    // データセットxをオープン
    a("/x")
    // 全リソースを解放
    h5close(a);

## H5グループ

以下のプロパティがアクセス可能:

- attributes: 属性名;

- groups: サブグループ名;

- datasets: データセット名;

- types: 型名;

- externals: 外部リンク名;

- softs: ソフトリンク名;

- danglings: ダングリングリンク名;

- hards: ハードリンク名;

- links: リンク名と型;

- name: グループ名;

- path: グループのパス.

フィールド名が過去のリストにない場合, 他のH5オブジェクトへのローカルパスとみなされます.

    x = [1 2;3 4];
    save(TMPDIR + "/x.sod", "x");
    a = h5open(TMPDIR + "/x.sod");
    root = a.root;
    // rootはグループ
    h5isGroup(root)
    // プロパティにアクセス
    root.name, root.path, root.datasets, root.attributes
    // データセットxをオープン
    dset_x = root.x
    // 全リソースを解放
    h5close(a);

## H5 Dataset

以下のプロパティにアクセス可能です:

- attributes: 属性名;

- type: データセット型;

- dataspace: データセット空間;

- data: データセットデータ;

- name: グループ名;

- path: グループパス.

フィールド名が過去のリストに存在しない場合, 属性名とみなされます.

    x = [1 2;3 4];
    save(TMPDIR + "/x.sod", "x");
    a = h5open(TMPDIR + "/x.sod");
    dset_x = a.root.x;
    // dset_x がデータセットです
    h5isSet(dset_x)
    // プロパティにアクセス
    dset_x.attributes, dset_x.type, dset_x.dataspace, dset_x.data
    // 属性xをオープン
    attr_x = dset_x.SCILAB_Class
    // 全リソースを解放
    h5close(a);

## H5データスペース

以下のプロパティにアクセスできます:

- dims: データスペースの次元;

- extents: データスペースの最大次元;

- type: データスペースの型: "scalar", "simple" または "null";

- name: 親の名前.

- path: 親のパス.

    x = [1 2;3 4];
    save(TMPDIR + "/x.sod", "x");
    a = h5open(TMPDIR + "/x.sod");
    dspace_x = a.root.x.dataspace;
    // dspace_x はスペース
    h5isSpace(dspace_x)
    // プロパティにアクセス
    dspace_x.dims, dspace_x.extents, dspace_x.type
    // 全リソースを解放
    h5close(a);

## H5属性

以下のプロパティにアクセス可能です:

- type: 属性の型;

- dataspace: 属性のデータスペース;

- data: 属性データ;

- name: 属性名.

- path: 親のパス.

    x = [1 2;3 4];
    save(TMPDIR + "/x.sod", "x");
    a = h5open(TMPDIR + "/x.sod");
    attr_x = a.root.x.SCILAB_Class;
    // attr_x は属性
    h5isAttr(attr_x)
    // プロパティにアクセス
    attr_x.type, attr_x.dataspace, attr_x.data
    // 全リソースを解放
    h5close(a);

## H5型

以下のプロパティにアクセス可能です:

- class: 型のクラス;

- type: 型名;

- size: 大きさ(単位:バイト);

- nativetype: この型に関連するネーティブ型;

- nativesize: ネーティブ型の大きさ.

- name: 親の名前.

- path: 親のパス.

    x = [1 2;3 4];
    save(TMPDIR + "/x.sod", "x");
    a = h5open(TMPDIR + "/x.sod");
    type_x = a.root.x.type;
    // type_x は型
    h5isType(type_x)
    // プロパティにアクセス
    type_x.class, type_x.type, type_x.size, type_x.nativetype, type_x.nativesize,
    // 全リソースを解放
    h5close(a);

## H5リファレンス

H5リファレンスオブジェクトは,各要素がH5オブジェクトへのリファレンスであるハイパー行列オブジェクト をラップします.

    x = list([1 2;3 4], "Hello", uint32(123));
    save(TMPDIR + "/x.sod", "x");
    a = h5open(TMPDIR + "/x.sod");
    dims_x = a.root.x.dataspace.dims
    ref_x = a.root.x.data;
    // ref_x はリファレンス
    h5isRef(ref_x)
    // 3個の要素を取得
    x1 = ref_x(1), x2 = ref_x(2), x3 = ref_x(3)
    // データを取得
    x1.data, x2.data, x3.data
    // 全リソース解放
    h5close(a);

## 参照

- h5attr
- h5close
- h5cp
- h5dataset
- h5dump
- h5exists
- h5flush
- h5get
- h5group
- h5isAttr
- h5isFile
- h5isGroup
- h5isRef
- h5isSet
- h5isSpace
- h5isType
- h5label
- h5ln
- h5ls
- h5mount
- h5mv
- h5open
- h5read
- h5rm
- h5umount
- h5write
- h5writeattr

## 履歴

5.5.0 HDF5モジュールが導入されました.