メインコンテンツに移動

DATASET

DATASETには,2種類あります.

  1. POINT_DATA
    これは格子点で定義されている物理量(スカラー,ベクトル,テンソル...)です.
  2. CELL_DATA
    これは格子点が構成するセルで定義されている物理量です.

DATASETの指定では,まずどちらであるかを宣言し,それから物理量の数値を記述します.

POINT_DATA

POINT_DATAの場合,先に定義したGEOMETRYの格子点の総数 n を用いて,次のように記述します:

POINT_DATA n
スカラーやベクトルの数値
スカラーやベクトルの数値
....

リンク先の説明にあるように,数値には名称をつけます.1ファイルに複数の量を入れることができます.

CELL_DATA

CELL_DATAの場合,先に定義した点列で構成されるセル族の物体に,数値を指定していきます.次のように記述します:

CELL_DATA m    ← mはセルの総数ですね.
スカラーやベクトルの数値
スカラーやベクトルの数値
....

STRUCTURED_GIRDでは,セルを定義していないのですが,デフォルトでX-Y-Zの順にセルが作成されています.
# vtk DataFile Version 2.0
Structured example1
ASCII
DATASET STRUCTURED_POINTS
DIMENSIONS 3 3 3
ORIGIN 0 0 0
SPACING 1 1 1
CELL_DATA 8
SCALARS fucking_rho float 1
LOOKUP_TABLE default
0
1
2
...
7

では, 下図のように青(rho=0)から赤(rho=7)に変化していく様子がわかります.

では,SPACING が負の値をとると,どうなるのかな?

ORIGIN 0 0 0
SPACING 1 -1 1

にしたデータを追加してみた.

どうやら形状の方は,単に

   開始点:ORIGIN + 整数値i * SPACING   ( i = 0, 1, ...., DIMENSIONS-1)
   終了点:ORIGIN + (整数値i+1) * SPACING   ( i = 0, 1, ...., DIMENSIONS-1)

で計算しているようですね.で,POINTやCELLの番号は,座標の下からということではなく,純粋に,整数値に対応して物理量を割り当てているようです.この例では, Y_SPACING = -1 なので,ちょうどXZ平面に鏡像の画像が出てきました.