可視化手法 | ![]() ![]() |
ストリームプロット(ストリームライン、リボン、チューブ、コーン、矢印)は、3次元ベクトル場の流れを示します。MATLABのストリームプロットのルーチン(streamline
, streamribbon
, streamtube
, coneplot
,
stream2
, stream3
)は、すべてストリームの追跡を開始したい点を指定する必要があります。
開始位置の決定
一般に、データの特性を知っていると開始位置の選択のために役立ちます。初期の流れの方向やデータの座標の範囲のような情報は、データを評価する点の決定のための手助けになります。
関数 streamslice
は、データを調査するために有効です。たとえば、つぎのステートメントは、データ範囲内の中間のzの値においてベクトル場を通るスライスを描画します。
load wind zmax = max(z(:)); zmin = min(z):)); streamslice(x,y,z,u,v,w,[],[],(zmax-zmin)/2)
このストリームスライスプロットは、流れが正のx方向であることを示し、xとyの両方向で開始位置を選択することができます。x-z平面またはy-z平面において物体をスライスする同様のプロットを作成して、データの範囲と方向について洞察を得ることができます。
開始位置座標の配列の指定
1つのストリームラインに対して開始位置を指定するには、x,y,z座標が必要です。meshgrid
コマンドは、開始位置の配列を作成するための便利な方法を提供します。たとえば、前のストリームスライスに表示された風のデータから開始位置を選択します。
[sx,sy,sz] = meshgrid(80,20:10:50,0:5:15);
つぎのステートメントは、x = 80、yは20から50、zは0から15である開始位置を定義します。plot3
を使って位置を表示することができます。
plot3(sx(:),sy(:),sz(:),'*r'); axis(volumebounds(x,y,z,u,v,w)) grid; box; daspect([2 2 1])
meshgrid
により出力されるような3次元配列を使う必要はありませんが、各配列の大きさは同一で、meshgrid
は各座標において同数のユニークな値をもたない場合に配列を生成するための便利な方法を提供します。開始位置の配列を列ベクトルとして定義することもできます。たとえば、meshgrid
は3次元配列を出力します。
[sx,sy,sz] = meshgrid(80,20:10:50,0:5:15); whos Name Size Bytes Class sx 4x1x4 128 double array sy 4x1x4 128 double array sz 4x1x4 128 double array
さらに、3つの配列の対応する要素が各開始位置の座標を構成する16行1列の列ベクトルを使うことができます(これは、meshgrid
により sx(:)
, sy(:)
, sz(:)
として出力される値のインデックス付けと等価です)。
たとえば、ストリームラインを付加するとつぎのようになります。
streamline(x,y,z,u,v,w,sx(:),sy(:),sz(:))
![]() |
ベクトル物体データの可視化 | 物体データの小領域へのアクセス | ![]() |