実装済み

Fieldの構造#

Fieldは、型・Value本体・Shape・Dimension・Coordinate・Value Name・Attributeを別々に持ちます。型形式とデータごとの構造を混同しません。

整合条件#

Fieldの次元数をnとしたとき、次の関係を必ず満たします。

n=∣Shape∣=∣Dimension∣=∣Coordinate∣n = |Shape| = |Dimension| = |Coordinate|

各軸iについてCoordinateのサンプル数はShape[i]と等しく、Valueのセル数はShapeの全要素の積です。VectorやColorの成分数はこの積に含めず、各セルの内部構造として扱います。

Shape:いくつあるか#

Shape<256,256,128>は各軸のサンプル数です。幅・高さ・時間などの意味は持ちません。各要素は0以上の整数です。0を含むFieldは空です。空のFieldを型として禁止しませんが、画像表示やGPU実行が空領域を受け付けない場合は、実行前に理由を示します。

セル数の計算で整数の範囲を超える場合や、保存量の上限を超える場合は、確保する前に拒否します。Shapeだけを変更してValueを増減させる操作はありません。再配置・切り出し・再サンプリングは、それぞれ値の対応を定める操作が必要です。

Dimension:軸は何を意味するか#

Gridでは、X,Y,Z、X,Y,Time、Distance,Wavelengthなど任意の名前を付けられます。同じField内で名前は重複できず、空文字も禁止します。名前の大文字・小文字は区別します。

順序は意味を持ちます。X,YとY,Xは自動的に同じ配列として接続しません。単に名前を変えても、Valueの転置や単位変換は起きません。軸を入れ替える操作はShape、Coordinate、Valueの対応も同時に変更する必要があります。

ImageはX,Y、VideoはX,Y,Timeの順序を要求します。Gridにはこの固定はありません。

Coordinate:各サンプルはどこにあるか#

一つのDimensionに一つのCoordinateがあります。座標値は有限の数値で、任意の単位名と参照基準を伴います。単位名を変えても自動で値を換算しません。未知の単位・参照基準は空で表します。

形式 保持内容 参照
Regular / Implicit start、step、count start + i × step
Explicit count個の座標値 i番目の値

Regularの複数サンプルではstepは0にできません。GridとImageでは負のstepも許します。Explicitは不規則な配置を表現でき、単に並べたことから等間隔とはみなしません。重複位置や非単調な軸を受け付けるかは、利用する補間・探索操作の契約で追加制約を定めます。

VideoのTime座標は厳密な昇順です。可変フレームレートを固定フレームレートへ無断で並べ直しません。時間位置の一次情報はCoordinateであり、Frame Rate Attributeではありません。

座標値は、現在の記述形式では64bit浮動小数点数で保持します。これはValueのPrecisionとは別の、位置記述の精度です。巨大な開始値と非常に小さいstepの組合せには丸めがあるため、実際に区別できる位置であることも考慮してください。

Value Name:値の集合の名前#

density、temperature、pressure、maskなど、Field全体のValue集合に一つの名前を付けられます。省略は空文字です。セルごとの名前ではなく、Dimension名やソケット名とも独立です。Value Nameを変えても数値は変わりません。

Attributeと保存#

付随情報はすべてAttributeにまとめます。Type、Shape、Dimension、Coordinate、Value NameはAttributeへ移しません。

保存されたFieldは不変の値です。編集は新しいFieldを作る操作として扱い、整合しない中間状態を評価側へ公開しません。属性だけの変更ならValueの保存領域を共有できますが、共有されている元データを書き換えてはいけません。Data Wranglerも同じ規則です。

このページを編集GitHubへのアクセス権が必要です。

CompNode Guide · 日本語製品ドキュメント仕様と実装範囲は各項目で区別しています。

ドキュメントを検索

検索語を入力してください。

    ↑ ↓ で結果を移動、Enter で開く · 検索はこの端末内だけで実行されます。