2. 基本的な使用方法

それでは早速、ParaView を使ってみましょう。ParaViewを使うには、ParaViewのインストールが必要です。もし、まだ ParaView をお持ちでない場合は、https://www.paraview.org/Download/ からダウンロードすることができます。ParaView は、他の多くのアプリケーションと同様に起動します。Windowsでは、スタートメニューの中にランチャーがあります。Macintoshでは、インストールしたアプリケーションバンドルを開いてください。Linuxでは、コマンドプロンプトから paraview を実行します(パスの設定が必要な場合があります)。

このチュートリアルの例は、バージョン5.2からダウンロードしたバイナリ配布物に含まれているいくつかのデータに依存しています。それ以前のバージョンでは、チュートリアルのデータは https://www.paraview.org/Wiki/The_ParaView_Tutorial で入手できます。このデータは好きなディレクトリにインストールできますが、そのディレクトリが簡単に見つかることを確認してください。チュートリアルでファイルの読み込みを要求された場合、このデータをインストールしたディレクトリから読み込むことになります。

2.1. ユーザーインターフェース

../../_images/UserInterface.png

ParaView のGUIは実行中のプラットフォームに適合していますが、どのプラットフォームでも基本的に同じ動作をします。ここに示すレイアウトは、 ParaView が最初に起動されたときに与えられるデフォルトのレイアウトである。GUIは以下のコンポーネントで構成されています。

Menu Bar

他のプログラムと同様に、メニューバーから大部分の機能にアクセスすることができます。

Toolbars

ツールバーは、ParaView 内で最もよく使われる機能に素早くアクセスできるようにするためのものです。

Pipeline Browser

ParaView は、パイプラインによるデータの読み込みとフィルタリングを管理します。パイプラインブラウザでは、パイプライン構造を表示したり、パイプラインオブジェクトを選択することができます。パイプラインブラウザは、パイプラインの構造を示すインデントスタイルで、パイプラインオブジェクトの便利なリストを提供します。

Properties Panel

プロパティパネルでは、現在のパイプラインオブジェクトのパラメータを表示したり変更したりすることができます。プロパティパネルには、高度なコントロールの表示/非表示を切り替える、高度なプロパティトグル pqAdvanced があります。プロパティは、デフォルトでは、パイプラインオブジェクトによって生成されたデータの基本的な概要を表示する Information タブと結合されています。

3D View

GUI の残りの部分は、データの表示、操作、および探索を行うために使用されます。この領域には、データの幾何学的表現を提供する3Dビューが最初に配置されます。

なお、GUIレイアウトは高度に設定可能で、ウィンドウの外観を簡単に変更することができます。ツールバーは移動させることができ、見えないようにすることもできます。ツールバーの使用を切り替えるには、View → Toolbars のサブメニューを使用します。パイプラインブラウザとプロパティパネルは、どちらも ドッキング可能 なウィンドウです。つまり、これらのコンポーネントはGUI内で移動したり、フローティングウィンドウとして切り離したり、完全に隠したりすることが可能です。この2つのウィンドウは ParaView の操作にとって重要なので、もしそれらを非表示にしてから再び必要になった場合は、Viewメニューを使用して元に戻すことができます。

2.2. Sources

ParaView にデータを取り込むには、ファイルからデータを読み込む方法と、source オブジェクトを使ってデータを生成する方法の2つがあります。すべてのソースはソースメニューにあります。ソースはビューにアノテーションを追加するために使用できますが、ParaView の機能を探求する際にも非常に便利です。

Exercise 2.1 (Creating a Source)

まず、簡単なものから始めましょう。Sources メニューから Geometric Shapes サブメニューを開き、Cylinder を選択します。Cylinderアイテムを選択すると、パイプラインブラウザにCylinder1というアイテムが追加され、選択されていることに気がつくと思います。また、プロパティパネルが円柱ソースのプロパティで満たされていることに気がつくでしょう。Apply ボタン Apply をクリックして、デフォルトのパラメータを受け付けます。

Applyをクリックすると、右の3Dビューウィンドウに円柱オブジェクトが表示されます。

2.3. Basic 3D Interaction

さて、最初の簡単な可視化を作成したので、それを操作してみたいと思います。ParaView|で可視化を操作する方法はたくさんあります。まず、3Dビューでデータを探索することから始めます。

Exercise 2.2 (Interacting with a 3D View)

この演習は Exercise 2.1 の続きです。この演習を始める前に、その演習を終了しておく必要があります。

3Dビューの円柱は、3Dビュー上でマウスをドラッグすることで操作することができます。マウスの左、中、右の各ボタンをドラッグして、回転、パン、ズームの各操作を試してみてください。また、シフトキーやCtrlキーと組み合わせて使うこともできます。また、x、y、zキーを押しながらマウスをドラッグすると、x、y、z軸の移動が制限されます。

../../_images/ToolbarCamera.png

ParaView には、カメラ操作に役立ついくつかのツールバーがあります。最初のツールバーであるカメラコントロールツールバーは、ここに示すように、特定のカメラビューに素早くアクセスすることができます。一番左の pqResetCamera ボタンは reset camera を実行し、同じビュー方向を維持しますが、オブジェクト全体が見えるようにカメラの位置を変更します。2番目のボタン pqZoomToData は、zoom to data を実行します。これはカメラのリセットと非常によく似た動作をしますが、すべてのデータを見るためにカメラを配置するのではなく、パイプラインブラウザで現在選択されているデータだけを見るためにカメラを配置する点が異なります。3つ目のボタン pqResetCameraClosest は、シーン全体のバウンディングボックスを画面上で最大化するような reset camera closest を実行します。4番目のボタン pqZoomClosestToData は、zoom closest to data を実行します。これはリセットカメラクローズと非常によく似た動作をしますが、すべてのデータを見るためにカメラを配置するのではなく、パイプラインブラウザで現在選択されているデータを特に見るためにカメラを配置する点が異なります。現在、パイプラインブラウザには1つのオブジェクトしかないため、reset camera と zoom to data、reset camera closest と zoom closest to data は同じ操作を実行します。

カメラコントロールツールバーの次のボタン pqZoomToSelection は、ズームする画面の矩形領域を選択できます(rubber-band zoom)。pqXPlus で始まる次の6つのボタンは、グローバル座標の軸の正または負の方向にシーンをまっすぐに見るためにカメラの位置を変えます。一番右の2つのボタン pqRotateCameraCW pqRotateCameraCCW はビューを時計回りか反時計回りに回転させます。今すぐこれらのコントロールで遊んでみてください。

../../_images/ToolbarCenterAxis.png

2番目のツールバーは、回転中心の位置と方向軸の表示設定を制御します。一番右のボタン pqPickCentercenter of rotation を選択することができます。このボタンをクリックしてから、円柱のどこかをクリックしてみてください。3Dビューで左のボタンをドラッグすると、円柱がこの新しい点を中心に回転するのがわかると思います。次の左のボタン pqResetCenter は、回転の中心をオブジェクトの中心に置き換えます。左の次のボタン pqShowCenterAxes は回転の中心に描かれた軸を表示または非表示にします。(回転中心が円柱の中心にある場合、軸は円柱に隠れるので、おそらくその効果に気づかないでしょう。回転中心のピック pqPickCenter をもう一度使えば、その効果を見ることができるはずです)。最後の左端のボタン pqShowOrientationAxes は、3Dビューの左下隅にある常に見ることができる軸である orientation axes を表示するかどうかをトグルします。

2.4. Modifying Visualization Parameters

インタラクティブな3Dコントロールは可視化の重要な部分ですが、同様に重要な能力は、データ処理と表示のパラメータを変更することです。ParaView には可視化パラメータを変更するための多くのGUIコンポーネントが含まれており、次の演習でその探索を開始します。

Exercise 2.3 (Modifying Visualization Parameters)

この演習は Exercise 2.2 の続きです。この演習を始める前に、その演習を終了しておく必要があります。

ParaView が本物の円柱ではなく、多角形の を 使った円柱の近似を作成することにお気づきでしょう。円柱オブジェクトのデフォルトのパラメータは、6面体の非常に粗い近似です(実際、このオブジェクトは円柱というよりプリズムに見えます)。 より良い円柱の表現が必要な場合は、解像度パラメータを大きくして作成することができます。Resolution パラメータは、円柱オブジェクトの他のパラメータと同様に、パイプラインブラウザで円柱オブジェクトを選択すると、 Apply ボタンの下にあるプロパティパネルに表示されます。

../../_images/ResolutionParameter.png

スライダーまたはテキスト編集を使用して、解像度を50以上に上げます。適用ボタン Apply が再び色付きになることに注意してください。これは、オブジェクトのプロパティに加えた変更がすぐに反映されないためです。ハイライトされたボタンは、1つまたは複数のパイプラインオブジェクトのパラメータが、あなたが見ているデータと “同期していない” ことを思い出させるものです。Applyボタンを押すと、これらの変更を受け入れますが、Resetボタン Reset を押すと、オプションが最後に適用されたときに戻されます。今すぐApplyボタンを押してください。解像度が変更され、本当の円柱とほとんど区別がつかなくなります。

頻繁にシリンダーソースを作成する作業の場合、Resolutionなどのパラメータをデフォルト以外の値に変更することがありますが、パラメータ保存ボタン SaveAsDefaultButton を押すことで、好みのデフォルトパラメータを保存することができます。一度、SaveAsDefaultButton ボタンを押すと、ParaView はそのタイプのオブジェクトのためのあなたの好みを記憶し、あなたが将来オブジェクトを作成するときにそれらのパラメータを使用します。逆に、パラメータを変更してしまい、“ファクトリー・ディフォルト” に戻したい場合は、パラメータの復元ボタン pqReset をクリックすればよいでしょう。これからの練習で見ていくように、複数の可視化オブジェクトを同時に開くことができます。あるオブジェクトから別のオブジェクトにパラメータをコピーするには、コピー pqCopy とペースト pqPaste パラメータボタンを使用します。

../../_images/DisplayProperties.png

プロパティパネルを下にスクロールすると、一連の表示プロパティが表示されます。カラーリングの下のEdit pqEditColor ボタンをクリックして円柱の新しいカラーを選択し、これらのオプションを試してみてください。(このボタンは、ツールバーにもあります。)表示プロパティについては、適用をクリックする必要はありません。

../../_images/RenderViewOptions.png

さらにプロパティパネルの一番下までスクロールすると、一連のビュープロパティが表示されます。ビュープロパティを使用して、軸グリッドをオンにします。

既定では、使用頻度の低い表示プロパティの多くは非表示になっています。advanced properties toggle pqAdvanced を使用すると、これらの追加パラメータを表示または非表示にできます。プロパティパネルの上部には、プロパティをすばやく検索するための検索ボックスもあります。この検索ボックスに "specular" と入力してみてください。表示プロパティの下に、Specularという名前のオプションが表示されます。光沢のあるオブジェクトに表示される鏡面反射光ハイライトの強度を制御します。このパラメータを1に設定すると、円柱が輝きます。

ほとんどのオブジェクトには、同様の表示プロパティとビュープロパティがあります。ここでは、プロパティパネルで使用可能なパラメータを使用して、ほとんどのオブジェクトで実行できるその他の一般的な方法をいくつか紹介します。

  • ViewオプションのAxes Gridチェックボックスをクリックして、各方向の物理的な距離を示すルーラーを含むオブジェクトの境界に、3D軸を表示します。

  • 不透明度パラメータを変更して、オブジェクトを透明にします。opacityパラメータを1にすると完全に不透明になり、0にすると完全に非表示になり、その間の値はさまざまな透過度になります。

前の演習では、一部の可視化操作 (すべてではない) では、変更の効果を確認する前に Applyボタンを押す必要があることを確認しました。このApplyボタンは重要な機能を果たします。ParaView が実行するように設計されている大規模なデータを可視化する場合、オブジェクトの作成やパラメーターの変更などの単純なアクションには時間がかかることがあります。この2段階のアプローチでは、操作を実行する前に ( Applyをクリックして) 特定のアクションのすべての表示パラメータを設定できます。ただし、小さなデータを扱う場合、操作はほぼ瞬時に完了するため、Applyをクリックするプロセスは冗長になります。このような場合は、auto applyをオンにします。

Exercise 2.4 (Toggle Auto Apply)

上部のツールバーにあるauto apply pqAutoApply ボタンを見つけます。これはトグルボタンです。ここでクリックすると、押したままになっていることがわかります。

