ホーム>資料>パソコン

パソコンのプチ情報

前の記事   次の記事

b15.GIF GMT講座 その10:ベクトル図を描こう(準備中)

※下記は準備中の稿です。近日公開。

1)まずデータファイルを用意します。ここでは横位置(X=1~15)、縦位置(Y=1~3)
での地下水の流速(水平、鉛直方向)をまとめたファイルvector_xy.datを用いて
みましょう。
------------
1 1 10 10
2 1 9 8
3 1 8 6
4 1 7 4
5 1 6 4
6 1 5 2
7 1 4 2
8 1 3 0
9 1 4 -2
10 1 5 -2
11 1 6 -4
12 1 7 -4
13 1 8 -6
14 1 9 -8
15 1 10 -10
1 2 5 3.333333333
2 2 4.5 2.666666667
3 2 4 2
4 2 3.5 1.333333333
5 2 3 1.333333333
6 2 2.5 0.666666667
7 2 2 0.666666667
8 2 1.5 0
9 2 2 -0.666666667
10 2 2.5 -0.666666667
11 2 3 -1.333333333
12 2 3.5 -1.333333333
13 2 4 -2
14 2 4.5 -2.666666667
15 2 5 -3.333333333
1 3 2.5 1.111111111
2 3 2.25 0.888888889
3 3 2 0.666666667
4 3 1.75 0.444444444
5 3 1.5 0.444444444
6 3 1.25 0.222222222
7 3 1 0.222222222
8 3 0.75 0
9 3 1 -0.222222222
10 3 1.25 -0.222222222
11 3 1.5 -0.444444444
12 3 1.75 -0.444444444
13 3 2 -0.666666667
14 3 2.25 -0.888888889
15 3 2.5 -1.111111111
------------


2) 次のGMTスクリプトを実行
(vector_xy.gmt)
------------------------------------------------------------
#!/bin/tcsh -f
# Vector plot (sample)

gmtdefaults -D >! .gmtdefaults
gmtset LABEL_FONT_SIZE 12 HEADER_FONT_SIZE 18

awk '{print $1,$2,90-atan2($4,$3)/(atan2(1,1)*4)*180,sqrt($3^2+$4^2)/30}' \
< vector_xy.dat > tmp.dat
psxy tmp.dat -JX6/-2 -R0/16/0/4 -Ba5/a1WSne:."Vector": \
-G255/0/0 -SV0.01/0.1/0.05 -Xa1.0i -Ya2.0i -P -K >! tmp.ps
psxy tmp.dat -JX -R -B -Sc0.1 -Xa1.0i -Ya2.0i -P -O >> tmp.ps

cp tmp.ps vector_xy.ps
rm tmp*.* .gmt*
------------------------------------------------------------

psxyコマンドを用いるとベクトルを描くことができる。-Svオプションでは、
矢印の線の太さ(0.01インチ)、矢印の頭の長さ(0.1インチ)、頭の幅(0.05インチ)
を指定できます。ただし、psxyは、ある場所(縦横)でのベクトルの「方向」と「大きさ」
に従って、ベクトルを描きます。このため、直前のawkの部分で1列目=X位置、
2列目=Y位置、3列目=方向、4列目=大きさを計算し(tmp.dat)、これに基づいて
描画しなければなりません。

さらにベクトルの方向は、Y軸とベクトルの成す角度で指定します。このとき、
Y軸からX軸への回転方向が正(あるいは東から北へ反時計回りが正)になります。
(なので上のawkの例でも、90度からベクトル角度を引いています)。
またベクトルの大きさは、縦横の距離スケールと1:1で描くため、ベクトルの大きさを
あらかじめawkの部分で調整しておきます(上のawkの例では30で割り算しています)。

ここではawkで計算しましたが、あらかじめベクトルの方向と大きさを計算して
おいてもよいでしょう。

[関連画像]


図1

前の記事

目次に戻る

次の記事