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日がないのでエラーが表示される。