auto applyをオンにすると、Applyボタンを押す必要がなくなります。 Exercise 2.3 で行ったように、円柱のソースの解像度を変更してみてください (円柱が使用できなくなった場合は、新しいソースを作成してください) 。変更するとすぐに、表示が更新されます。

ツールバーのボタン pqAutoApply をもう一度クリックすると、auto applyをオフにできます。残りの演習は、auto applyをオンまたはオフにして完了できます。この手順では、auto applyがオフであると想定され、Applyボタンをクリックするように求められます。auto applyをオンにしている場合は、これらの手順を無視してください。

期待されるように、ParaView では多くの要素の色を制御できます。多くの場合、1つの要素の色を変更すると、別の要素の色も変更する必要があります。たとえば、背景を明るい色に変更する場合は、その背景のテキストを暗い色に変更することが重要です。そうしないと、テキストが読めなくなります。相互に依存する色のセットを管理するために、ParaView はカラーパレットの概念をサポートしています。ツールバーの load color paletteボタン pqPalette を使用すると、ビューのカラーパレットを簡単に変更できます。

Exercise 2.5 (Changing the Color Palette)

方向軸が左下隅に表示されていることを確認します。これは、Exercise 2.2 で説明されているように、pqShowOrientationAxes ボタンで切り替えられます。方向軸には、 “X”、“Y”、および “Z” というラベルがあることに注意してください。

上部のツールバーにある load color palette button pqPalette を見つけます。このボタンをクリックすると、使用可能なパレットのプルダウンメニューが表示されます。さまざまなパレットを試してみてください。背景色と方向軸のラベルの両方が変化することを確認します。

カラーパレットに使用される色は、ParaView の設定の一部です。これらの色はすべて、 Color PaletteタブのEdit→Settings (Macの場合 ParaView → Preferences) で確認、設定できます。color paletteボタン pqPalette をクリックし、Edit Current Palette... ボタンを選択しても、カラーパレット設定にアクセスできます。

../../_images/SettingsColors.png

ここで、ツールバーの undo pqUndo ボタンと redo pqRedo ボタンに注目してください。多くの場合、データの可視化は探索的なプロセスであり、前の状態に戻すことが役立ちます。データが作成される前の時点まで元に戻し、再度やり直すこともできます。

Exercise 2.6 (Undo and Redo)

undo pqUndo ボタンと redo pqRedo ボタンを試してみてください。まだ行っていない場合は、Exercise 2.1 のようなパイプラインオブジェクトを作成および変更します。パラメータの変更を元に戻したり復元したりする方法を確認します。また、パイプラインオブジェクト全体を破棄して再作成する方法にも注意してください。

ビューのツールバーには、undo camera pqUndoCamera ボタンとredo camera pqRedoCamera ボタンもあります。これらを使用すると、作成したカメラアングル間を行ったり来たりすることができるため、マウスの誤った動きによって完璧なビューが損なわれる心配がありません。カメラを移動し、これらのボタンを使用してカメラアングルを戻したり復元したりします。

これでシリンダソースは終了です。パイプラインオブジェクトを削除するには、パイプラインブラウザで円柱が選択されていることを確認し、プロパティパネルでdelete Delete をクリックします。

2.5. Loading Data

ParaView GUIを使用して練習したので、実際のデータをロードしてみましょう。ご想像のとおり、 Open コマンドはメニューの最初のコマンドであり、ファイルを開くためのツールバーボタン pqOpen もあります。ParaView は現在、約220の異なるファイル形式をサポートしており、より多くの型が追加されるにつれてリストは大きくなります。サポートされているファイルの現在のリストを表示するには、Openコマンドを呼び出し、Files of type chooserボックスでファイルのリストを確認します。

../../_images/OpenFileTypes.png

ParaView のモジュラー設計により、新しいVTKリーダーを ParaView に簡単に統合できます。そのため、新しいファイル形式を頻繁に確認してください。ParaView に含まれていないファイルリーダーをお探しの場合は、ParaView メーリングリスト (paraview@paraview.org) でご確認ください。VTKには多くのファイルリーダーが含まれていますが、ParaView 内には公開されておらず、簡単に追加できます。また、VTKフレームワークにプラグインできるが、VTKにコミットされていないリーダーも多数作成されています。誰かがすぐに使えるリーダーを持っているかもしれません。

Exercise 2.7 (Opening a File)

最初のファイルを開きましょう。Open toolbarボタン (またはメニュー項目) pqOpen をクリックします。ParaView は、いくつかの便利な機能を提供するカスタムファイルブラウザを使用することに注意してください。ファイルブラウザダイアログボックスの左側には、ディレクトリのリストを含む2つのボックスがあり、共通のディレクトリ内のファイルにすばやくアクセスできます。左上のリストには、システム上の共通データディレクトリのリストが含まれています。左下のリスト (最初は空) には、最近ファイルをロードしたディレクトリが表示されます。左上のボックスに表示されているExamplesディレクトリをダブルクリックします。これは、このチュートリアルで使用するファイルを含む ParaView インストールによって作成されるディレクトリです。

../../_images/ExamplesDirectory.png

disk_out_ref.ex2というファイルを開きます。ファイルを開くのは2段階のプロセスなので、まだデータは表示されないことに注意してください。その代わり、プロパティパネルにデータを読み込む方法に関するいくつかのオプションが入力されているのがわかります。

../../_images/Block_properties_disk_out_ref.png

ブロック配列リストのヘッダーのチェックボックスをクリックすると、すべてのブロック配列の読み込みがオンになります。これは小さなデータセットなので、メモリにロードしすぎることを心配する必要はありません。すべての変数を選択したら、 Apply をクリックして、すべてのデータをロードします。データがロードされると、一端が空洞になった円柱のような形状になっていることがわかります。これらのデータは、加熱され回転する円盤の周りの空気の流れのシミュレーションの出力です。ご覧のメッシュは、円盤の周りの空気です(円柱の形がシミュレーションの境界です)。真ん中の空洞は、シミュレーションのためにメッシュ化された加熱された円盤がある場所です。

ほとんどの場合、ParaViewExercise 2.7 の場合と同様に、ファイルの拡張子と基礎となるデータに基づいて、ファイルを読み込むための適切な方法を判断することができます。しかし、ParaView がサポートしているファイル形式が非常に多いため、完全に判断できないファイルもあります。この場合、ParaView は読み込まれるファイルの種類を尋ねるダイアログボックスを表示します。次の画像はnetCDFファイルを開いたときの例です。netCDFは汎用のファイル形式で、ParaView には様々な規則に対応する多くのリーダーがあります。

../../_images/ChooseFileType.png

データのフィルタリングに進む前に、データを表現する方法をいくつか簡単に見てみましょう。データを表現するための最も一般的なパラメータは、2つのツールバーにあります。(これらはプロパティパネルの Display グループにもあります)。

../../_images/DataRepresentationToolbars.png

Exercise 2.8 (Representation and Field Coloring)

データ表現を少し変更してみてください。パイプラインブラウザで disk_out_ref.ex2 が選択されていることを確認します。(データが読み込まれていない場合は Exercise 2.7 を繰り返してください。) 変数セレクタを使って、pres変数でサーフェスに色を付けます。メッシュの構造を見るには、表示方法をSurface With Edgesに変更します。Wireframe表現では、セルの構造とメッシュの内部の両方を見ることができます。

DataRepresentation1

DataRepresentation2

DataRepresentation3

DataRepresentation4

2.6. Filters

これで、いくつかのデータを読み込むことに成功し、それに関するいくつかの情報を得ることができました。メッシュの基本的な構造を見ることができ、いくつかのデータをメッシュの表面に写すことができます。しかし、すぐにわかるように、これらのデータの表面を見ているだけでは判断できない、多くの興味深い特徴があるのです。メッシュには様々なタイプ(スカラーやベクトル)の変数が関連付けられています。そして、メッシュはソリッドモデルであることを忘れてはいけません。興味深い情報のほとんどは、内側にあるのです。

私たちは、フィルタ を適用することで、データについてより多くのことを発見することができます。フィルタは、データを処理して、データから特徴を生成、抽出、または導出する機能ユニットである。フィルタは、リーダー、ソース、または他のフィルタに接続され、何らかの方法でデータを変更します。これらのフィルタ接続は、可視化パイプライン を形成します。ParaView では非常に多くのフィルタが利用可能です。ここでは最も一般的なものを紹介します。これらはすべて、フィルタツールバーのそれぞれのアイコンをクリックすることで利用できます。

pqCalculator Calculator

ユーザー定義の式を点またはセル単位で評価します。

pqIsosurface Contour

スカラーフィールドがユーザー定義の値と等しい点、曲線、またはサーフェスを抽出する。この曲面はしばしば isosurface とも呼ばれます。

pqClip Clip

ジオメトリを半角スペースで交差させます。ユーザー定義の平面の片側にあるすべてのジオメトリを削除する効果があります。

pqSlice Slice

ジオメトリと平面を交差させます。効果はクリッピングに似ていますが、残るのは平面のあるジオメトリだけです。

pqThreshold Threshold

スカラーフィールドの指定された範囲内にあるセルを抽出します。

pqExtractGrid Extract Subset

サンプリングレートやボリュームを指定し、グリッドのサブセットを抽出します。

pqGlyph Glyph

メッシュの各点に簡単な図形である glyph を配置します。グリフの向きはベクトルで指定し、スケールはベクトルまたはスカラーで指定します。

pqStreamTracer Stream Tracer

ベクトル場に点を蒔き、その点を(定常状態の)ベクトル場を通してトレースします。

pqWarp Warp (vector)

メッシュの各点を指定されたベクトルフィールドで置き換えます。

pqGroup Group Datasets

複数のパイプラインオブジェクトの出力を1つのマルチブロックデータセットに結合します。

pqGroupExtract Extract Level

マルチブロックデータセットから1つまたは複数のアイテムを抽出します。

これら11種類のフィルタは、ParaView で利用可能なもののほんの一部です。フィルタ]メニューには、データを処理するために使用できる非常に多くのフィルタがあります。現在、ParaView は100以上のフィルタを公開しており、それらを見つけやすくするために、フィルタメニューはサブメニューに整理されています。

../../_images/FiltersMenu.png

これらのサブメニューは、以下のように構成されています。

Recent

最近使用したフィルタを上位にソートしたリストです。

Favorites

リストには、お気に入りのフィルタが含まれています。

Alphabetical

アルファベット順のフィルタ一覧です。特定のフィルタがどこにあるかわからない場合、このリストには必ずあるはずです。また、このリスト以外には掲載されていないフィルタも多数あります。

AMR

AMR(Adaptive Mesh Refinement)構造のデータ専用に設計されたフィルタセットです。

Annotation

可視化にアノテーション(テキスト情報など)を追加するフィルタです。

CTH

CTHシミュレーションの結果を処理するために使用するフィルタです。

Chemistry

化学関連のデータセットに対するフィルタが含まれています。

Common

最も一般的なフィルタです。これは、フィルタツールバーで利用可能なフィルタのリストと同じで、以前にリストアップされたものです。

CosmoTools

LANLで開発された宇宙論研究用のフィルタが収録されています。

Data Analysis

データから定量的な値を取得するために設計されたフィルタです。メッシュ上のデータを計算したり、メッシュから要素を抽出したり、データをプロットしたりするフィルタです。

Hyper Tree Grid

ハイパーツリーグリッドデータセット用のフィルタが含まれています。

Material Analysis

材料の体積分率からデータを処理するためのフィルタです。

Point Interpolation

空間上の点をセルで結んでいない非構造な点の集まりを取り込み、その間のフィールド補間を推定するフィルタです。

Quadrature Points

ガウス求積法での数値積分に使用できる積分点として与えられるシミュレーションデータをサポートするフィルタです。

Statistics

主に表形式でデータの記述統計情報を提供するフィルタが含まれています。

Temporal

時間の経過とともに変化するデータを分析または修正するフィルタです。すべてのフィルタは、各時間スナップショットで実行されるため、時間と共に変化するデータで動作することができます。しかし、このカテゴリのフィルタは、利用可能な時間範囲を取得し、データが時間と共にどのように変化するかを調べます。

