いちからはじめる GMT その26 - psxy -Sv

2009年 12月 1日 掲載


ひさしぶりに,psxyコマンドをやります.


psxyコマンドに,-Svオプションをつけると, ベクトル Vector を描画することができる. このとき,あたえるデータには,

の 4つのパラメータが必要となる. ここで角度は x方向から反時計回りの数学座標系の角度で,単位は「度」である.

例として,まず角度を変化させた図を描いてみる. 円周上の座標から,法線方向のベクトルを描いてみた.

$ awk 'BEGIN{for(x=0;x<360;x+=30) print 2*cos(x*3.1415/180), 2*sin(x*3.1415/180), x, 1}' > arg.txt 
$ cat arg.txt
2 0 0 1
1.73207 0.999973 30 1
1.00005 1.73202 60 1
9.26536e-05 2 90 1
-0.999893 1.73211 120 1
-1.73197 1.00013 150 1
-2 0.000185307 180 1
-1.73216 -0.999813 210 1
-1.00021 -1.73193 240 1
-0.000277961 -2 270 1
0.999733 -1.73221 300 1
1.73188 -1.00029 330 1
$ psxy arg.txt -Jx1 -R-4/4/-4/4 -Sv > vector.eps

ベクトル図

次は,大きさを変えてみた例.

$ awk 'BEGIN{for(x=1;x<=7;x++) print x, 0, 90, x}' > mag.txt
$ cat mag.txt
1 0 90 1
2 0 90 2
3 0 90 3
4 0 90 4
5 0 90 5
6 0 90 6
7 0 90 7
$ psxy mag.txt -Jx1 -R-1/8/-1/8 -Sv > vector.eps

ベクトル図

-Cオプションでカラーパレットファイルを指定することにより, 色を変えて描画することもできる. このときは,

の 5つのパラメータが必要となる. makecpt で rainbow のカラーパレットを作り, 7色のベクトルを描いてみる.

$ awk 'BEGIN{for(x=1;x<=7;x++) print x, 0, x , 90, 1}' > mag2.txt
$ cat mag2.txt
1 0 1 90 1
2 0 2 90 1
3 0 3 90 1
4 0 4 90 1
5 0 5 90 1
6 0 6 90 1
7 0 7 90 1
$ makecpt -Crainbow -T1/7/6 -Z > rbw.cpt
$ psxy mag2.txt -Jx1 -R-1/8/-1/8 -Sv -Crbw.cpt > vector.eps

ベクトル図

これまでの -Sオプションでは,小文字と大文字で描画内容がかわっていたが, -Svオプションも同様で,-SV とするとデータの角度を方位としてあつかうようになる. -Sv では,0度が x方向で反時計回りだったが, -SV では,0度が y方向(北)で時計回りとなるのだ. 角度を30度づつかえたデータを作り,それぞれの図を描いてみよう.

$ awk 'BEGIN{for(x=0;x<=360;x+=30) print x, 0, x, 1}' > arg2.txt 
$ cat arg2.txt
0 0 0 1
30 0 30 1
60 0 60 1
90 0 90 1
120 0 120 1
150 0 150 1
180 0 180 1
210 0 210 1
240 0 240 1
270 0 270 1
300 0 300 1
330 0 330 1
360 0 360 1
$ psxy arg2.txt -Jx0.03/1 -R-40/400/-2/2 -Bg90a90/g1 -Sv > vector1.eps
$ psxy arg2.txt -Jx0.03/1 -R-40/400/-2/2 -Bg90a90/g1 -SV > vector2.eps

psxy -Sv:
ベクトル図

psxy -SV:
ベクトル図


[ KDOホームにもどる ] [ いちからはじめる GMT インデックスにもどる ]


(C) 2009 KDO