豊富なデータセットの視覚化: fire_ug.vtu の例

heart.vtkfire_ug.vtu のように.データセットの例は examples/data ディレクトリにあります.このデータセットは,VTK XMLファイルに保存された非構造化グリッドです.片隅に火がある部屋を表しています.この火災によって生成された流体流のシミュレーションが実行され,特定の時点での結果データがファイルに保存されます.データは当時クランフィールド大学にいたDr. Philip Rubini によって提供されました.火災が発生している部屋のコンテキストを示すために,VRMLファイル (room_vis.wrl) も用意されています.

  1. mayavi2を起動した状態で, File->Load data->Open file を選択してデータをロードします.ここでも,ツリービューの左側にノードが表示されますが,TVTKシーンには何も表示されません.このデータセットには,同じデータファイルに異なるスカラーとベクトルが含まれています.`VTK XMLファイル... により,このデータ・ファイル内のすべてのスカラーやベクトルなどのドロップ・リストが表示されます.表示するものを選択します.

  2. Outline モジュールを使用して,前述のようにデータのアウトラインを作成します. IsoSurface モジュールを作成して,データの等値面を表示します. ScalarCutPlane モジュールも試してみてください.

  3. カラーマッピングを表すスカラーバー(スカラー値をカラーにマップするルックアップ・テーブルを使用)を表示するには, Colors and legends ノードをクリックして Show scalar bar を有効にします.デフォルトで提供されているさまざまなカラーマップを試してみてください.

  4. ここで VTK XML file ... と入力し,別のスカラー値を選択して,データがどのように変更されたかを確認します.スカラー値が変更されると,凡例が自動的に更新されます.

  5. このデータにはベクトルも含まれます.スカラーデータには uvw がありますが,速度の大きさはありません.速度の大きさの等等高線を表示できるようにしたいとします.これを行うには, ExtractVectorNorm フィルタを使用します.これを作成するには, Visualize->Filters->Extract Vector Norm メニューを選択します.

  6. ここで ScalarCutPlane を作成すると, ExtractVectorNorm ノードの下に新しい Colors and legends ノードが表示されます.このスカラー切断面には,フィルタによって作成された速度の大きさの色が表示されます.アイソサーフェイスモジュールを他の Colors and legends ノードからドラッグし,この Colors and legends ノードにドロップすると,生成されるIsoSurfaceは,データで選択されたスカラーに対するものではなく,速度の大きさに対するものになります.

    左側のビューは, source -> filter -> modules からのデータフローのパイプラインを表していることに注意してください.基本的に,データは親ノードからその下の子ノードに流れます.

    ここで,パイプラインの別の "branch" にあるものを表示する場合,温度データの等値面を表示するには,最初にモジュールまたはソースオブジェクト( VTK XML File ... ノード)自体をクリックしてから,メニュー項目を選択する必要があります.ツリー上の項目を選択すると,その項目が 現在のオブジェクト になり,その後のメニュー選択によって,現在のオブジェクトの下に新しいモジュール/フィルタが作成されます.

  7. "filtered data" をフィルタできます. ExtractVectorNorm ノードを選択してアクティブオブジェクトにします.ここで, Visualize->Filters->Threshold を選択してしきい値フィルタを作成します.オブジェクトエディタで,しきい値の上限と下限のしきい値を0.5と3.0のように設定します.この時点で VectorCutPlane モジュールを作成して切断面を移動すると,矢印は表示されますが,選択したしきい値の間にある矢印だけが表示されます.したがって,このアプローチを使用して非常に複雑な視覚化パイプラインを作成できます.

  8. いくつかのベクターモジュールがある. VectorCutPlaneVectorsWarpVectorCutPlaneStreamlines です.ストリームラインを表示すると,データセットにベクトルデータのストリームラインが生成されます.元のデータセットのストリームラインを表示するには,元のモジュールをクリックし,メニュー項目の(またはソース)を選択します.ストリームラインを使用すると,3Dウィジェットを使用して画面上で異なるタイプのシードを移動できます.これらの位置から発生するシードポイントを使用して,流線をトレースします.ここでは,流線シードを初期化するために球,線,および平面ソースを使用できます.

  9. 火災が発生している部屋を確認するには,VRMLファイルを開いて, File->Open->VRML2 file メニュー項目を選択し,データのある room_vis.wrl を選択します.

  10. 複雑なビジュアル化パイプラインを設定し,後で実験するために保存したい場合は, File->Save Visualization メニューでビジュアル化全体を保存できます.保存したファイルは,後から File->Load Visualization メニュー項目を使ってロードできます.このオプションは100%堅牢ではなく,まだ実験段階です.今後のバージョンでは,この機能が改善される予定です.しかし,この機能はしばらく使用することができます.

ここでも,この場合のビジュアリゼーションは,ユーザインタフェースを使用して作成されています.これは,Pythonスクリプトを使用して完全にスクリプト化できます.上記のモジュールのいくつかを示す簡単なスクリプトが examples/streamline.py にあります.このファイルは調べられるかもしれません.次のように実行できます.

$ cd examples
$ python streamline.py

次のようになります.

$ mayavi2 -x streamline.py

例からわかるように,mayaviをスクリプト化してデータを視覚化するのは非常に簡単です.このスクリプトから生成されたビジュアライゼーションのイメージを次に示します.

``fire_ug.vtu`` データセットの可視化のサンプル