これらのフィルタのリスト、特に完全なアルファベット順のリストを検索するのは面倒なことです。フィルタの選択を迅速に行うには、quick launch ダイアログを使用するとよいでしょう。WindowsやLinuxではCtrlキーとスペースキーを一緒に、Macintoshではaltキーとスペースキーを一緒に押すと、ParaView はここに示すような小型で軽量のダイアログボックスを表示します。

../../_images/QuickLaunch.png

フィルタ名に含まれる単語または単語断片を入力すると、ボックスにその用語に一致するソースとフィルタのみがリスト表示されます。Enterキーを押して、パイプラインブラウザにオブジェクトを追加します。Escキーを数回押して、ダイアログをキャンセルします。

いくつかのフィルタがグレーアウトしていることにお気づきでしょうか。多くのフィルタは特定の種類のデータに対してのみ機能するため、常に使用できるわけではありません。ParaView は、メニューやツールバーからこれらのフィルタを無効にし、これらのフィルタを使用できないことを示します(強制します)。

このチュートリアルでは、多くのフィルタについて説明します。しかし、このフォーラムで全てのフィルタについて説明することはできません。各フィルタの詳細については、ParaView のオンラインヘルプまたはビルトインヘルプのFilters Menuの章を参照してください。

Exercise 2.9 (Apply a Filter)

最初のフィルタを適用してみましょう。disk_out_ref.ex2がロードされていない場合は、今ロードしてください(Exercise 2.7)。パイプラインブラウザでdisk_out_ref.ex2が選択されていることを確認し、フィルタツールバーまたはフィルタメニューから輪郭フィルタ pqIsosurface を選択します。リーダーの下のパイプラインフィルタに新しい項目が追加され、プロパティパネルが新しいフィルタのパラメータに更新されていることに注意してください。ファイルの読み込みと同様に、フィルタの適用も2段階のプロセスです(自動適用が有効になっている場合を除く)。フィルタを作成した後、フィルタを適用する前にパラメータを修正する機会があります(ほとんどの場合、修正することになるでしょう)。

../../_images/ContourOptions.png

まず、Contour By パラメータを temp 変数に変更します。そして等値面の値を400に変更します。最後に、 Apply を押してください。等値面はボリュームの内側に表示されます。disk_out_ref.ex2が Exercise 2.8 による圧力で色付けされていた場合、表面は圧力で色付けされ、一致するようになります。

../../_images/ContourResults.png

先ほどの演習では、データを処理するフィルタを適用して、必要な結果を得ました。ほとんどの一般的な操作では、1回のフィルタ操作で必要な情報を得ることができます。しかし、フィルタはリーダと同じクラスである。つまり、リーダーに適用する一般的な操作は、フィルタにも適用することができます。したがって、あるフィルタが生成したデータに対して、別のフィルタを適用することができます。これらのリーダーとフィルタをつなげたものが、可視化パイプライン と呼ばれています。可視化パイプラインを形成する機能は、ニーズに合わせて可視化をカスタマイズするための強力なメカニズムを提供します。

さらにいくつかのフィルタで遊んでみましょう。メッシュのサーフェイスをワイヤーフレームで表示するのではなく、サーフェイスのカットアウェイで置き換えることにします。このタスクを実行するために、2つのフィルタが必要です。最初のフィルタはサーフェイスを抽出し、2番目のフィルタはサーフェイスの一部を切り離します。

Exercise 2.10 (Creating a Visualization Pipeline)

この演習の画像といくつかの議論は、あなたが Exercise 2.9 を終了した直後の状態から始めていることを想定しています。この演習を始める前に、その演習を終えてください。

まず、サーフェスを抽出するフィルタを追加することから始めます。それを以下の手順で行います。

  1. パイプラインブラウザでdisk_out_ref.ex2 を選択します。

  2. メニューバーから、Filters → Alphabetical → Extract Surface を選択します。または、クイック起動(ctrl+space Win/Linux, alt+space Mac)を起動し、extract surfaceと入力し、そのフィルタを選択します。

  3. Apply ボタンを押します。

../../_images/CutSurface1.png

Extract Surface フィルタを適用すると、再びメッシュのサーフェイスを見ることができます。元のメッシュと同じように見えますが、元のメッシュが全体的にソリッドなのに対し、このメッシュは中空である点が異なります。

Contour フィルタの結果を表示していた場合、 コンターはもう見えませんが、心配しないでください。しかしまだサーフェスで隠れています。もしコンターを表示しているのに、フィルタを適用しても何も効果が見られない場合は、ステップ 1 を忘れて間違ったオブジェクトにフィルタを適用してしまった可能性があります。ExtractSurface1 オブジェクトが disk_out_ref.ex2 に直接接続されていない場合、これが間違った原因です。その場合は、フィルタを削除して、もう一度やり直してください。

ここで、外面を削り取り、その下の内部構造と等価面(ある場合)を露出させます。

  1. パイプラインブラウザでExtractSurface1が選択されていることを確認します。

  2. ツールバーまたはFiltersメニューから、クリップフィルタ pqClip を作成します。

  3. プロパティパネルの Show Plane チェックボックス ShowPlaneCheckbox のチェックをはずします。

  4. Apply ボタンをクリックします。

../../_images/CutSurface2.png

コンターがある場合、メッシュサーフェスの切り出しの中にアイソサーフェスのコンターが表示されるはずです。コンターをはっきり見るには、メッシュを回転させる必要があるかもしれません。

../../_images/PipelineBrowserStructure.png

パイプラインにいくつかのフィルタを追加したので、パイプラインブラウザでこれらのフィルタのレイアウトを見てみましょう。パイプラインブラウザには、作成したパイプラインオブジェクトの便利なリストが表示されます。このため、パイプラインオブジェクトを選択し、その横にある目玉アイコン pqEyeball をクリックすることで簡単に 可視 を変更することができます。しかし、リスト内のエントリーのインデントと左側の接続線にも注目してください。これらの特徴から、パイプラインの 連結 がわかります。これは、右の伝統的なグラフレイアウトと同じ情報を、よりコンパクトなスペースで表示しています。パイプラインオブジェクトの従来のレイアウトの問題点は、多くのスペースを必要とし、適度な大きさのパイプラインでも完全に見るためにはGUIのかなりの部分を必要とすることです。しかし、パイプラインブラウザは、完全でコンパクトです。

2.7. Multiview

科学の追求のためには、時には変数を1つに絞り込むことも必要です。しかし、興味深い物理現象の多くは、1つの変数だけでなく、多くの変数がある方法で相互作用することによって成り立っています。多くの変数を同じビューで表示することは、非常に難しいことです。複雑な可視化データを探索するために、ParaView はデータの複数のビューを表示し、それらを一緒に相関させる機能を備えています。

これまでの可視化では、2つの変数を見てきました。圧力で色付けし、温度で等値面を抽出しています。これらの変数のレイアウトの感触はつかめつつありますが、これらの変数間の相関をとるのはまだ困難です。この相関を容易にするために、複数のビューを使用することができます。それぞれのビューはデータの独立した側面を示すことができ、それらを一緒にすることで、より完全な理解を得ることができるかもしれません。

各ビューの上部には小さなツールバーがあり、このツールバーの右側にビューの作成と削除を制御するボタンが配置されています。ボタンは全部で4つあります。pqSplitHorizontalpqSplitVertical ボタンは、それぞれ既存のビューを水平または垂直に分割して新しいビューを作成することができます。DeleteView ボタンは、そのスペースが隣接するビューによって消費されるビューを削除します。MaximizeViewRestoreView が押されるまで選択されたビューで一時的にビュースペースを埋めます。

Exercise 2.11 (Using Multiple Views)

これから新しい可視化を始めるので、これまでの練習に付き合ってきたのであれば、今が ParaView をリセットする良い機会です。これを行う最も簡単な方法は、メニューから Edit → Reset Session を選択するか、ツールバーの pqResetSession を押すことです。このオプションは、現在の作業をすべて削除し、ParaView を初期状態にリセットします。これはおおよそ ParaView を再起動するのと同じです。

まず、1つの変数を見ていきます。メッシュの真ん中を通して変数を見る必要があるので、メッシュを半分に切り取ることにします。

  1. disk_out_ref.ex2を開き、すべての変数をロードし、 Apply します(Exercise 2.7 を参照してください)。

  2. disk_out_ref.ex2 に Clip フィルタ pqClip を追加します。

  3. プロパティパネルの Show Plane チェックボックス ShowPlaneCheckbox のチェックをはずします。

  4. Apply ボタンをクリックします。

  5. ツールバーの変数セレクタをvtkBlockColorsからpresに変更することで、圧力による表面の色付けを行います。

これで、メッシュの真ん中を通る平面の圧力がわかるようになりました。これを同じ平面上の温度と比較したいと思います。そのために、新しいビューを作成して、別の可視化を構築します。

  1. pqSplitHorizontal ボタンを押します。

../../_images/SplitView1.png

現在のビューは半分に分割され、右側は空白で、新しい可視化で埋められる状態になっています。右側のビューには青いボーダーがあることに注意してください。これは、それが active view であることを意味します。パイプラインブラウザやプロパティパネルなど、1つのビューに関する情報やコントロールを提供するウィジェットは、アクティブなビューに従います。この新しいビューでは、メッシュの温度を可視化します。

  1. 新しい空白のビュー(右側)の周りに青いボーダーが残っていることを確認します。どのビューも、クリックするだけでアクティブビューにすることができます。

  2. パイプラインブラウザのClip1横の目玉 pqEyeballClosed をクリックして、切り取ったデータの表示モードをONにします。

  3. パイプラインブラウザでClip1を選択し、変数セレクタ(ツールバー)をSolid Colorからtempに変更して、表面を温度で色付けします。

../../_images/SplitView2.png

圧力に関する情報と温度に関する情報の2つのビューができました。これらを比較したいが、向きが違うので難しい。片方の位置がもう片方の位置とどのように関係しているのか、どうやって知ることができるのでしょうか?この問題を解決するには、camera link を追加して、2つのビューが常に同じ視点から描かれるようにすればよいのです。カメラをリンクさせるのは簡単です。

  1. ビューの1つを右クリックし、ポップアップメニューからLink Camera...を選択します。(マウスの右ボタンがないMacの場合は、メニューのTools → Add Camera Link...で同じ操作ができます)

  2. 2番目のビューでクリックします。

  3. 各ビューでカメラを動かしてみてください。

おめでとう! 2台のカメラはリンクしており、それぞれがもう一方を追従します。カメラがリンクしているため、2つのビューを比較することができます。pqXMinus ボタンをクリックすると、断面が真正面になり、少しズームインします。

../../_images/CameraLink.png

加熱されたディスクとの界面で最も温度が高くなっていることに注目してください。これだけなら驚くには値しません。空気の温度は、熱源の近くで最も高く、熱源から離れると下がると予想されます。しかし、同じ位置で圧力が最大でないことに注目しましょう。ディスクの上方で気圧が最大になるのです。この情報をもとに、物理現象についていくつかの興味深い仮説を立てることができる。気圧には2つの力が作用していることが予想されます。1つ目は、重力によって上の空気が下の空気を押し下げる力。もうひとつは、加熱された空気が密度を失って上昇する力です。この2つの力が等しくなる最大気圧を見ればわかります。このように温度と圧力の両方を見なければ、このような観測はできません。

ParaView のマルチビューは、もちろん単に2つのウィンドウに限定されるものではありません。それぞれのビューには、独自のマルチビューボタンのセットがあることに注意してください。分割表示ボタン pqSplitHorizontal pqSplitVertical を使えば、作業空間を任意に分割してより多くのビューを作成することができます。そして、いつでもビューを削除 DeleteView することができます。

各ビューの位置も固定ではありません。また、ビューツールバーの1つ(ボタンのない場所)をクリックし、マウスボタンを押したまま、他のビューツールバーの1つにドラッグすることで、2つのビューを入れ替えることができます。これにより、2つのビューが即座に入れ替わります。

../../_images/SwapViews.png

また、ビューとビューの間のスペースをクリックし、マウスボタンを押しながら、どちらかのビューの方向にドラッグすると、ビューのサイズを変更することができます。仕切り板はマウスに追従して移動し、ビューの大きさを調整します。

../../_images/ResizeViews.png

2.8. ベクトル可視化

このシミュレーションについて、他に何が分かるかを見てみましょう。このシミュレーションでは、加熱された回転円盤上の空気の動きを記述する速度場も出力されました。ここでは、ParaView を使って、空気の流れを調べてみます。

