| S | 直線 |
| Sa | 星形 |
| Sc | 丸 |
| SV | ベクトル |
アメダスデータのような地点の風の分布を描く場合には、psxy -SVを使う。
入力データ: amedas0000.txt, amedas0010.txt....
#!/bin/bash
#data discription
#$1:longitude, $2:lattitude, $3:Temperature, $4:rainfall
#$5:wind_direction, $6:wind_speed
#!!!Due to large size of psxy vector windspeed was devided by 5!!!
#gmtdefaults -D > .gmtdefaults
gmtset PAPER_MEDIA A4+
gmtset PAGE_ORIENTATION portrait
gmtset PLOT_DEGREE_FORMAT +D D_FORMAT %.1f
gmtset BASEMAP_TYPE plain
for HOUR in 0 1 2 3 4 5 6 7 8 9 10
do
for MINUTE in 0 10 20 30 40 50
do
JST=`expr $HOUR + 9`
echo $JST JST
JST2=`printf %02d $JST`
HOUR2=`printf %02d $HOUR`
MINUTE2=`printf %02d $MINUTE`
INPUT="amedas${HOUR2}${MINUTE2}.txt"
OUT="newamedas${HOUR2}${MINUTE2}.eps"
PNG="newamedas${HOUR2}${MINUTE2}.png"
RANGE='139/140.9/36/37.2'
PROJ='M20'
#Draw wind barb at amedas location (wind speed was devided by 5)
awk '($6>0.5){print $1,$2,$5+180,$6/5}' $INPUT | \
psxy -R$RANGE -J$PROJ -SV0.02/0.2/0.1 -Gblack -V -P -K > hoge.ps
#Draw circle to amedas location
awk '{print $1,$2}' $INPUT | \
psxy -R$RANGE -J$PROJ -Sc0.2 -V -O -K >> hoge.ps
#draw wind barb legend
psxy -R$RANGE -J$PROJ -SV0.02/0.2/0.1 -Gblack -V -P -O -K <<EOF >> hoge.ps
140.7 36.1 90 1
EOF
#draw wind barb legend value (5m/s)
pstext -R$RANGE -J$PROJ -O -K -V <<EOF >> hoge.ps
140.85 36.1 14 0 1 MC 5m/s
EOF
#draw coastline
pscoast -R$RANGE -J$PROJ -Ba0.4f0.2:."${JST2}${MINUTE2} JST":SWen -W2 -Df -V -O >> hoge.ps
#rename and convert figure
ps2epsi hoge.ps $OUT
rm hoge.ps
convert -quality 100 $OUT $PNG
echo "$INPUT end"
done
done
psxyのベクトルの長さは、Jオプションの大きさに対応している。
Jオプションで大きな値を設定すれば、ベクトルの長さは短くなるが図のサイズが大きくなってしまう。
対処法として、上の例ではデータを5で割って1/5の長さに変更している。
同様に、凡例も1/5=1m/sの長さを5m/sとして描いている。