使用例
$ pl.t.lapse.rate.sh
Bash script ./pl.t.lapse.rate.sh starts.
Input : ./Profile.T.txt
289.94 1.00
295.49 0.01
5.6
Output : ./pl.t.lapse.rate.ps
bashスクリプト: pl.t.lapse.rate.sh (GMT使用)
#!/bin/bash
# Description:
#
# Author: am
#
# Host: aofd165.fish.nagasaki-u.ac.jp
# Directory: /work2/kunoki/to_manda_sensei/Tools/MSM.profiles.at.Stations
#
# Revision history:
# This file is created by /usr/local/mybin/ngmt.sh at 16:16 on 10-29-2014.
. ./gmtpar.sh
gmtset LABEL_FONT_SIZE 16
gmtset HEADER_FONT_SIZE 16
gmtset ANOT_FONT_SIZE 16
echo "Bash script $0 starts."
range=260/300/0/2
size=3/4
xanot=a10f5
yanot=a0.5f0.1
figdir="./"
if [ ! -d ${figdir} ];then
mkdir -p $figdir
fi
out=${figdir}$(basename $0 .sh).ps
# computing lapse rate
z_up=1.00 #km
z_lw=0.01 #km
###
st=01
indir=.
in=${indir}/Profile.T.txt
if [ ! -f $in ]; then
echo Error in $0 : No such file, $in
exit 1
fi
echo Input : $in
awk '{if($1!="#" && $2>-900. )print $2, $1/1000}' $in |\
psxy -R$range -JX$size -W8/${black}\
-P -K -X1.5 -Y1.5 > $out
anot=${xanot}:"T${sp}[K]":/${yanot}:"Height${sp}[km]":WSne
psbasemap -R -JX -B$anot -O -K >> $out
pstext <<END -R -JX -O -K >>$out
262 1.9 14 0 0 LM Stn. $st
END
# lapse rate
t_up=$(awk '{if($1!="#" && $2>-900.)print $2,$1/1000}' $in |\
awk -v zu=$z_up '{if($2==zu)print $1}')
echo $t_up $z_up
t_lw=$(awk '{if($1!="#" && $2>-900.)print $2,$1/1000}' $in |\
awk -v zl=$z_lw '{if($2==zl)print $1}')
echo $t_lw $z_lw
gamma=$(echo "scale=1; -1*(${t_up}-${t_lw})/(${z_up}-${z_lw})" | bc)
echo $gamma
pstext <<END -R -JX -O -K -G0/0/0 >>$out
262. 1.75 14 0 0 LM @~G@~=${gamma}${sp}K/km
END
echo
echo Output : $out
echo
xoffset=0
yoffset=5
comment=
. ./note.sh
echo "Done $0"
gmtpar.sh
#
# GMTのパラメータの設定 (version 4以上対象)
#
# 長さの単位はインチとする
gmtset MEASURE_UNIT INCH
gmtset LABEL_FONT_SIZE 18
gmtset HEADER_FONT_SIZE 20
gmtset ANOT_FONT_SIZE 18
gmtset TICK_PEN 4
# 地図の縦横軸に縞々を使わない
gmtset BASEMAP_TYPE PLAIN
# 紙のサイズはA4
gmtset PAPER_MEDIA A4
# 地図の°の記号
gmtset DEGREE_SYMBOL = degree # Available for ver. 4 or later
# 空白文字の設定
sp="\040" # White space
# =の記号
eq="\075" # equal
# 温度の°の記号
deg="\260" #deg="\312" # degree symbol
# 色のRGB値を設定 (線や点に色をつけるときRGB値を直接指定するより分かりやすい)
red="255/0/0"
orenge="255/165/0"
pink="255/192/203"
green="0/255/0"
blue="0/0/255"
midnightblue="25/25/112"
yellow="255/255/0"
gold="255/215/0"
purple="160/32/240"
magenta="255/0/255"
white="255/255/255"
# 線種を指定
dash="t15_5:15"
dot="t5_5:5"
dotdash="t12_5_5_5:5"
#その他の線種の例
# -W5t20_5:5
# -W5t15_5:5
# -W5t20_5_5_5_5_5:5
# -W5t30_5_5_5:5
# -W5t20_5_10_5:5
# 数字の出力フォーマット(project, grd2xzy等で使う)
gmtset D_FORMAT %lg #デフォルト(規定値)
# 桁数を指定(例:123.45678)
#gmtset D_FORMAT %12.6f
# 状況に応じて
#gmtset D_FORMAT %12.5g
note.sh
# Print time, current working directory and output filename
export LANG=C
currentdir=`pwd`
if [ ${#currentdir} -gt 90 ]; then
curdir1=${currentdir:1:90}
curdir2=${currentdir:91}
else
curdir1=$currentdir
curdir2="\ "
fi
now=`date`
host=`hostname`
#comment=" "
time1=$(ls -l $in | awk '{print $6, $7, $8}')
pstext -JX6/1.2 -R0/1/0/1.2 -N -X${xoffset:-0} -Y${yoffset:-0} << EOF -O >> $out
0 1.1 9 0 1 LM $0 $@
0 0.95 9 0 1 LM ${now}
0 0.80 9 0 1 LM ${host}
0 0.65 9 0 1 LM ${curdir1}
0 0.50 9 0 1 LM ${curdir2}
0 0.35 9 0 1 LM Input: ${in} (${time1})
0 0.1 9 0 1 LM ${comment:-""}
EOF
# Output: ${out}
入力データのサンプル: Profile.T.txt
# z [m] T [K]
10 295.49
80 294.59
90 294.51
100 294.43
110 294.36
120 294.28
130 294.20
140 294.12
150 294.05
160 293.97
170 293.89
180 293.82
190 293.74
200 293.66
210 293.58
220 293.51
230 293.43
240 293.35
250 293.28
260 293.20
270 293.12
280 293.05
290 292.97
300 292.90
310 292.85
320 292.80
330 292.75
340 292.70
350 292.65
360 292.60
370 292.54
380 292.49
390 292.44
400 292.39
410 292.34
420 292.29
430 292.23
440 292.18
450 292.13
460 292.08
470 292.03
480 291.98
490 291.93
500 291.87
510 291.82
520 291.77
530 291.73
540 291.69
550 291.65
560 291.62
570 291.58
580 291.54
590 291.50
600 291.46
610 291.42
620 291.39
630 291.35
640 291.31
650 291.27
660 291.23
670 291.19
680 291.15
690 291.12
700 291.08
710 291.04
720 291.00
730 290.96
740 290.92
750 290.88
760 290.85
770 290.81
780 290.77
790 290.73
800 290.69
810 290.66
820 290.62
830 290.58
840 290.54
850 290.51
860 290.47
870 290.43
880 290.39
890 290.35
900 290.32
910 290.28
920 290.24
930 290.20
940 290.17
950 290.13
960 290.09
970 290.05
980 290.01
990 289.98
1000 289.94
1010 289.91
1020 289.88
1030 289.84
1040 289.81
1050 289.77
1060 289.74
1070 289.70
1080 289.67
1090 289.64
1100 289.60
1110 289.57
1120 289.53
1130 289.50
1140 289.46
1150 289.43
1160 289.40
1170 289.36
1180 289.33
1190 289.29
1200 289.26
1210 289.23
1220 289.19
1230 289.16
1240 289.12
1250 289.09
1260 289.06
1270 289.02
1280 288.99
1290 288.95
1300 288.92
1310 288.88
1320 288.85
1330 288.81
1340 288.78
1350 288.75
1360 288.71
1370 288.68
1380 288.64
1390 288.61
1400 288.58
1410 288.54
1420 288.51
1430 288.47
1440 288.44
1450 288.40
1460 288.37
1470 288.34
1480 288.29
1490 288.25
1500 288.21
1510 288.16
1520 288.12
1530 288.08
1540 288.03
1550 287.99
1560 287.95
1570 287.90
1580 287.86
1590 287.82
1600 287.77
1610 287.73
1620 287.69
1630 287.64
1640 287.60
1650 287.56
1660 287.51
1670 287.47
1680 287.43
1690 287.38
1700 287.34
1710 287.30
1720 287.25
1730 287.21
1740 287.17
1750 287.12
1760 287.08
1770 287.04
1780 286.99
1790 286.95
1800 286.90
1810 286.86
1820 286.82
1830 286.77
1840 286.73
1850 286.69
1860 286.64
1870 286.60
1880 286.56
1890 286.51
1900 286.47
1910 286.43
1920 286.38
1930 286.34
1940 286.30
1950 286.25
1960 286.21
1970 286.17
1980 286.12
1990 286.08
2000 286.04