#!/bin/sh PATH=/bin:/usr/bin:/usr/local/bin cd `dirname $0` r=X case "${1}-${2}-${3}-${4}" in 20[0-9][0-9]-[01][0-9]-[0123][0-9]-[012][0-9]) : ;; *) echo "usage: sh $0 YYYY mm dd HH" ; exit 1 ;; esac yygg=$3$4 : find basetime vt=`ruby -e 'puts Time.gm(*ARGV.map{|s| s.to_i}).to_i' $1 $2 $3 $4` let "h12 = 3600 * 12" zipf='missing' for ofs in 0 1 2 3 do let "bt = ( vt / h12 - ofs ) * h12" : $bt set -- `ruby -e 'puts Time.at(ARGV.first.to_i).strftime("%Y %m %d %H")' $bt` zipf=/var/www/html/wisdata/arch/jmagrib/$1$2/jmagrib$1$2$3$4$r.zip if [[ -f $zipf ]]; then break fi zipf='missing' done if [[ ! -f $zipf ]]; then echo GRIB archive not found exit 1 fi let "ft = vt - bt" : bt=${bt} \("$*"\) ft=${ft} let "fday = ft / 86400" let "fdaymod = ft % 86400" : fday=$fday fdaymod=$fdaymod case $fday in 0) a2='[AE]' ;; 1) a2='[EI]' ;; 2) a2='[IK]' ;; *) echo too long fcst $fday days; exit 1 ;; esac unzip -p $zipf "A_H[UV]${r}${a2}98*" > z.dump wgrib z.dump -s | sed 's/:anl:/:00hr fcst:/' | sort -t : -k 4,6 > z.inv wgrib z.dump -i -bin -o z.bin < z.inv > /dev/null ruby selguess.rb z.bin guess-japan.txt $fdaymod 86400 $yygg > zbogus.txt rc=$? if [[ $rc = 0 ]]; then rm -f z.dump z.inv z.bin fi exit $rc