このページの本文へ移動

富士通長野システムエンジニアリング

Japan

  1. ホーム >
  2. 製品 & サービス >
  3. [研究開発] >
  4. AVS >
  5. 特集記事 - set_null & threshold (Vol.8 No.1)
トップ 製品概要 事例 ソリューション サポート & トレーニング 体験版CD-ROM 動作環境 価格 技術情報/FAQ お問い合わせ お見積もり ダウンロード リンク集

- set_null & threshold -
NULL値で不必要なデータを隠して可視化

AVS Technical Report -Volume8,Number1 November,2003-


Contents

  1. はじめに
  2. 「set_null」の機能
  3. 「threshold」の機能
  4. おわりに
  5. 参考 「clamp」モジュール

1. はじめに

AVS/Expressでは通常読み込まれたデータの全てのレンジに対して可視化を実行します。

しかし、ファイルに記述された一部のデータが可視化に有効では無い場合もあるかと思います。

例えば次のような経験は無いでしょうか?

  • データ中にエラー値が特定の値で記述されていて、その値を非表示にして可視化したい場合
  • データ中のあるレンジのデータのみに注目して可視化したい場合

そんな時に役立つのが今回紹介する、「set_null」と「threshold」です。不必要なデータにNULL値を設定します。NULL値が設定されたデータ値は可視化の際に表示されなくなります。従って、NULL値を設定したデータ値は存在していないかのように可視化できます。

2. 「set_null」の機能

set_nullは指定されたある値をNULL値として設定するモジュールです。

NULL値が設定されたデータは可視化の際に無視され、表示されません。

データ中にエラーを設定した値など無効な値がある場合に、その値を表示せずに可視化できます。

set_nullは[Main]ライブラリの[Filter]カテゴリ内にあります。

図 1 set_nullモジュール

2-1. 入力ポート

左側のポートから順にポートを紹介します。

  • in_filed (Node_Data)
    NULL値を設定するデータを入力します。
  • ui_parent (UIconnection)
    ユーザインターフェースの入力ポートです。
    (コントロールパネルと内部的に接続されています)

2-2. 出力ポート

  • out_fld (Mesh+Node_Data)
    NULL値が設定されたデータが出力されます。
  • out_obj (DefaultObject)
    表示可能なポリゴンデータが出力されます。

2-3. set_nullパネル

図2がset_nullのコントロールパネルです。

図 2 set_nullモジュールパネル

set Null Value NULL値の設定を行う。
unset Null Value NULL値の設定を解除する。
注) set_nullではNULL値の設定がされているデータに対し、NULL値の設定を解除することも可能です。
Null Value NULL値を設定する値の指定。

2-4. set_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値を設定できます。

3. 「threshold」の機能

thresholdは指定した範囲の値をNULL値として設定するモジュールです。

データ中の2つの値を指定し、片方の値以下のデータ領域と、もう片方の値以上のデータ領域、この2つのデータ領域についてNULL値を設定できます。NULL値が設定されたデータ範囲はset_nullと同様に可視化の際に無視され、表示されません。

NULL値の設定にデータ範囲を指定できることがset_nullとの違いです。

Thresholdは[Main]ライブラリの[Filter]カテゴリ内にあります。

図 5 thresholdモジュール

3-1. 入力ポート

左側のポートから順にポートを紹介します。

  • in_filed (Node_Data)
    NULL値を設定するデータを入力します。
  • ui_parent (UIconnection)
    ユーザインターフェースの入力ポートです。
    (コントロールパネルと内部的に接続されています)

3-2. 出力ポート

  • out_fld (Mesh+Node_Data)
    NULL値が設定されたデータが出力されます。
  • out_obj (DefaultObject)
    表示可能なポリゴンデータが出力されます。

3-3. 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で指定された値に置き換えられます。

3-4. threshold操作方法

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 データ入力時のコントロールパネル

4. おわりに

今回はNULL値を設定して、データを非表示にするset_nullとthresholdの2つのモジュールを紹介しました。

「データの不必要な値を見せない」「必要なデータ領域だけを取り出して可視化する」このような見せ方も有効な可視化表現の一つです。利用できる機会があれば、ぜひご活用ください。

最後にNULL値を利用した可視化の例として、タービン中の空気の流れの可視化を紹介します。

図9はタービンの羽を表示しています。この羽の周りに流れる空気を2枚の断面で可視化します。

図 9 タービンの羽

図10 NULLを設定しない可視化

図11 NULLを設定した可視化

図10と図11は同じデータを、NULL値の設定以外同じ可視化手法で可視化しています。

図10ではNULL値を設定していないため、本来空気の流れが存在しないタービンの羽の部分にも断面が表示されています。そのためタービンの羽の部分にも、意味のあるデータが存在している誤解を与える可能性があります。

図11では、タービンの羽に当たる部分にNULL値を設定しているため、その部分の断面が表示されていません。その結果、意味のあるデータを持つ可視化部分に、より注目しやすくなっています。

このように、障害物部分など意味の無いデータ部分を避け、意味のある、見せたいデータだけを表示できることがNULL値を設定する利点です。

5. 参考 「clamp」モジュール

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