ベクトル場を特徴づける一般的で効果的な方法は、流線 を用いることです。流線は空間を通る曲線で、すべての点でベクトル場の接線となる。これは、無重力状態の粒子がベクトル場を通過する経路を表しています(定常流を仮定しています)。流線は一組の seed points を提供することによって生成されます。

Exercise 2.12 (Streamlines)

これから新たに可視化を始めるので、これまでの演習を行った方は、今がツールバーからリセットセッションを選択する良い機会です。

  1. disk_out_ref.ex2を開き、すべての変数をロードし、 Apply します(Exercise 2.7 を参照してください)。

  2. disk_out_ref.ex2 にstream tracerフィルタ pqStreamTracer を追加します。

  3. プロパティパネルのSeed TypeパラメータをPoint Cloudに変更します。

  4. プロパティパネルのシードタイプにある球体を表示するチェックボックス ShowSphereCheckbox のチェックをはずします。

  5. これらのパラメータを受け入れるには、Apply ボタンをクリックします。

メッシュのサーフェイスは、いくつかの渦巻き状の線で置き換えられます。これらの線は、体積を通過する流れを表しています。円柱の中心線付近で回転する動きがあることに注意してください。また、中央と端の近くでは、垂直方向の動きもあります。

新しいジオメトリは以前のジオメトリから中心がずれています。reset camera pqResetCamera コマンドを使うと、新しいジオメトリにすばやくビューをセンタリングすることができます。このコマンドは、表示されているジオメトリを現在のビューの中心に合わせ、回転中心を表示されているジオメトリの真ん中にリセットします。

現状のストリームラインの問題点として、線が密集しているため見分けがつきにくく、また陰影がないことが挙げられます。線は1次元の構造物であり、陰影をつけるには2次元の面を必要とします。また、流れがどの方向にあるか分からないという問題もあります。

次の演習では、これらの問題を修正するために、 Exercise 2.12 で作成したストリームラインを修正します。チューブフィルタを使って、ストリームトレースの周りに2Dのサーフェイスを作成することができます。このサーフェイスは、線にシェーディングと奥行きの手がかりを追加します。また、流れの方向を示すグリフを線に追加することもできます。

Exercise 2.13 (Making Streamlines Fancy)

この演習は Exercise 2.12 の続きです。この演習を始める前に、その演習を終了しておく必要があります。

  1. クイック起動(ctrl+space Win/Linux, alt+space Mac)を使って、流線にTubeフィルタを追加してください。

  2. Apply ボタンを押します。

../../_images/StreamTracer1.png

これで流線がよりはっきりと見えるようになりました。流線を横から見ると、空気が加熱され、上昇し、冷却され、下降することで円形の対流が起きているのがわかると思います。また、流線を回転させ、底面の熱板があるべき位置にあるZ軸を見下ろすと、回転するディスクの摩擦により、空気が円形に移動していることが分かります。

( Tube フィルタを追加する代わりに、線を直接チューブとしてレンダリングすることができます。これは、チューブのようなシェーディングで幅の広い線をレンダリングする特別なレンダリングモードを適用します。これを行うには、Tube フィルタを作る 代わりに 、線幅表示パラメーターを 1 より大きい値 (例えば 5) に設定し、線をチューブとしてレンダリング表示パラメーターをクリックします)。

ここで、もう少し凝ったことをやってみましょう。流線にグリフを追加して、方向と大きさを示すことができます。

  1. パイプラインブラウザで StreamTracer1 を選択します。

  2. StreamTracer1 に glyph フィルタ pqGlyph を追加します。

  3. プロパティパネルで、Glyph TypeオプションをConeに変更します。

  4. プロパティパネルで、Orientation Arrayをvに変更します。

  5. プロパティパネルで、Scale Arrayをvに変更します。

  6. スケールファクターの右側にあるリセット pqReset ボタンをクリックします。

  7. Apply ボタンを押します。

  8. グリフをtemp変数で色付けします。

../../_images/StreamTracer1.png

ここで、流線は小さなポインターで補強されています。ポインターは速度の方向を向いており、その大きさは速度の大きさに比例します。この新しい情報を使って、次の問いに答えてみてください。

  • 空気はどこで最も速く動いているのでしょうか?ディスクの近くか、ディスクから離れたところか?ディスクの中心か、それとも端のほうか?

  • プレートはどちらに回転しているのでしょうか?

  • ディスクの表面では、空気は中心に向かうのか、それとも遠ざかるのでしょうか?

2.9. プロット表示

ParaView のプロット機能は、定量的な分析を可能にするためにデータをドリルダウンするメカニズムを提供します。プロットは通常フィルタを使って作成され、すべてのプロット用フィルタはフィルタのデータ分析サブメニューにあります。また、最も一般的なデータ分析フィルタを含むデータ分析ツールバーがあり、そのうちのいくつかはプロットを作成するために使用されます。

pqQuartiles Compute Quartiles

データセットの各フィールドの四分位を計算し、四分位を表すボックスチャートを表示します。

pqExtractSelection Extract Selection

選択されたデータをそれ自身のオブジェクトに抽出します。選択項目は 2.14 章 で説明します。

pqHistogram Histogram

データセットからデータ配列のヒストグラムを生成できるようにします。

pqPlotGlobalOverTime Plot Global Variables Over Time

データセットには、1つのポイントやセルではなく、データセット全体に適用される “グローバル” 変数で情報を取得することがあります。このフィルタは、グローバルな情報を時間と共にプロットします。ParaView の時間の扱い方は 2.11 章 で説明されています。

pqPlotOverLine Plot Over Line

3D空間に線分を定義し、その線上にフィールド情報をプロットすることができます。

pqPlotSelectionOverTime Plot Selection Over Time

選択されたポイントまたはセルのフィールドを取得し、その値を時間経過とともにプロットします。選択範囲については 2.14 章 で、時間については 2.11 章 で説明します。

pqProbeLocation Probe

空間内の特定の位置のフィールド値を提供します。

pqProgrammableFilter Programmable Filter

ユーザー定義のフィルタをプログラムすることができます。フィルタを使用するには、正しいタイプの入力を取得し、データを作成し、フィルタの出力を操作する関数を定義します。

次の演習では、メッシュのフィールドの値を空間上の線上にプロットするフィルタを作成します。

Exercise 2.14 (Plot Over a Line in Space)

これから新しい可視化を始めるので、これまでの演習について行ったのなら、今が ParaView をリセットする良い機会です。これを行う最も簡単な方法は、ツールバーから pqResetSession を選択することです。

  1. disk_out_ref.ex2を開き、すべての変数をロードし、 Apply します(Exercise 2.7 を参照してください)。

  2. disk_out_ref.ex2 に Clip フィルタ pqClip を追加し、プロパティパネルで Show Plane ShowPlaneCheckbox と Invert チェックボックスのチェックを外し、クリックします (numref:UsingMultipleViews のようにします)。これで、上にプロットしている線が見やすくなり、操作もしやすくなります。

  3. パイプラインブラウザで disk_out_ref.ex2 をクリックし、アクティブオブジェクトにします。

  4. ツールバーから、plot over line pqPlotOverLine フィルタを選択します。

../../_images/LinePlot1.png

アクティブビューには、データを通る線と、その両端にあるボールが表示されます。これらのボールの上にマウスを移動すると、3D ビュー内でボールをドラッグして配置することができます。x、y、z のいずれかのキーを押しながらボールをドラッグすると、その軸に動きが拘束されます。ボールを動かすたびに、プロパティパネルのいくつかのフィールドも変化することに注意してください。また、マウスを目的の場所に合わせて 1、2、p キーを押すことで、ボールを配置することができます。1キーを押すと、マウスカーソルの下にある面に1つ目のボールが配置されます。2キーで2個目のボールが置かれます。p キーは、1 個目と 2 個目のボールを交互に配置します。Ctrlを押しながらこれらのキーを押すと、ボールはマウスの真下ではなく、下のメッシュの最も近い場所に配置されます。これが、クリップフィルタを追加した目的です。これにより、この平面に簡単に終点を追加することができます。この方法で終点を配置するのは、ソリッドサーフェスをレンダリングするときだけであることに注意してください。ボリュームレンダリングされた画像や透明なサーフェスでは機能しません。

この表現は、3次元空間で操作するGUIコンポーネントであるため、3Dウィジェット と呼ばれています。3Dウィジェットの例は、ParaView にたくさんあります。この特定のウィジェットであるラインウィジェットは、空間内の線分を指定することができます。他のウィジェットでは、点または平面を指定することができます。

  1. 3Dウィジェットのマニピュレータ、pキーのショートカット、またはプロパティパネルのパラメータを使って、ディスクの底辺からメッシュの頂点までまっすぐ伸びるように線を調整します。このプロットは、点1が \((0,0,0)\) のあたり、点2が \((0,0,10)\) のあたりで最もうまく機能します。

  2. 線の位置を十分に確認したら、ボタンをクリックします。

../../_images/LinePlot2.png

プロットに対して、いくつかのインタラクションを行うことができます。マウスのホイールを上下に回すと、ズームインとズームアウトができます。中ボタンでドラッグすると、ラバーバンドズームができます。左ボタンでドラッグするとプロットがスクロールします。また、reset camera コマンド pqResetCamera を使って、プロットの完全な領域と範囲に表示を戻すことができます。

プロットは、3Dレンダリングと同様、ビューとみなされます。どちらもデータの表現を提供しますが、その方法が異なるだけです。プロットはビューなので、3Dビューとほぼ同じ方法で操作できます。プロパティパネルの表示セクションを見ると、色、ラインスタイル、ベクトル成分、凡例名など、プロットの各ラインの表現に関する多くのオプションが表示されます。

../../_images/PlotDisplayTab.png

プロパティパネルのビューセクションまでさらにスクロールすると、ラベル、凡例、軸の範囲などのプロット-全体のオプションを変更することができます。

../../_images/PlotViewOptions.png

他のビューと同様に、File → pqCaptureScreenshot Save Screenshot でプロットをキャプチャーすることができます。さらに、File → Export Scene... を選ぶと、紙面品質の画像を適切に拡大縮小するベクターグラフィックスを含むファイルを書き出すことができます。これらの画像キャプチャーの機能については、後ほど 2.13 章 で説明します。また、他のビューと同様に、GUIでプロットのサイズを変更したり、入れ替えたりすることができます。

次の演習では、プロットからより多くの情報を得るために表示を変更します。具体的には、圧力と温度の変数を比較するためにプロットを使用します。

Exercise 2.15 (Plot Series Display Options)

この演習は Exercise 2.14 の続きです。この演習を始める前に、その演習を終了しておく必要があります。

  1. GUI上でプロットを配置したい場所を選び、分割、削除、サイズ変更、ビューの入れ替えなどの機能を使って移動してみてください。

  2. プロットビューをアクティブにして、プロパティパネルの表示セクションに行き、temp と pres 以外のすべての変数をオフにします。

temp変数とpres変数の単位が違う。同じスケールに置いても意味がありません。それでも、それぞれの変数を独自のスケールで配置することで、同じプロットで比較することができます。ParaView の折れ線グラフでは、左軸と右軸で異なるスケールを設定でき、各変数をそれぞれの軸で個別にスケーリングすることができます。

  1. 表示オプションでpres変数を選択します。

  2. チャートの軸を下-右に変更する

../../_images/LinePlot3.png

このプロットから 2.7 章 で行ったいくつかの観測を確認することができます。温度はプレートの表面で最大になり、プレートから離れるにつれて下がっていくのがわかりますが、圧力は上昇し、その後下がっていきます。さらに、圧力が最大になる場所(したがって、空気にかかる力が等しくなる場所)は、ディスクから約3ユニット離れたところであることが観察できます。

ParaView フレームワークは、任意の数の異なるタイプのビューに対応するように設計されています。これは、研究者や開発者に、データの新しい見方を提供する方法を提供するためです。他のビューの例を見るには、パイプラインブラウザでdisk_out_ref.ex2を選択し、Filters → Data Analysis → pqHistogram Histogram を選択してください。temp 変数のヒストグラムを作成し、Apply ボタンを押してください。

../../_images/HistogramPlot.png

2.10. ボリュームレンダリング

ParaView には、データを表現する方法がいくつかあります。サーフェス、ワイヤーフレーム、そしてその両方の組み合わせなど、すでにいくつかの例を見てきました。ParaView はサーフェス上のポイントをレンダリングしたり、単にデータのバウンディングボックスを描画することも可能です。

