ゼロからはじめるParaView — [04]ParaVIEWから読み込んでみる(二次元分布スカラーデーター)

ParaView。今回は、二次元平面上に分布するスカラー値データーの表示です。

  • 平面上にコンター表示させた後(Delaunay2D)、値を使って三次元表示グラフにします(WarpByScalar)。
  • メッシュの分割を内装補完して、ポリゴンらしさを押さえた表示にもしてみます(LoopSubdivision)。

 

ParaVIEWは、入力形式の対応などを見るだけで、かなり充実していると言うことがうかがえると思います。しかし、お手軽に使おう、というずぼら人にとっては、これは非常に敷居の高いことです。綱渡りのように使うこともできるでしょうが、切羽詰まって追い込まれた状況で、不具合が生じたときには、基本のParaVIEWの特性を知っておく必要があるように思います。

そこで、CSV形式で記録された簡単なデーターを作って、試しておこうかと思いますが、さてさて、どうなるのでしょうか。。。

※現時点での疑問問題点

  • ホントに二次元で座標は読めないのか?・・・読めそうですが未調査です。
  • いじくってたらコンターが消えた!・・・surfaceやcolor の設定では復活しないのか?
  • なんかメニューオプションの表示が不安定?・・・選択肢が反映されるタイミングがなんか微妙?

 

テキストファイル(ASCIIファイル)でデーターをはき出してしまうことはよくあることです。

その際の区切り文字にはいろいろ選択できますが、区切り文字を ” ‘ “(カンマ) にすれは、一応CSV形式として扱えます。日本語などの2バイト文字は ParaView では無難新国は避ける方がよいでしょう。

ParaView は、すでに前のトピックスでもあるように、基本的には大規模データーを扱うための可視化ツールです。したがって、入力するデーターが、従前のグラフrツールのような 2次元データー などというけちなことは考えていないようです。三次元空間中の空間ベクトルデーターの時間履歴データー、なんてお手ものなのです。

したがって、二次元平面上のスカラーデーター分布などというものは、端から相手にしていないようです。

そこで、2次元分布データーは、とりあえず第三軸を0とでもおいて、三次元空間座標にしておいてください。データー地租のものは、スカラーでもベクトルでも、フィルターは対応しているようです。

●入力ファイルの準備

まず、x, y, z の三次元空間座標を列挙して、その次にスカラー値を記述した CSV ファイルを作成します。

x, y, z, value
0, 0, 0, 4.2
1, 0, 0, 4.8
2, 0, 0, 5.6

のような感じのファイルです。今回は2次元平面上分布なので、 z はずべて 0 です。

●ファイルの読み込み

これを、 ParaView でcsvファイルとして読み込みます。
メニューバー、ファイルメニュー、開く、でファイルを指定して読み込みます。1行目に上記のように項目を記しているので、読み込み時のオプションで、「Have Header」にチェックを入れておきます。

これで、Applyボタンを押します。

うまくいくと、右ウインドウにファイルの中身にData Index がついて値が表示されます。
もしエラーが出ると、Pipeline Browser に赤いマークでエラーが表示されますが、詳細は不明です。ファイル操作で、カンマ区切りが認識されてなかったり、ヘッダーの状態が指定と異なっていたり、というあたりをチェックしてみてください。

●数値の物理量関連づけ

データーが読めたら、次はデーターの表示にかかわる数値と座標や物理量との関係の定義です。

TableToPoint フィルターを選択します。
フィルタープロパティズで、x Column, Y Column, Z Column に、データーを割り当てます。同じものが二つ重なったりするとエラーになるようです。だから二次元空間データーは使用できません。ヘッダーが指定されていると、ヘッダーがドロップダウンメニューから選択できるので、確認して空間座標を指定してください。

これで、Applyボタンを押します。

画面には、座標点の位置のみが三次元的に表示されるはずです。
もちろん今回は、平面上に表示されているはずです。

各座標を定義した「Propaties項目の下に、「Display」があります。ここから 「surface」を選択すれば、その下にさらにサブ項目が展開しますので、「Coloring」のプルダウンから、ヘッダー Value を選択します。

これで、Applyボタンを押します。

うまくいけば、カラーコンターの平面が表示されるはずです。

●立体表示

さらに「WarpByScalar」フィルターを選択します。

●パネル解像度の調整

ポリゴンの粗さも調整できます。細かくして表示を滑らかにするには、データー感を補完することになります。それが科学的に適性かどうかと言われれば、あんまりよいことではないので、適宜判断して使用する必要があります。

Loop Subdivision」フィルターを適用して、オプションで細かさを調整します。

このフィルターは、コンターをワープ変換させる前に適用しないといけませんので、Table to PointフィルターとWarpByScalarフィルターの間に挿入する必要があります。

●出力の保存

結果のグラフを各種形式のファイルにエクスポートできます。Inkscapeで操作がしやすい svg 形式にも保存はできますが、gnuplot と少し似ているようで、座標軸等が操作(フィルター)ごとに上書きされているようです。座標軸の表題を操作してみると、下図のようにいくつもキャラクターが重なっています。文字をベクターに変換すれば、大きさも変更可能ですが、元の場所の背景には影が残ります。うーん。きっとオプションで対応は可能かも。背景は色指定はあるけど透明にできるのでしょうか・