Gribファイルのバイナリ出力には、wgribコマンドを用いる
wgrib <入力gribファイル> | grep ":<入力gribファイルの変数名>:" | wgrib -i -bin -nh <入力gribファイル> -o <出力バイナリファイル>
#!/bin/bash
#Intial settings------------------------
var=PRMSL #variable name (PRMSL, TMP, UGRD, VGRD, SPFH, HGT)
year=2010 #year
start_month=06 #start month
end_month=06 #end month
start_day=01 #start day
end_day=31 #end day
#---------------------------------------
for month in $(seq ${start_month} ${end_month})
do
for day in $(seq ${start_day} ${end_day})
do
for hour in 00 06 12 18
do
if [ ${month} -le 09 ] ; then
mm=0${month}
else
mm=${month}
fi
if [ ${day} -le 09 ] ; then
dd=0${day}
else
dd=${day}
fi
infile=anl_p.${year}${mm}${dd}${hour}
outfile=${var}${year}${mm}${dd}${hour}.bin
num=`wgrib ${infile} | grep ":${var}:" | wgrib -i -bin -nh ${infile} -o ${outfile} | wc -l`
echo "Time="${year}/${mm}/${dd}/${hour}UTC ", Variable="${var} ", Layer num="${num}
done
done
done
複数月に渡って出力する場合に、データがないと"could not open file:"とエラー表示されるが、次のファイルに継続されるだけなので問題なし。
例えば5、6、7月というように出力すると6月は31日がないのでエラーが表示される。