=========================================================
XML形式のVTKの基本構成
=========================================================
xml形式のvtkファイルの基本構成は以下である.
.. code-block:: xml
:emphasize-lines: 1,2,4
***データセット要素 ImageData に関する記述***
1行目は **xml文書に共通であるXMLファイルであることの宣言文** である.2行目において **VTKFile形式の文書** であることと, **取り扱うデータセット要素** を宣言している.XMLのversion数にはあまり拘る必要はなく,1.0で問題ない.ここではImageDataと呼ばれるデータセット要素を用いることを宣言している.VTKFile のタグ間は,以下に述べるデータセット要素のうち,いずれかを用いる.
=========================================================
VTKで取扱うことができる各種データセット要素
=========================================================
Paraview等の各種 **レンダリングソフトウェア** で **3D表示** するためには,数値計算等で得られたデータを **自己無矛盾なデータとして与える** 必要がある.座標位置毎のデータ,データ同士の隣接・結合情報等の表現が必要となる.このように, :blue:`数値データと3Dレンダリングの橋渡しするデータ規格及び記述・処理用ライブラリ群がVTK` である.VTKでは,以下に記す :red:`データセット要素` と呼ばれる **データ構造** のうち,いずれかを用いることで3次元(2次元)データを表現する.
* (.vti)
* (.vtr)
* (.vts)
* (.vtp)
* (.vtu)
ImageData
======================================
ImageDataはpixel数が定められた画像のように, **等間隔** , **構造格子** の記述に用いることができる.ImageDataのアトリビュートに 最大・最小,原点,データ間隔を指定できる.PointDataは格子上のデータを指定する際に,CellDataは格子内のデータを指定する際に用いることができ,それぞれデータ点数が (Nx,Ny,Nz) と (Nx-1,Ny-1,Nz-1) の違いがある.
.. code-block:: xml
Data
Data
RectilinearGrid
======================================
RectilinearGrid はSpacingやOriginを指定する必要がないが,PointDataタグ/CellDataタグとは別に **Coordinateタグ** を持ち, **各軸(e.g. x軸,y軸,z軸)** を指定する.
.. code-block:: xml
Data
Data
Data
Coordinateタグの例. **ImageDataは等間隔直交構造格子の記述のみ** であるが,RectilinearGridでは, :blue:`不等間隔格子や円柱・極座標の記述も可能` である. Coordinateタグによる各軸の指定は以下のようになる.
.. code-block:: xml
x0 x1 x2 x3 ...
y0 y1 y2 y3 ...
z0 z1 z2 z3 ...
StructuredGrid
======================================
StructuredGrid は RectilinearGrid 同様に,構造格子上のデータを指定できる. RectilinearGrid では,データ点の座標位置を指定する際に **Coordinateタグ** を用いたが, **StructuredGridはPointsタグを用いる** .
.. code-block:: xml
Data
Data
Data
ここで,Pointsタグは次のような ( データ点が存在する空間の次元, データ点数 ) のデータ配列から構成される.
.. code-block:: xml
0.0 0.0 0.0
1.0 0.0 0.0
2.0 0.0 0.0
0.0 1.0 0.0
1.0 1.0 0.0
...
データ量の観点から言えば,StructureGridは冗長なデータ点数が多い.同じ,等間隔直交構造格子上のデータを表現するのであれば, (ImageData) < (RectilinearGrid) < (StrucutredGrid) となる.