
AVS Technical Report -Volume8,Number1 November,2003-
AVS/Expressでは通常読み込まれたデータの全てのレンジに対して可視化を実行します。
しかし、ファイルに記述された一部のデータが可視化に有効では無い場合もあるかと思います。
例えば次のような経験は無いでしょうか?
そんな時に役立つのが今回紹介する、「set_null」と「threshold」です。不必要なデータにNULL値を設定します。NULL値が設定されたデータ値は可視化の際に表示されなくなります。従って、NULL値を設定したデータ値は存在していないかのように可視化できます。
set_nullは指定されたある値をNULL値として設定するモジュールです。
NULL値が設定されたデータは可視化の際に無視され、表示されません。
データ中にエラーを設定した値など無効な値がある場合に、その値を表示せずに可視化できます。
set_nullは[Main]ライブラリの[Filter]カテゴリ内にあります。
図 1 set_nullモジュール
図2がset_nullのコントロールパネルです。

図 2 set_nullモジュールパネル
| set Null Value | NULL値の設定を行う。 |
|---|---|
| unset Null Value | NULL値の設定を解除する。 注) set_nullではNULL値の設定がされているデータに対し、NULL値の設定を解除することも可能です。 |
| Null Value | NULL値を設定する値の指定。 |
実際にset_nullを利用し、NULL値の設定を行います。
図3のhydrogen.fldの断面の可視化にset_nullを追加します。

図 3 NULL値を設定しない可視化
Read_Fieldとorthosliceの間にset_nullを追加します。
set_nullの追加により、Read_Fieldから出力されるデータに対してNULL値を設定できます。
ここではデータ中の0の値にNULLを設定し、可視化を行います。

図 4 set_nullを利用した可視化
断面の可視化の中でデータ値が0の部分は表示されていません。
(表示されていないので背景が見えています)
NULL値を設定すると、その部分にはあたかもデータが存在していないかのように可視化されます。
次にthresholdについて紹介します。
set_nullはデータ中のある一つの値についてNULL値を設定するモジュールでした。thresholdはset_nullと違い、あるデータ範囲についてNULL値を設定できます。
thresholdは指定した範囲の値をNULL値として設定するモジュールです。
データ中の2つの値を指定し、片方の値以下のデータ領域と、もう片方の値以上のデータ領域、この2つのデータ領域についてNULL値を設定できます。NULL値が設定されたデータ範囲はset_nullと同様に可視化の際に無視され、表示されません。
NULL値の設定にデータ範囲を指定できることがset_nullとの違いです。
Thresholdは[Main]ライブラリの[Filter]カテゴリ内にあります。
図 5 thresholdモジュール
図6がThresholdのコントロールパネルです。

図 6 Thresholdモジュールパネル
| check component | min rangeとmax rangeでデータ範囲を判定するデータ成分を指定します。 |
|---|---|
| threshold component | NULL値を設定するデータ成分を指定します。 データ成分選択のチェックボックスは、thresholdに入力されているデータの成分が表示されます。 入力データの成分数によってチェックボックス数は変化します。またデータ未入力時にはチェックボックスは表示されません。 |
| Below min value | min valueの設定を有効にします。 |
| min value | 指定した値以下にNULL値を設定します。 |
| Above max value | max valueの設定を有効にします。 |
| max value | 指定した値以上にNULL値を設定します。 |
| null thresh value | NULL値として設定されるデータ値を指定します。 min valueとmax valueによりNULL値を指定された範囲の値はnull thresh valueで指定された値に置き換えられます。 |
thresholdを利用し、NULL値の設定を行います。
図3のhydrogen.fldの断面の可視化にthresholdを追加します。
図8のようにmin valueに5、max valueに250を設定して図7の可視化を行っています。

図 7 NULL値を設定しない可視化
図7の断面の外側の表示されていない部分が、min valueで指定された5以下の領域になります。
また中心付近の2箇所の穴のあいた部分が、max valueで設定された250以上の領域です。
min value以下とmax value以上の値にはNULL値が設定されているため断面が表示されず、図7では5から250までの範囲のデータのみが可視化されています。

図 8 データ入力時のコントロールパネル
今回はNULL値を設定して、データを非表示にするset_nullとthresholdの2つのモジュールを紹介しました。
「データの不必要な値を見せない」「必要なデータ領域だけを取り出して可視化する」このような見せ方も有効な可視化表現の一つです。利用できる機会があれば、ぜひご活用ください。
最後にNULL値を利用した可視化の例として、タービン中の空気の流れの可視化を紹介します。
図9はタービンの羽を表示しています。この羽の周りに流れる空気を2枚の断面で可視化します。
![]() 図 9 タービンの羽 |
|
![]() 図10 NULLを設定しない可視化 |
![]() 図11 NULLを設定した可視化 |
図10と図11は同じデータを、NULL値の設定以外同じ可視化手法で可視化しています。
図10ではNULL値を設定していないため、本来空気の流れが存在しないタービンの羽の部分にも断面が表示されています。そのためタービンの羽の部分にも、意味のあるデータが存在している誤解を与える可能性があります。
図11では、タービンの羽に当たる部分にNULL値を設定しているため、その部分の断面が表示されていません。その結果、意味のあるデータを持つ可視化部分に、より注目しやすくなっています。
このように、障害物部分など意味の無いデータ部分を避け、意味のある、見せたいデータだけを表示できることがNULL値を設定する利点です。
clampは、データをある最小値と最大値の範囲に設定するモジュールです。
最小値を指定すると、最小値以下の範囲のデータは指定された最小値として設定されます。
最大値についても同様に、最大値を指定すると、最大値以上の範囲のデータは指定された最大値として設定されます。
thresholdでは最小値と最大値の範囲外のデータにNULL値を設定しました。
clampではNULL値では無く、指定した最小値と最大値を範囲外のデータに設定します。
ある領域外のデータに対して、NULL値を設定し表示を行わない場合にはthreshold、一定の値を設定して表示を行う場合にはclamp、と使い分けが可能です。可視化表現の幅を広げるためにthresholdだけでは無くclampもお試しください。
clampは[Main]ライブラリの[Filter] カテゴリ内にあります。
コントロールパネルや操作方法についてはthresholdと同様に行えます。
図3の可視化にclampを追加し最小値に50、最大値に200を設定した例が図12になります。
clampに設定した最小値50以下のデータは全て50に設定されます。そのためコンターでは50以下のデータ領域は全て50の値と同じ色で表示されています。また、最大値として設定された200以上のデータも200の値と同じ単一の色で表示されています。

図 12 clampを利用した可視化
AVS Support Center, fns-avssup@cs.jp.fujitsu.com