表 2.1 Representations
../../_images/RepresentationPoints.png ../../_images/RepresentationWireframe.png ../../_images/RepresentationSurface.png ../../_images/RepresentationSurfaceEdges.png ../../_images/RepresentationVolume.png

Points

Wireframe

Surface

Surface With Edges

Volume

ParaView でデータを表現する強力な方法として、ボリュームレンダリング という技法があります。ボリュームレンダリングでは、ソリッドメッシュは半透明の雲としてレンダリングされ、スカラーフィールドが雲中の各点での色と密度を決定します。サーフェイスレンダリングとは異なり、ボリュームレンダリング では、ボリュームの全体的な特徴を見ることができます。

オブジェクトの表現を変えるだけで、ボリュームレンダリングが可能になります。では、その例を試してみましょう。

Exercise 2.16 (Turning On Volume Rendering)

これから新しい可視化を始めるので、これまでの演習について行ったのなら、今が ParaView をリセットする良い機会です。これを行う最も簡単な方法は、ツールバーから pqResetSession を選択することです。

  1. disk_out_ref.ex2を開き、すべての変数をロードし、 Apply (:numref:`OpeningAFile`を参照)。

  2. パイプラインブラウザでdisk_out_ref.ex2が選択されていることを確認します。表示される変数をtempに変更し、表現をVolumeに変更します。

  3. ボリューム表示の変更について警告する Are you sure? ダイアログボックスが表示された場合は、Yesをクリックして変更を実行します。

  4. 回転の中心 pqShowCenterAxes を表示します。

不透明なソリッドメッシュは、半透明のボリュームに置き換えられます。オブジェクトを回転させると、パフォーマンス上の理由から、一時的にレンダリングがよりシンプルな透明なサーフェスに置き換えられることに気づくかもしれません。この動作については、後ほど 4 章 で詳しく説明します。

ParaView のボリュームレンダリングの便利な機能は、他のオブジェクトのサーフェイスレンダリングと混ぜることができることです。これにより、ボリュームレンダリングにコンテキストを追加したり、可視化を混合してより情報量の多い表示を行うことができます。例えば、Exercise 2.12 で行ったように、このボリュームレンダリングと流線形のベクトル可視化を組み合わせることができます。

Exercise 2.17 (Combining Volume Rendering and Surface-Based Visualization)

この演習は Exercise 2.16 の続きです。この演習を始める前に、その演習を終了しておく必要があります。

  1. disk_out_ref.ex2 にstream tracerフィルタ pqStreamTracer を追加します。

  2. プロパティパネルのSeed TypeパラメータをPoint Cloudに変更します。

  3. プロパティパネルのシードタイプにある球体を表示するチェックボックス ShowSphereCheckbox のチェックをはずします。

  4. これらのパラメータを受け入れるには、Apply ボタンをクリックします。

これで、ボリュームレンダリングに埋め込まれた流線が見えるはずです。以下の追加ステップでは、 Exercise 2.13 と同様に、流線が見やすくなるようにジオメトリを追加します。これらはオプションですので、必要に応じてスキップすることができます。

  1. クイック起動(ctrl+space Win/Linux, alt+space Mac)でTubeフィルタを適用し、 Apply を押します。

  2. 流線が temp で色付けされている場合は、Solid Color に変更します。

  3. パイプラインブラウザで StreamTracer1 を選択します。

  4. StreamTracer1 に glyph フィルタ pqGlyph を追加します。

  5. プロパティパネルで、Glyph TypeオプションをConeに変更します。

  6. プロパティパネルで、Orientation Arrayをvに変更します。

  7. プロパティパネルで、Scale Arrayをvに変更します。

  8. スケールファクターの右側にあるリセット pqReset ボタンをクリックします。

  9. Apply ボタンを押します。

  10. グリフをtemp変数で色付けします。

../../_images/VolumeRender2.png

流線がボリューム全体の温度との関連で表示されるようになりました。

デフォルトでは、ParaView はサーフェスで使用されているのと同じ色でボリュームをレンダリングし、透明度は範囲の下限を0に、上限を1に設定します。また、ParaView は、スカラー値が色と透明度にどのようにマッピングされるか、伝達関数 を簡単に変更する方法を提供します。伝達関数エディタにアクセスするには、ボリュームレンダリング-パイプラインオブジェクト(この場合は disk_out_ref.ex2 )を選択し、カラーマップ編集 pqEditColor ボタンをクリックします。

../../_images/ColorMapEditor.png

初めてカラーマップエディターを表示したときは、 ParaView GUIウィンドウの右側に表示されるはずです。ParaView の他のパネルと同様に、これはドッキング可能なウィンドウで、GUI内を移動したり、引き離してデスクトップの別の場所に置いたりすることができます。プロパティ・パネルと同様に、インターフェイスを簡素化するためにいくつかの高度なオプションが隠されています。これらの隠された機能にアクセスするには、右上の pqAdvanced ボタンを切り替えるか、検索文字列を入力してください。

上部にある2つのカラフルなボックスは伝達関数を表しています。最初のボックスの下に色が付いた関数プロットは透明度を表し、下の長いボックスは色を表します。伝達関数上のドットは コントロールポイント を表しています。コントロールポイントは、特定のスカラー値で設定した特定の色と不透明度であり、色と透明度はその間に補間されます。いずれかのバーの空白部分をクリックすると、新しいコントロールポイントが作成されます。既存のコントロールポイントをクリックすると、そのコントロールポイントが選択されます。選択されたコントロールポイントは、ボックス内をドラッグしてスカラー値や透明度を変更することができます(該当する場合)。カラーコントロールポイントをダブルクリックすると、色を変更することができます。選択したコントロールポイントは、BackspaceキーまたはDeleteキーを押すと削除されます。

Did you know?

サーフェスレンダリングでは、 “Enable opacity mapping for surfaces” が有効でない限り、透明度のコントロールは効果を持ちません。

カラーバーと透明度バーの直下には、選択したコントロールポイントのデータ値を数値で指定するためのテキスト入力ウィジェットがあります。この下には、Use log scale when mapping data to colors「データを色にマッピングする際に対数スケールを使用する」、Enable opacity mapping for surfaces「サーフェスの不透明度マッピングを有効にする」、Automatically rescale transfer functions to fit data「データに合わせて伝達関数を自動的にリスケーリングする」というチェックボックスオプションがあります。(この最後のオプションは、データを変更するほとんどの操作でデータ範囲のサイズを変更しますが、時間値を変更する場合には変更されないことに注意してください。詳しくは 2.11 章 を参照してください)。

次のColor Spaceパラメータは、色の補間方法を変更します。このパラメータはコントロールポイントでの色には影響しませんが、コントロールポイント間の色には劇的な影響を与えることができます。最後に、Nan Colorでは、「無効な」値の色を選択することができます。NaN** は、数値ではないもの(例えば \(0/0\) の結果など)を表すために使用される特別な浮動小数点値です。

伝達関数の設定は面倒なので、プリセットに保存 pqSave ボタンをクリックして保存することができます。プリセットを選択 pqFavorites ボタンを押すと、作成したカラーマップや ParaView が提供する多くのカラーマップを管理・適用するためのダイアログが表示されます。

Exercise 2.18 (Modifying Volume Rendering Transfer Functions)

この演習は Exercise 2.17 の延長線上にあります。この演習を始める前に、その演習(あるいは最低限 Exercise 2.16 )を終了しておく必要があります。

  1. パイプラインブラウザで disk_out_ref.ex2 をクリックし、アクティブオブジェクトにします。

  2. カラーマップの編集 pqEditColor ボタンをクリックします。

  3. ボリュームレンダリングを、より熱を表現できるように変更します。Choose preset pqFavorites を押し、ダイアログボックスで Black-Body Radiation を選択し、Apply をクリックし、Close をクリックします。

  4. コントロールポイントを追加、変更してみて、ボリュームレンダリングへの影響を観察してください。デフォルトでは、変更を加えるとレンダリングビューが更新されます。このインタラクティブな更新が遅すぎる場合は、pqAutoApply ボタンをトグルしてこの機能をオフにすることができます。自動更新がオフの場合、伝達関数の変更は pqAutoApply Render Views がクリックされるまで適用されません。

../../_images/VolumeRender3.png

ボリュームレンダリングのカラーマッピングが変更されただけでなく、円錐グリフを作成した場合はそれを含め、tempのすべてのカラーマッピングが変更されたことに注意してください。これにより、ビュー間の一貫性が確保され、同じ変数に異なる色や異なる範囲をマッピングすることによる混乱を避けることができます。

カラーマップのプレゼンテーション pqFavorites を見ていると、虹の色をカラーマップに取り入れた Rainbow というタイトルのエントリーが1つまたは複数あることにお気づきでしょう。また、この色のセットは、過去に見た他の可視化で見覚えがあるかもしれません。

../../_images/RainbowBar.png

虹色は確かに人気のある選択肢です。しかし、可視化では 虹色のカラーマップを使用しない ことをお勧めします。

虹色の問題点は、データを難読化するのに役立つ多数の知覚特性を有していることです。虹色がデータ表示に悪いという根拠となる多くの知覚研究についての詳細は省きますが、問題点の概略を説明します。

第一の問題は、色が自然に知覚される順序に従っていないことである。ある種の色群は、自然な秩序を知覚させます(相対的な明るさが最も強い知覚の手がかりとなります)。しかし、虹の色相は、私たちの視覚システムにおいて、実際に順序付けられた意味を持ちません。むしろ、私たちは順序を学習しなければならず、それが視覚的な混乱を引き起こす可能性があります。次の2つの画像を考えてみましょう。左の画像では、虹の色相のために、右の画像でより明確になっている相対的な値の高低を確認することが困難です。

ColorOrderExample1

ColorOrderExample2

虹色の知覚に関する第2の問題は、色の知覚的変化が一様でないことである。シアンやイエローの領域では色の変化が速く見えるため、データには存在しないアーチファクトがこれらの領域で発生する可能性があります。青、緑、赤の領域では色の変化が遅く見えるため、データにはない大きな色の帯ができ、アーチファクトが隠されてしまいます。この効果は、次の2つの空間コントラスト感度関数の画像で見ることができます。左側のグレースケールは関数を忠実に再現している。しかし、右側の虹色は低コントラスト領域での変動を隠し、高コントラスト領域では滑らかさが失われているように見えます。

SpatialContrast1

SpatialContrast2

レインボーカラーマップの第三の問題点は、視覚の欠損に敏感であることだ。赤と緑を区別できない人は人口のおよそ5%。色覚異常の人は、レインボーカラーマップの中で “遠い” とされる多くの色を識別することができません。

このようなカラーマップを使わないでほしいという願いを込めて、虹色の問題点を解説しています。虹色の問題点はよく知られているにもかかわらず、虹色は依然として人気のある選択肢です。虹色の色相に頼ることは、データを難読化し、 ParaView が提供するデータ解析の全プロセスを回避することになります。複数の知覚的研究により、被験者は虹色の効果を過大評価することが分かっています。つまり、人は虹色の方がうまくいくと思い込んでいますが、実際はもっとうまくいかないのです。この罠にはまらないでください。

2.11. Time

disk_out_refのシミュレーションを徹底的に分析した後、新しいシミュレーションに移り、ParaView が時間をどのように扱うかを見ていきます。この節では、別の簡単なシミュレーションから、今回は時間と共に変化するデータを使用します。

Exercise 2.19 (Loading Temporal Data)

これから新しい可視化を始めるので、これまでの演習について行ったのなら、今が ParaView をリセットする良い機会です。これを行う最も簡単な方法は、ツールバーから pqResetSession を選択することです。

  1. can.ex2というファイルを開きます。

    ../../_images/Block_properties_can.png
  2. 前回同様、ブロックアレイ一覧のヘッダーのチェックボックスをクリックして、すべてのブロックアレイの読み込みをオンにして、Apply ボタンを押します。

  3. pqYPlus ボタンを押すと、メッシュに対してカメラの向きが変わります。

  4. ツールバーの再生ボタン pqVcrPlay を押して、落下するレンガで缶を押しつぶすメッシュのアニメーション ParaView を見てください。

AnimateCan1

AnimateCan2

AnimateCan3

時間軸で定義されたデータを扱うには、本当にこれだけでいいのです。ParaView は時間の内部概念を持ち、あなたのデータによって定義された時間に自動的にリンクします。時間を制御するために使用できるツールバーについて熟知してください。

