-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrun-plot.sh
185 lines (172 loc) · 5.63 KB
/
run-plot.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
#!/bin/bash
set -Ceuo pipefail
PATH=/bin:/usr/bin
TZ=UTC; export TZ
: ${nwp:=${HOME}/nwp-test}
: ${base:=${nwp}/p2}
: ${refhour:=$(date +'%Y-%m-%dT%HZ')}
: ${wdbase:='https://raw.githubusercontent.com/etoyoda/wxsymbols/master/img/'}
cd $base
if test -f stop ; then
logger --tag plot --id=$$ -p news.err -- "suspended - remove ${base}/stop"
false
fi
jobwk=${base}/wk.${refhour}-plot.$$
mkdir $jobwk
cd $jobwk
: 10800 == 3600 x 3
basetime=$(ruby -rtime -e 'puts(Time.at(((Time.parse(ARGV.first.sub(/Z/,":00:00Z")).to_i - 3600) / 10800) * 10800).utc.strftime("%Y-%m-%dT%H:%M:%SZ"))' $refhour)
export basetime
bt=$(ruby -rtime -e 'puts(Time.parse(ARGV.first).utc.strftime("%Y-%m-%dT%HZ"))' $basetime)
hh=$(ruby -rtime -e 'puts(Time.parse(ARGV.first).utc.strftime("%H"))' $basetime)
ln -Tfs $nwp/p0/incomplete/obsbf-2*.tar z.curr.tar
ahl='^I(SM|SI|SN|SS)'
case $hh in
00|06|12|18)
ahl='^I(SM|SI|SN|SS|UP|UJ|US|UK)'
;;
*)
ahl='^I(SM|SI|SN|SS|UP|UJ|UK)'
;;
esac
imgopt=
if test -f $nwp/bin/run-dst.sh
then
if bash $nwp/bin/run-dst.sh
then
imgopt=-HIMDST:$(echo himdst*.png)
fi
fi
ymdhns=$(ruby -rtime -e 'puts(Time.parse(ARGV.first).utc.strftime("%Y%m%d%H%M%S"))' $basetime)
if test -d $nwp/p1/nowc/$ymdhns
then
ln -f $nwp/p1/nowc/$ymdhns/surf_hrpns$ymdhns.png surf_hrpns${ymdhns}.png
imgopt="${imgopt} -HRPNS:surf_hrpns${ymdhns}.png"
else
logger --tag plot --id=$$ -p news.err -- "nowc $nwp/p1/nowc/$ymdhns missing"
fi
gpvtime=$(ruby -rtime -e 'puts((Time.parse(ARGV.first)-3600*6).utc.strftime("%Y%m%dT%H"))' $basetime)
gpvbase=$(ruby -rtime -e 'puts(Time.parse(ARGV.first).utc.strftime("%Y%m%dT%H%MZ"))' $basetime)
if test -d $nwp/p1/jmagrib/${gpvtime}Z
then
for ve in msl_Pmsl z10_Pres p100_WINDS p200_Z p200_WINDS p250_rDIV p300_Z p300_WINDS p500_Z p500_T p500_rVOR p700_RH p700_VVPa p850_Z p850_papT p850_WINDS p925_Z p925_papT p925_WD sfc_RAIN z10_WD z2_T p925_WINDS z10_WINDS p500_WINDS p100_WD p200_WD p300_WD p500_WD
do
if test -f $nwp/p1/jmagrib/${gpvtime}Z/v${gpvbase}_f006_${ve}.png ; then
ln -f $nwp/p1/jmagrib/${gpvtime}Z/v${gpvbase}_f006_${ve}.png .
fi
done
if test -f $nwp/p1/jmagrib/${gpvtime}Z/gsm${gpvtime}.txt ; then
ln -f $nwp/p1/jmagrib/${gpvtime}Z/gsm${gpvtime}.txt .
fi
fi
if test -f $nwp/bin/run-detac.sh
then
bash $nwp/bin/run-detac.sh || :
fi
ruby $nwp/bin/bufrsort LM:6,FN:zsort.txt z.curr.tar:AHL="$ahl" > bufrsort.log 2>&1
obsfiles=zsort.txt
if test -f zloctac.txt ; then
obsfiles="$obsfiles zloctac.txt"
fi
if test -f gsm${gpvtime}.txt ; then
obsfiles="$obsfiles gsm${gpvtime}.txt"
fi
ruby $nwp/bin/distillobs.rb $obsfiles >| zmerge.txt
ln zmerge.txt sfc${bt}.txt
sfcopt=''
if test -f v${gpvbase}_f006_z10_WINDS.png ; then
sfcopt="${sfcopt} -GPV1:v${gpvbase}_f006_z10_WINDS.png"
fi
if test -f v${gpvbase}_f006_p700_RH.png ; then
sfcopt="${sfcopt} -GPV2:v${gpvbase}_f006_p700_RH.png"
fi
if test -f v${gpvbase}_f006_z10_Pres.png ; then
sfcopt="${sfcopt} -GPV3:v${gpvbase}_f006_z10_Pres.png"
fi
if test -f v${gpvbase}_f006_msl_Pmsl.png ; then
sfcopt="${sfcopt} -GPV4:v${gpvbase}_f006_msl_Pmsl.png"
fi
if test -f v${gpvbase}_f006_sfc_RAIN.png ; then
sfcopt="${sfcopt} -GPV5:v${gpvbase}_f006_sfc_RAIN.png"
fi
if test -f v${gpvbase}_f006_z10_WD.png ; then
sfcopt="${sfcopt} -GPV6:v${gpvbase}_f006_z10_WD.png"
fi
if test -f v${gpvbase}_f006_p925_papT.png ; then
sfcopt="${sfcopt} -GPV7:v${gpvbase}_f006_p925_papT.png"
fi
ruby $nwp/bin/sort2sfcmap.rb $imgopt $sfcopt -WD:$wdbase $basetime sfcplot${bt}.html zmerge.txt
levels=''
case $hh in
00|12)
levels='925 850 700 500 300 200 100 50'
;;
06|18)
levels='925 850 700 500 300'
;;
*)
levels='925 850'
;;
esac
for pres in $levels
do
upropt=''
case $pres in
925|850)
if test -f v${gpvbase}_f006_p${pres}_papT.png ; then
upropt=-GPV1:v${gpvbase}_f006_p${pres}_papT.png
fi
if test -f v${gpvbase}_f006_p${pres}_WINDS.png ; then
upropt="${upropt} -GPV2:v${gpvbase}_f006_p${pres}_WINDS.png"
fi
if test -f v${gpvbase}_f006_p${pres}_Z.png ; then
upropt="${upropt} -GPV3:v${gpvbase}_f006_p${pres}_Z.png"
fi
if test -f v${gpvbase}_f006_p${pres}_WD.png ; then
upropt="${upropt} -GPV4:v${gpvbase}_f006_p${pres}_WD.png"
fi
if test -f v${gpvbase}_f006_p${pres}_T.png ; then
upropt="${upropt} -GPV5:v${gpvbase}_f006_p${pres}_T.png"
fi
;;
700)
if test -f v${gpvbase}_f006_p${pres}_RH.png ; then
upropt=-GPV1:v${gpvbase}_f006_p${pres}_RH.png
fi
if test -f v${gpvbase}_f006_p${pres}_VVPa.png ; then
upropt="${upropt} -GPV2:v${gpvbase}_f006_p${pres}_VVPa.png"
fi
;;
100|200|300|500)
if test -f v${gpvbase}_f006_p${pres}_WINDS.png ; then
upropt="-GPV1:v${gpvbase}_f006_p${pres}_WINDS.png"
fi
if test -f v${gpvbase}_f006_p${pres}_T.png ; then
upropt="${upropt} -GPV2:v${gpvbase}_f006_p${pres}_T.png"
elif test -f v${gpvbase}_f006_p${pres}_WD.png ; then
upropt="${upropt} -GPV2:v${gpvbase}_f006_p${pres}_WD.png"
fi
if test -f v${gpvbase}_f006_p${pres}_Z.png ; then
upropt="${upropt} -GPV3:v${gpvbase}_f006_p${pres}_Z.png"
fi
if test -f v${gpvbase}_f006_p${pres}_rVOR.png ; then
upropt="${upropt} -GPV4:v${gpvbase}_f006_p${pres}_rVOR.png"
fi
if test -f v${gpvbase}_f006_p250_rDIV.png ; then
upropt="${upropt} -GPV5:v${gpvbase}_f006_p250_rDIV.png"
fi
if test -f v${gpvbase}_f006_p700_RH.png ; then
upropt="${upropt} -GPV6:v${gpvbase}_f006_p700_RH.png"
fi
;;
esac
ruby $nwp/bin/sort2uprmap.rb $imgopt $upropt -WD:$wdbase $basetime \
p${pres} p${pres}plot${bt}.html zmerge.txt
done
rm -rf z*
cd $base
test ! -d ${bt}-plot || rm -rf ${bt}-plot
mv $jobwk ${bt}-plot
rm -f curr
ln -s ${bt}-plot curr
exit 0