オブジェクトに合った最適なカラーマップを探してますか? 自分で作成しますか?

MATFOR 基本テクニック: カラーマップのカスタマイズ

可視化とは、イメージ上のデータをマッピングするプロセスで、 カラーは、効果的な可視化を作成する主要素です。 シュミレーションの可視化に成功することで、データの構造に洞察力を得ることができ、 これは、通常、カラーマップの選択に依存します。 可視化ツールに付いてくる標準的なカラーマップは、シュミテーション データを十分に表示できない場合があります。 しかし、MATFOR のカラーマッピング テクニックは、 カスタム カラーマップのデザイン手法を提供し、可視化の質を確保します。 このニュースレターでは、MATFOR の拡張カラーマップ機能、 カラーマップの定義、編集および使用方法に関して、説明します。
 

事前定義のカラーマップの使用

MATFOR は、spring、winter、cool、hot、gray などを含む、 さまざまな事前定義のカラーマップを提供します。これらのカラーマップは、 プログラミングまたはカラーマップ ダイアログ ボックスで選択可能です。 MATFOR 4 の拡張機能として、複数のオブジェクトを含む plot のオブジェクトに 各カラーマップを割り当てることができます。更に、カラーマップ プロパティを使用して、 表示するオブジェクトの範囲を指定して、色付けしたり、消去することができます。 利用可能なプロパティには、'clamp'、'range' および 'undef' があります。

...
h = mfSurf(u,v,z)
call msColorMap('spring') ! Use spring as the colormap type
call msDrawColormap(h, mf('range'), mf((/-2d0, 3.9d0/))) ! Specify the colormap range between -2 and 3.9
call msDrawColormap(h, mf('undef'), mf('no_drawing')) ! Hide the area outside of the colormap range
...

h1 = mfSurf(u,v,z)
call msColorMap('summer') ! Use summer as the colormap type
call msDrawColormap(h1, mf('range'), mf((/-2d0, 3.9d0/))) ! Specify the colormap range between -2 and 3.9
call msDrawColormap(h1, mf('undef'), mf((/1,1,1/))) !Color the area outside of the colormap range to white
...

左側のオブジェクトは、カラーマップの 'spring' を使用し、定義してない個所は transparent に設定します。 右側のオブジェクトは、カラーマップの 'summer' を使用し、 定義してない個所は、白く色付けします。


図 1. 異なるタイプの事前定義のカラーマップの使用


カスタム カラーマップの定義

オブジェクトに最適な事前定義済みのカラーマップがない場合、 Colormap Setting ダイアログ ボックスの Colormap Editor を使用して、 カスタム カラーマップを作成することができます。

1. MATFOR Graphics Viewer で、Toolbar Colormap Setting ボタンをクリックして、ダイアログを開きます。



2. 左側に、二つの Color Stop が付いた Colormap Editor があります。カラーマップの色を変更するには、Stop の一つを選択して、 Color Button をクリックします。.


3. 色を指定して、OK をクリックします。

4. 新しい Color Stop を追加するには、単純にプラス ボタン をクリックします。 デフォルトでは、新しい Stop は、前の Stop の中間に配置されます。 適切な場所に新しい Stop をスライドします。

5. カラーマップの設定が終了したら、Add to Warehouse ボタンをクリックし、カスタム名 myColormap を入力します。 新しいカラーマップは、Warehouse に表示されます。

6. 後で使用するためにローカル ディスクにカラーマップを保存するには、 Export Colormap ボタンをクリックします。 カラーマップを保存する場所を指定して、Export をクリックします。 カラーマップ ファイルを .mfcm 拡張子で、指定したパスに保存します。

注意: デフォルトでは、MATFOR は、プロジェクトを保存したディレクトリを使用します。 プロジェクトを保存したディレクトリを同じディレクトリにカラーマップ ファイルを保存することを推奨します。

 

既存のカラーマップを修正

グラフに複数のオブジェクトが存在する場合、 各オブジェクトのカラーマップを個々に編集することが可能です。

1. MATFOR Graphics Viewer では、Object List View ボタンをクリックして、Graph Tree ダイアログ ボックスを開きます。



2. Graph Tree で、カラーマップを割り当てるオブジェクトを選択します。

3. Add/Edit Colormap ボタンをクリックして、カラーマップを編集します。

さまざまなカラーマッピング テクニックを使用した例
Data courtesy of Department of Marine Meteorology, Central Weather Bureau of Taiwan

以下の例は、台湾の海の潮と潮の流れのシュミレーションです。 この例では、二つのオブジェクトを重なり合うレイヤで作成しています。 カスタム カラーマップ "myColormap.mfcm" を海の上位層に割り当て、 事前定義済みのカラーマップ "summer" を陸の下位層に割り当てています。


図 2. 潮を潮の流れのシュミレーション

...
h1 = mfSurf(mx, my, mhsig) ! Create and plot the ocean layer
call msDrawMaterial(h1,mf('edge'),mf('visible'),mf('off')) !
call msDrawColormap(h1, mf('ocean.mfcm')) ! Use the custom colormap type - ocean
call msHold('on')
...
h2 = mfSurf(cx,cy,cz) ! Create and plot the land layer
call msDrawMaterial(h2,mf('edge'),mf('visible'),mf('off'))
call msDrawMaterial(h2,mf('surf'),mf('smooth'),mf('on'))
call msDrawColormap(h2,mf('summer')) ! Use the predefined colormap type - summer
call msDrawColormap(h2,mf('range'),mf((/1d-4,2.5d0/))) ! Set the colormap range between .0001 and 2.5
!call msDrawColormap(h2,mf('undef'),mf('no_drawing')) ! Hide the area outside of the colormap range
...


図 3. 陸の層の 'no_drawing' に 'undef' を設定して、必要のないエリアを隠す (カラーマップ範囲の外側に設定します)