../../_images/AnimationToolbar.png

アニメーションの保存も同様に簡単です。メニューから、File → Save Animation を選択します。ParaView は、アニメーションを保存する方法を指定するダイアログを提供し、その後、自動的にアニメーションを反復して保存します。

Exercise 2.20 (Temporal Data Pitfall)

ユーザーにとって最大の落とし穴は、時間の経過とともに変化する色域をマッピングすることです。そこで、次のような操作を行います。

  1. Exercise 2.19 から続かない場合は、can.ex2ファイルを開き、すべての変数をロードし、 Apply を実行します。

  2. 最初のタイムステップに進みます pqVcrFirst

  3. EQPSの変数で色付けします。

  4. アニメーションを再生します pqVcrPlay (または最後のタイムステップにスキップします pqVcrLast)。

カラーリングはあまり意味がありません。手っ取り早く問題を解決するために:

  1. 最後のタイムステップで、Rescale to Data Range pqResetRange ボタンをクリックします。

  2. pqVcrPlay アニメーションをもう一度再生してください。

色は今のほうが使いやすくなります。

この動作はバグのように見えますが、そうではありません。これは、2つの避けられない動作の結果です。まず、スカラー・フィールドの表示をオンにすると、そのフィールドの範囲が現在のタイム・ステップの値の範囲に設定されます。理想的には、この範囲はデータ中のすべてのタイムステップの最大値と最小値に設定されるはずです。

しかし、この場合、最初の読み込み時に ParaView がすべてのデータを読み込む必要があり、大きなデータでは法外に遅くなります。次に、時間をかけてアニメーションを行う場合、データの範囲が変わっても、色の範囲を固定することが重要です。アニメーションの再生に合わせてデータのスケールを変えると、データの表現がおかしくなってしまいます。スカラーが元のカラーマップの範囲から外れていないことを暗示するよりも、外れるようにしたほうがはるかに良いです。この問題に対しては、いくつかの回避策があります。

  • 何らかの理由でアニメーションが悪い色域で止まってしまったら、単に代表的な時間ステップに移動して、 pqResetRange を押してください。これは、前の演習で行ったことです。

  • メニューのEdit → Settings (Macでは ParaView → Preferences)で設定ダイアログボックスを開きます。一般」タブで、Default Time Step というオプションを見つけ、Go to last timestep に変更します。(このオプションが見つからない場合は、設定の検索ボックスにtimestepと入力してみてください)。このオプションを選択すると、時間のあるデータセットを読み込む際に、ParaView は自動的に最後のタイムステップに進みます。多くのデータ(例えば缶)では、フィールドの範囲は最初よりも最後のタイム・ステップでより代表的なものになります。したがって、時間を変更する前にフィールドで色付けする限り、色範囲は適切なものになります。

  • カスタムデータ範囲に再スケール pqResetRangeCustom ツールバーボタンをクリックします。これは、 “代表的な” タイムステップが見つからない、または知らない場合、あるいは使用する良い範囲を既に知っている場合に有効な選択です。

  • もしあなたが待つことをいとわないか、または小さいデータを持っているなら、すべてのタイムステップのデータ範囲に再スケールする pqResetRangeTemporal ツールバーボタンを使うことができ、ParaView は自動的にこの全体の時間範囲を計算します。このオプションは、すべての時間ステップにわたってあなたの全体のデータ・セットをロードするために ParaView を必要とすることに留意してください。ParaView は一度に1つ以上の時間ステップをメモリに保持しませんが、大きなデータセットではディスクからそのすべてのメモリを引き出すのに長い時間がかかります。

ParaView には、時間とアニメーションを制御するための多くの強力なオプションがあります。これらの大部分は、Animation view からアクセスします。メニューから、View → Animation View をクリックします。

../../_images/AnimationView.png

今のところ、アニメーションビューの上部にあるコントロールについて調べます。(アニメーションビューの残りの部分のトラックの使い方については、後ほど 2.15 章 で検証します)。animation mode パラメータは、再生中に ParaView がどのように時間軸を進むかを決定します。3つのモードが利用可能です。

Sequence

開始時刻と終了時刻を指定すると、アニメーションを等間隔で指定されたフレーム数に分割します。

Real Time

ParaView は指定された秒数の間、アニメーションを再生します。実際に作成されるフレーム数は、フレーム間の更新時間に依存します。

Snap To TimeSteps

ParaView は、あなたのデータによって定義される時間ステップを正確に再生します。

時間を含むファイルを読み込むと、ParaView は自動的にアニメーションモードをSnap To TimeStepsに変更します。したがって、デフォルトでは、データをロードして、再生 pqVcrPlay を押すと、データで定義された各タイムステップを見ることができます。これは、最も一般的な使用例です。

シミュレーションが一定時間ごとにデータを書き込む場合、このような使い方が考えられます。このような場合、アニメーションはタイムインデックスではなく、シミュレーション時間に対して再生されるようにする必要があります。問題ありません。他の2つのアニメーションモードのいずれかに切り替えればよいのです。もう一つの使用例は、再生速度を変えたい場合です。例えば、アニメーションを速くしたり遅くしたりすることができます。他の2つのアニメーションモードでは、そのようなことが可能です。

Exercise 2.21 (Slowing Down an Animation with the Animation Mode)

これから新しい可視化を始めるので、これまでの演習について行ったのなら、今が ParaView をリセットする良い機会です。これを行う最も簡単な方法は、ツールバーから pqResetSession を選択することです。

  1. can.ex2を開き、すべての変数をロードし、 Apply します( Exercise 2.19 を参照してください)。

  2. pqYPlus ボタンを押すと、メッシュに対してカメラの向きが変わります。

  3. ツールバーの再生ボタン pqVcrPlay を押してください。

このアニメーションの間、ParaView はオリジナルのデータファイルの各時間ステップを正確に一度ずつ訪れています。このアニメーションの再生速度に注目してください。

  1. まだの方は、アニメーションビューを表示させましょう。View → Animation View。

  2. アニメーションモードをReal Timeに変更します。デフォルトでは、データで指定された時間範囲と10秒の継続時間でアニメーションが設定されています。

  3. pqVcrPlay アニメーションをもう一度再生してください。

結果は、前のSnap To TimeStepsアニメーションと似ていますが、アニメーションはシミュレーション時間の線形スケーリングになり、10秒で完了します。

  1. Durationを60秒に変更します。

  2. pqVcrPlay アニメーションをもう一度再生してください。

アニメーションの再生が明らかに遅くなっています。お使いのコンピュータの更新速度が遅くない限り、アニメーションが以前よりぎくしゃくして見えることにもお気づきでしょう。これは、データセットの時間分解能を超えたためです。

多くの場合、元のデータから刻々と変化する時間軸を表示することは望ましい動作であり、データに存在するものを正確に示していることになります。しかし、プレゼンテーション用のアニメーションを作成する場合、より滑らかなアニメーションが必要になることがあります。

この目的のために設計されたフィルタが ParaView にあります。これは temporal interpolator と呼ばれています。このフィルタは、元のデータセットで定義された時間ステップの間に位置データとフィールドデータを補間します。

Exercise 2.22 (Temporal Interpolation)

この演習は Exercise 2.21 の続きです。この演習を始める前に、その演習を終了しておく必要があります。

  1. パイプラインブラウザでcan.ex2がハイライトされていることを確認します。

  2. Filters → Temporal → Temporal Interpolator を選択するか、クイック起動 (ctrl+space Win/Linux, alt+space Mac) を使って Temporal Interpolator フィルタを適用します。

  3. Apply を適用します。

  4. ビューを分割 pqSplitHorizontal し、一方にTemporalInterpolator1を、もう一方にcan.ex2を表示し、カメラをリンクさせます。

  5. アニメーションを再生 pqVcrPlay します。

temporal interpolator の出力は、元のデータよりもずっと滑らかにアニメーションすることに気づくはずです。

注意すべきは、Temporal Interpolatorはデータに歪みをもたらす可能性があるということです(しばしば起こります)。このため、ParaView はこのタイプの補間を自動的に適用することはなく、明示的にTemporal Interpolatorを追加する必要があります。一般的に、メッシュの変形はうまく補間されることが多いですが、静的なメッシュを移動するフィールドはうまくいきません。また、Temporal Interpolatorはトポロジーが一貫している場合にのみ機能することに注意してください。あるタイムステップから次のタイムステップに変化するアダプティブメッシュがある場合、Temporal Interpolatorはエラーを出します。

2.12. Text Annotation

ParaView をコミュニケーションツールとして使う場合、作成した画像にテキストで注釈をつけると便利なことがあります。ParaViewを使えば、3Dビューの好きな場所にテキストアノテーションを作成することがとても簡単にできます。特別な text source があり、単にテキストをビューに配置するだけです。

Exercise 2.23 (: Adding Text Annotation)

If you are continuing this exercise after finishing Exercise 2.22,

はそのまま続けてください。もし、その後 ParaView を再起動しなければならなかったり、状態が十分に一致しない場合は、 pqResetSession を使って新しい状態から始めてもかまいません。

  1. クイック起動(ctrl+space Win/Linux, alt+space Mac)でテキストソースを作成し(またはメニューバーのSources → Annotation → Textで)、 Apply を押してください。

  2. プロパティパネルのテキスト編集ボックスに、メッセージを入力します。

  3. Apply ボタンを押します。

../../_images/TextSource2.png

入力したテキストが3Dビューに表示されます。プロパティパネルの表示オプションまでスクロールすると、テキストをビューの四隅と上下の中央に素早く配置するための6つのボタンが表示されます。

../../_images/TextPosition.png

左下隅チェックボックスをクリックすると、このテキストを任意の位置に配置することができます。左下隅オプションにチェックを入れると、マウスを使ってテキストをビュー内の任意の位置にドラッグすることができます。

テキストアノテーションに現在の時刻を入力する必要がある場合がよくあります。正しい時間値を入力するのは、標準のテキストソースでは面倒でエラーが発生しやすく、アニメーションを作成する場合は不可能な場合があります。そこで、特別な annotate time source が用意されており、現在のアニメーション時間を文字列に挿入することができます。

Exercise 2.24 (Adding Time Annotation)

  1. 以前の演習で読み込んでいない場合は、ファイルcan.ex2、Apply を開いてください。

  2. Annotate Timeのソースを追加します(Sources → Annotate → Annotate Time、またはクイック起動:Ctrl+Space Win/Linux, alt+Space Mac)。Apply をクリックします。

  3. 必要に応じてアノテーションを移動させます。

  4. pqVcrPlay を再生し、時間のアノテーションがどのように変化するかを観察してください。

../../_images/AnnotateTimeSource.png

現在のアニメーションの時間が、データファイルから読み込まれたタイムス テップと同じでない場合があります。データファイルに保存されている時間が何であるかを知ることはしばしば重要であり、フィルタとして機能する特別なバージョンのアノテートタイムがあります。

  1. パイプラインブラウザでcan.ex2を選択します。

  2. クイック起動(ctrl+space Win/Linux, alt+space Mac)を使って、Annotate Time Filterを適用します。

  3. Apply を適用します。

  4. 必要に応じてアノテーションを移動させます。

  5. アニメーションビューで、アニメーションモードを確認します。Snap to TimeStepsになっている場合は、Real Timeに変更します。

  6. pqVcrPlay を再生し、時間のアノテーションがどのように変化するかを観察してください。

../../_images/AnnotateTimeFilter.png

アニメーションビューを閉じることができます。これで一旦終了ですが、 2.15 章 で再度検討する予定です。

2.13. スクリーンショットの保存とアニメーションの保存

あらゆる可視化の最も重要な成果物の1つは、プレゼンテーションやレポートに使用できるスクリーンショットやムービーです。ここでは、スクリーンショット(画像)とアニメーション(動画)を保存します。今回もcan.ex2データセットを使用します。

Exercise 2.25 (Save Screenshot)

これから新しい可視化を始めるので、これまでの演習について行ったのなら、今が ParaView をリセットする良い機会です。これを行う最も簡単な方法は、ツールバーから pqResetSession を選択することです。

  1. can.ex2を開き、すべての変数をロードし、 Apply します( Exercise 2.19 を参照してください)。

  2. pqYPlus ボタンを押すと、メッシュに対してカメラの向きが変わります。

  3. 点のIDで色を付けます。3Dオブジェクトが何らかの色を持つように、点のIDを使用します。

  4. File → Save Screenshot pqCaptureScreenshot を選択します。

これで、ファイル選択画面になります。ダイアログボックスの下部にあるメニュー「Files of type:」をプルダウンすると、PNG(Portable Network Graphics)、JPEG(Joint Photographic Experts Group)など、対応するファイル形式がいくつか表示されます。

ファイル名を選択し、後で削除できる場所に保存してください。通常、画像はPNGファイルとして保存することをお勧めします。JPEGの非可逆圧縮は、しばしば ParaView で生成された画像に顕著な不自然さを生じさせますが、PNGの圧縮は他のほとんどのラスター形式よりも優れています。

  1. OKボタンを押します。

ファイルを選択すると、さらにスクリーンショットのオプションのダイアログボックスが表示されます。

../../_images/SaveScreenshot1.png

スクリーンショットの保存オプションダイアログボックスには、多数の重要なコントロールが含まれています。

ダイアログボックスの上部には、Size と Scaling のオプションがあります。画像解像度オプションでは、3Dビューの現在のサイズより大きい(または小さい)画像を作成することができます。解像度を直接入力するか、x2 と /2 ボタンを使用して解像度を 2倍または半分にすることができます。pqLock ボタンは、イメージ解像度を選択するときにアスペクト比をロックするようにトグルします。pqReset ボタンは、GUI のビューの解像度を復元します。複数のビューを開いている場合、アクティブなビューのみを保存するか、1つの画像にすべてのビューを保存するかを切り替える、すべてのビューを保存するチェックボックスも用意されています。

カラーリングコントロールは、背景などの一部の要素の色付けを変更します。Override Color Paletteプルダウンメニューでは、デフォルトの配色、印刷用の白をモチーフにした配色、またはその他の定義されたパレットを使用することができます。これらはExercise \ [ex:ChangingTheColorPalette] ページで説明されているパレットと同じものです。また、Transparent Backgroundチェックボックスがあり、書き込まれた画像にアルファチャンネルが追加されます(サポートしているフォーマットにおいて)。

また、多くの高度なオプションが用意されており、いつものように pqAdvanced ボタンまたは検索バーからアクセスすることができます。

  1. OKボタンを押します。

お気に入りの画像ビューアーを使って、作成した画像を探して読み込んでください。画像ビューアーがない場合は、ParaView 自体が PNG ファイルを読み込むことが可能です。

次に、アニメーションを保存します。

Exercise 2.26 (Save Animation)

  1. もしまだ前回の演習で読み込んでいなければ、can.ex2ファイルを開き、すべての変数を読み込んで、 Apply してください( Exercise 2.19 を参照してください)。

  2. File → Save Animation pqSaveAnimation を選択します。

これで、ファイル選択画面になります。ダイアログボックスの下部にあるメニューFiles of type: をプルダウンすると、Ogg/Theora、AVI、JPEG、PNGなどのファイル形式が表示されます。

ファイル名を決めて、後で削除できる場所に置いてください。AVIは、Windowsや一部のオープンソースビューアで使用できるムービー形式を作成します。Ogg/Theoraは、多くのオープンソースビューアで使用されています。その他、flipbook、つまり一連の画像を作成することができます。これらの画像は、多くのオープンソースツールを使って、ムービーを形成するためにつなぎ合わせることができます。とりあえず、AVIを作成してみてください。

  1. OKボタンを押します。

Save Animation Option ダイアログボックスは、基本的にスクリーンショット用の Save Screenshot Options ダイアログと同じように見えます。詳細オプション pqAdvanced を見ると、フレームレートを制御し、アニメーションされる時間ステップを狭めることができるアニメーションオプションがいくつか追加されていることに気がつくかもしれません。

  1. OKボタンを押します。

お気に入りの動画ビューアで、作成した画像を検索して読み込みます。

2.14. Selection

可視化の目的は、多くの場合、大量の情報の中から重要な細部を見つけ出すことです。ParaView の選択の抽象化はこのプロセスの重要な簡略化です。選択とは、あるデータセットの部分集合を識別する行為である。この選択には様々な方法があり、そのほとんどはエンドユーザーにとって直感的であり、一度識別されたサブセットの特定の品質を表示し処理する様々な方法があります。

具体的には、1つのデータセット内の特定の点、セル、ブロックを選択します。選択項目に含める要素を指定する方法は、複数種類の識別子の並び、空間位置、スカラー値やスカラー範囲などがあります。

ParaView では、選択はいつでも行うことができ、プログラムはすべてのビュー間でリンクされている現在の選択されたセットを維持します。つまり、あるビューで何かを選択すると、その選択は同じオブジェクトを表示する他のすべてのビューにも表示されます。

選択範囲を作成する最も直接的な方法は、データ検索 pqFindData パネルを使用することです。このダイアログは、ツールバーまたは編集メニューから起動します。このダイアログから、検索するデータの特性を入力することができます。例えば、速度の大きさが終端速度に近い点を探すことができます。あるいは、ひずみが材料の破壊を超えるセルを探すこともできます。次の演習は、データ検索 pqFindData パネルボックスの簡単な使用例を示しています。

Exercise 2.27 (Performing Query-Based Selections)

この演習では、等価塑性ひずみ(EQPS)が大きいセルをすべて見つけます。

これから新しい可視化を始めるので、これまでの演習について行ったのなら、今が ParaView をリセットする良い機会です。これを行う最も簡単な方法は、ツールバーから pqResetSession を選択することです。

  1. can.ex2を開き、すべての変数をロードし、 Apply します( Exercise 2.19 を参照してください)。

  2. 最後のタイムステップに進みます pqVcrLast

  3. データ検索パネルを開きます pqFindData

  4. データプロデューサーのコンボボックスから、can.ex2 を選択します。

  5. Element Type(要素タイプ)コンボボックスから、Cellを選択します。

  6. 3行目のウィジェットで、最初のコンボボックスからEQPSを選び、2番目のコンボボックスから \(>=\) を選び、最後のテキストボックスに1.5を入力します。

  7. Find Dataボタンをクリックします。

../../_images/FindDataPanel2.png

Find Data ボタンの下にあるスプレッドシートに、クエリの結果が入力されていることを確認してください。各行はセル、各列はフィールド値またはプロパティ (識別子など) を表します。

また、ParaView のメインウィンドウの 3D ビューで、いくつかのセルがハイライトされていることにお気づきでしょう。これらのハイライトは、クエリによって作成された選択範囲を表しています。データ検索パネルを閉じると、選択範囲が残っていることに注意してください。

選択範囲を作成するもう一つの方法は、3Dビューの中で直接要素をピックすることです。3Dビューの選択のほとんどは、ラバーバンド選択 で行われます。つまり、3Dビュー内でマウスをクリック&ドラッグすると、ボックス状の領域が作成され、その下にある要素が選択されます。また、3Dビュー選択には、画面上に描かれた多角形領域内を選択できるものもあります。インタラクティブな選択にはいくつかの種類があり、3Dビューの上にある小さなツールバーのアイコンの一つを選択するか、ショートカットキーの一つを使用することで開始されます。以下の3D選択が可能です。

pqSurfaceSelectionCell Select Cells On (Surface)

ビューに表示されているセルをラバーバンドで選択します。 (ショートカット: s)

pqSurfaceSelectionPoint Select Points On (Surface)

ラバーバンドの下にあるビューに表示されているポイントを選択します。 (ショートカット:d)

pqFrustumSelectionCell Select Cells Through (Frustum)

ラバーバンドの下に存在するすべてのセルを選択します。 (ショートカット: f)

pqFrustumSelectionPoint Select Points Through (Frustum)

ラバーバンドの下に存在するすべての点を選択します。 (ショートカット: g)

pqPolygonSelectSurfaceCell Select Cells With Polygon

ラバーバンドで選択するのではなく、マウスでドラッグして多角形を描くことを除けば、Select Cells Onと同じです。

pqPolygonSelectSurfacePoint Select Points With Polygon

ラバーバンド選択ではなく、マウスドラッグによるポリゴン描画であることを除けば、ポイント選択と同様です。

pqSelectBlock Select Blocks

マルチブロックデータセットのブロックを選択する。(ショートカット: b)

pqSurfaceSelectionCellInteractive Interactively Select Cells

マウスを乗せるとセルがハイライトされ、クリックすると選択されるインタラクティブな選択モードに入ります。

pqSurfaceSelectionPointInteractive Interactively Select Points

マウスをポイントに近づけるとハイライトされ、クリックすると選択されるインタラクティブな選択モードに入ります。

これらの選択モードに加え、ホバーポイント pqSurfaceHoveringPoint クエリーモードとホバーセル pqSurfaceHoveringCell クエリーモードがあり、マウスを可視ポイントに置くことでフィールド値を素早く検査することができます。また、現在の選択範囲を削除する選択範囲クリアボタンも用意されています。

選択モードのいくつかには、より素早く選択できるようにするためのショートカットキーがあります。マウスカーソルを現在選択されている3Dビューのどこかに置き、適切なキーを押すことで使用できます。次に、選択したいセルまたはブロックをクリックします(または、複数の要素にラバーバンドをドラッグします)。

今すぐ自由に選択し、試してみてください。

選択範囲が検索データクエリで直接作成されたのではなく、これらの3Dインタラクションのいずれかで作成された場合でも、Find Data pqFindData パネルで選択範囲を管理することができます。Find Dataパネルでは、選択範囲内のすべてのポイントやセルを表示したり、選択範囲に対して簡単な操作を実行することができます。例えば、選択範囲の反転(スプレッドシートのすぐ上にあるチェックボックス)、ラベルの追加(Exercise 2.29)、選択範囲のフリーズ(Exercise 2.28 )、そして Plot Selection Over Time pqPlotSelectionOverTime と Extract Selection pqExtractSelection フィルタのショートカット(それぞれ Exercise 2.30Exercise 2.31 )が用意されています。

Find Data pqFindData で選択範囲を少し試してみましょう。データ検索 pqFindData パネルを開いてください。そして、ラバーバンド選択を使って選択し、その結果をFind Dataパネルで見てください。また、Invert selectionチェックボックスで選択範囲を反転させ、選択範囲を変更する実験もしてみてください。

選択項目は、内部的にさまざまな方法で表現できることに留意すべきである。あるものは、データ要素IDのリストとして記録される。また、空間上の領域やクエリパラメータで指定されるものもある。選択範囲はすべて同じように見えるが、特に時間的な変化に対しては異なる振る舞いをすることがある。次の演習では、これらの異なる選択メカニズムがどのように異なる動作をするのかを示します。

Exercise 2.28 (Data Element Selections vs. Spatial Selections)

  1. もしまだ前回の演習で読み込んでいなければ、can.ex2ファイルを開き、すべての変数を読み込み、 Apply します( Exercise 2.19 を参照してください)。

  2. セルを選択 pqFrustumSelectionCell ツールで選択します。

  3. まだ表示されていない場合は、Find Data pqFindData パネルを表示します。

../../_images/SelectionFrustum.png
  1. pqVcrPlay アニメーションを少し再生してください。リージョンは固定されたままで、どのセルがリージョンに入ったり出たりするかに基づいて選択範囲が変わることに注意してください。

  2. いくつかのデータが選択されているタイムステップに移動します。Find Dataパネルで、Freeze Selectionボタンをクリックします。

  3. もう一度 pqVcrPlay を再生してください。選択されたセルは位置に関係なく固定されていることに注意してください。

要約すると、空間選択(select throughツールの1つで作成)は、要素が選択された領域に入ったり出たりすると、各タイムステップで選択が再実行されるのです。同様に、フィールド範囲クエリなどの他のクエリも、データが変更されると再実行されます。しかし、Freeze Selectionボタンを選択すると、ParaView は現在選択されている要素の識別子をキャプチャし、アニメーションの間中同じ状態を維持します。

発見パネルのスプレッドシートは、フィールドデータを検査するための読みやすい方法を提供します。しかし、時には現場データを直接3Dビューに配置すると便利なことがあります。次の演習では、その方法について説明します。

Exercise 2.29 (Labeling Selections)

  1. もしまだ前回の演習で読み込んでいなければ、can.ex2ファイルを開き、すべての変数を読み込み、 Apply します( Exercise 2.19 を参照してください)。

  2. 最後のタイムステップに進みます pqVcrLast

  3. まだ表示されていない場合は、Find Data pqFindData パネルを表示します。

  4. データ検索パネルの上部にあるコントロールを使って、セルのIDがminになるような選択範囲を作成します。データ検索をクリックします。

  5. Cell Labels セレクタで、EQPS を選択します。

../../_images/SelectionLabels.png

ParaView は、EQPSフィールドの値を、その値を含む選択されたセルの近くに配置します。3Dビューで見ることができるはずです。また、ラベルセレクタの右にある pqAdvanced ボタンをクリックして、フォントの種類、サイズ、色に関する外観を変更することも可能です。

  1. 終了したら、セルラベルセレクタのエントリーのチェックを外してラベルをオフにしてください。

ParaView には、フィールドデータを時系列にプロットする機能があります。これらのプロットは選択上で動作することができ、これを容易にするために、データ検索 pqFindData パネルはそれらを作成するための便利なコントロールを含んでいます。

Exercise 2.30 (Plot Over Time)

  1. もしまだ前回の演習で読み込んでいなければ、can.ex2ファイルを開き、すべての変数を読み込み、 Apply します( Exercise 2.19 を参照してください)。

  2. まだ表示されていない場合は、Find Data pqFindData パネルを表示します。

  3. Find Dataパネルの上部にあるコントロールを使用して、EQPSが最大となるような選択範囲を作成します。Find Dataをクリックします。

  4. そのフィルタを追加するために、検索データパネルの下部にあるPlot Selection Over Timeボタンをクリックしてください。このフィルタは、メインの ParaView ウィンドウの pqPlotSelectionOverTime ツールバーボタンでも簡単にアクセスできます。

  5. メインウィンドウ ParaView のプロパティパネルで、Apply をクリックします。

../../_images/PlotSelectionOverTime2.png

時間軸上の選択範囲をプロット pqPlotSelectionOverTime フィルタが作成されたとき、あなたが持っていた選択範囲は、プロパティパネルで使用する選択範囲として自動的に追加されたことに注意してください。選択範囲を変更したい場合は、単に新しい選択範囲を作成し、プロパティパネルの「アクティブな選択範囲をコピー」をクリックします。

また、このプロットは各タイムステップでのEQPSの最大値であり、タイムステップごとに異なるセルからの値である可能性があることに注意してください。もし、あるタイムステップで最大値を持つセルを特定し、そのセルの値をすべてのタイムステップでプロットしたい場合は、 Exercise 2.28 で示した Freeze Selection 機能を使用してください。

選択されたポイントやセルを別々に表示したり、それらに独立した処理を行うために、選択範囲を抽出することもできます。これは選択範囲の抽出 pqExtractSelection フィルタによって行われます。

Exercise 2.31 (Extracting a Selection)

これから新しい可視化を始めるので、これまでの演習について行ったのなら、今が ParaView をリセットする良い機会です。これを行う最も簡単な方法は、ツールバーから pqResetSession を選択することです。

  1. can.ex2を開き、すべての変数をロードし、 Apply します( Exercise 2.19 を参照してください)。

  2. Select Cells Through pqFrustumSelectionCell で、例えば大きめのセル選択を行います。

  3. Extract Selection pqExtractSelection フィルタを作成します(ツールバーとデータ検索パネルから利用できます)。

  4. Apply を適用します。

../../_images/ExtractSelection.png

ビュー内のオブジェクトは、今選択したセルで置き換えられます。(この画像では、抽出されたセルを全データとの関連で表示するために、半透明の表面と元の選択範囲を持つ2番目のビューを追加したことに注意してください)。抽出されたセルに対しては、抽出選択パイプラインオブジェクトにフィルタを追加するだけで、計算を実行することができます。

前に説明したように、ビューと Find Data pqFindData パネルを使用して、異なるタイプの選択範囲を作成することができます。作成した選択範囲を保存したり組み合わせたりするには、Selection Editor パネルを使用します。このパネルは、View → Selection Editor からアクセスすることができます。

Exercise 2.32 (Selection Editor)

これから新しい可視化を始めるので、これまでの演習について行ったのなら、今が ParaView をリセットする良い機会です。これを行う最も簡単な方法は、ツールバーから pqResetSession を選択することです。

  1. can.ex2を開き、すべての変数をロードし、 Apply (参照 Exercise 2.19) そして、pqYPlus をクリックします。

  2. View → Selection Editor を有効にします。

  3. pqFrustumSelectionCell を使って、缶の左下部分にフラストゥムセルの選択範囲を作り、選択範囲エディタで Plus を押して作成した選択範囲を保存します。保存された選択範囲はご覧のように s0 という名前で、錐台選択範囲と記述されています。

  4. pqSelectBlock で缶の一番上のブロックを選択し、セレクションエディタで Plus を押して、作成した選択範囲を保存します。

  5. 先に作成した錐台選択範囲の上に、pqSurfaceSelectionCell を使って少し小さめのポリゴンセル選択範囲を作成し、Selection Editor で Plus を押して、作成した選択範囲を保存します。

    1. Selection Editorで前回の錐台の選択部分をクリックすると、インタラクティブに可視化することができます。

  6. Find dataパネル pqFindData を開き、Data Producerとしてcan.ex2を、Element TypeとしてCellを選択し、ID \(>=\) 3600を設定し、Find dataパネルで Plus を押してID \(>=\) 3900を設定してください。最後に、選択範囲エディタで Plus を押して、作成された選択範囲を保存します。

  7. Selection Editorには4つの異なる選択項目があり、ブール式を使って組み合わせることができるはずです。Expression を \(s1|(s0\) ^ \(s2)|s3\) に設定します。

../../_images/SelectionEditorPanel.png
  1. Activate Combined Selections を押してください。

../../_images/SelectionEditorViewResult.png

Selection Editorに関するより詳しい情報は、ユーザーズガイドの 6.8 章 に記載されています。

2.15. Animations

時間を含むデータセットをアニメーション化する方法(pqVcrPlay )や、 2.11 章 で時間データを操作する他の方法については既に見てきました。しかし、ParaView のアニメーション機能はそれをはるかに超えています。ParaView を使えば、あらゆるパイプライン・オブジェクトのほぼすべてのプロパティをアニメーション化することができます。

Exercise 2.33 (Animating Properties)

これから新しい可視化を始めるので、これまでの演習について行ったのなら、今が ParaView をリセットする良い機会です。これを行う最も簡単な方法は、ツールバーから pqResetSession を選択することです。

  1. クイック起動(ctrl+space Win/Linux, alt+space Mac)でSphereのソースを作成し、 Apply してください。

  2. アニメーションビューが表示されていない場合は、表示させるようにします。View → Animation View。

  3. No. Framesオプションを50に変更します(10では早すぎます)。

  4. アニメーションビューの下部にあるプロパティ選択ウィジェットを探し、最初のボックスでSphere1、2番目のボックスでStart Thetaを選択します。

../../_images/AddStartThetaTrack.png

Plus ボタンを押します。

../../_images/BuildAnimation1.png

pqVcrPlay アニメーションを再生すると、球体が開き、やがて自分自身に巻きついて消えていくのがわかります。

AnimateSphere0

AnimateSphere1

AnimateSphere2

AnimateSphere3

Sphere1 オブジェクトの Start Theta プロパティに対して、track を作成したことになります。トラックは、アニメーションビューで水平のバーとして表現されます。それらは、特定の時間インスタンスでのプロパティの値を指定する key frames を保持します。プロパティの値は、キーフレーム間で補間されます。トラックを作成すると、2つのキーフレームが自動的に作成されます:最小値を持つ開始時刻のキーフレームと最大値を持つ終了時刻のキーフレームです。ここで設定したプロパティは、球体の開始範囲を定義します。

トラックをダブルクリックすると、そのトラックを修正することができます。ダイアログボックスが表示され、キーフレームを追加、削除、変更することができます。

../../_images/AnimationKeyframesDialog.png

この機能を利用して、次の演習では、アニメーションの新しいキーフレームを作成します。

Exercise 2.34 (Modifying Animation Track Keyframes)

この演習は Exercise 2.33 の続きです。この演習を始める前に、その演習を終了しておく必要があります。

  1. Sphere1 - Start Theta トラックをダブルクリックします。

  2. Animation Keyframes ダイアログで、New ボタンをクリックします。これにより、新しいキーフレームが作成されます。

  3. 最初のキーフレームの値が360になるように修正します。

  4. 2つ目のキーフレームtimeを0.5、valueを0に修正します。

  5. OKをクリックします。

../../_images/BuildAnimation2.png

アニメーションを再生すると、球体はまず大きくなり、次にまた小さくなります。

アニメーションさせるプロパティは1つに限定されるわけではありません。好きな数のプロパティをアニメーション化することができます。では、2つのプロパティの変更に依存するアニメーションを作成します。

Exercise 2.35 (Multiple Animation Tracks)

この演習は Exercise 2.33Exercise 2.34 の続きです。この演習を始める前に、これらの演習を終了しておく必要があります。

  1. Sphere1 - Start Theta トラックをダブルクリックします。

  2. Animation Keyframesダイアログで、Delete the first track (at time step 0)を選択します。

  3. OKをクリックします。

  4. アニメーションビューで、Sphere1 オブジェクト、End Theta プロパティのトラックを作成します。

  5. Sphere1 - End Theta トラックをダブルクリックします。

  6. 2つ目のキーフレームの時間を0.5に変更します。

../../_images/BuildAnimation3.png

このアニメーションでは、球体が生成され、破壊される様子が描かれますが、今回はレンジフロントが同じ方向に回転しています。このアニメーションをループ pqVcrLoop させると、非常に満足のいくアニメーションになります。

パイプラインオブジェクトのプロパティをアニメーション化することに加えて、カメラをアニメーション化することもできます。ParaView は、指定したカーブに沿ってカメラをアニメーション化するメソッドを提供します。最も一般的なアニメーションは、カメラをオブジェクトの周りで回転させ、常にオブジェクトの方を向くようにするもので、ParaView はそのようなアニメーションを自動的に生成する手段を提供します。

Exercise 2.36 (Camera Orbit Animations)

この演習では、読み込んだデータの周囲をカメラで周回させます。前回の演習の続きであれば、準備は完了です。そうでない場合は、単にデータをロードするか作成します。効果を見るには、読み込むジオメトリに非対称性があるとよいでしょう。この演習で読み込むデータセットとしては、can.ex2 がよいでしょう。

  1. 軌道を開始させたい場所にカメラを設置します。カメラは視点を中心に右へ移動します。

  2. アニメーションビューパネルが表示されていることを確認します(表示されていない場合は、View → Animation View)。

  3. プロパティ選択ウィジェットで、最初のボックスでCameraを、2番目のボックスでOrbitを選択します。

../../_images/AddCameraOrbit.png

Plus ボタンを押します。

../../_images/CreateOrbitDialog.png

新しいトラックが作成される前に、軌道のパラメータを指定するダイアログボックスが表示されます。デフォルト値は現在のカメラ位置から来るもので、これは通常あなたが望むものです。

  1. OKをクリックします。

  2. 再生します pqVcrPlay

これで、カメラはオブジェクトの周りをアニメーションで移動します。

もう一つの一般的なカメラアノテーションは、空間内を移動する物体を追跡することです。弾丸や乗り物が移動するシミュレーションを想像してください。カメラを固定すると、物体はすぐに視界から外れてしまいます。このような状況に対応するため、ParaView は、カメラがシーン内のデータを追跡できるような特別なトラックを提供します。

Exercise 2.37 (Following Data in an Animation)

これから新しい可視化を始めるので、これまでの演習について行ったのなら、今が ParaView をリセットする良い機会です。これを行う最も簡単な方法は、ツールバーから pqResetSession を選択することです。

  1. can.ex2を開き、すべての変数をロードし、 Apply します( Exercise 2.19 を参照してください)。

  2. pqYPlus ボタンを押すと、メッシュに対してカメラの向きが変わります。

  3. アニメーションビューパネルが表示されていることを確認します(表示されていない場合は、View → Animation View)。

  4. プロパティ選択ウィジェットで、最初のボックスでCameraを、2番目のボックスでFollow Dataを選択します。

Plus ボタンを押します。

  1. 再生します pqVcrPlay

このアニメーションでは、缶が画面の底につぶれるのではなく、缶が持ち上げられて、常に画像の中央に位置していることに注目してください。これは、缶が押しつぶされるのをカメラが追いかけているためです。