知識の箱

主に気象を研究する上で得た知識と、WEBページ作成のために得た知識を記録しています。

wgrbでデータの切り出し

gribのコマンドを使って、grib形式のデータから特定のデータを抜き出す。

基本コマンドは、

> wgrib -i (元のgribファイル) -o (出力ファイル)

でできる。

◎出力するファイルのフォーマットを指定。[ ]にオプションを入れるこでフォーマットを指定できる。

> wgrib -i (元のgribファイル) [  ] -o (出力ファイル)

-grib :grib形式
-bin :バイナリ形式
-text :テキスト形式
-ieee :ieee形式

ヘッダーをつけない場合には、さらに-nhを付ける。
-bin -nh :ヘッダーなしのバイナリ形式
-text -nh :ヘッダーなしのテキスト形式

テキストでヘッダーをつけると、データの最初に格子数がが出力される。

たとえば、
144 73
1.11111
1.11112
1.11113

など。

*ヘッダーありとヘッダーなしで、バイナリ出力した時の読み出し方の違い(fortranサンプルプログラム)

!—————————————-
!ヘッダーなし
!—————————————-
program read_bin
implicit none

integer, parameter :: xgrid=144, ygrid=73
integer :: i, j
real(kind=4), dimension(xgrid,ygrid) :: data

open (unit=11, file=’test.bin’, form=’unformatted’, access=’direct’, recl=xgrid*ygrid*4)

read (unit=11,rec=1) data

do j = 1, ygrid
do i = 1, xgrid
write (6,*) data(i,j)
end do
end do
end program read_bin
!—————————————-

!—————————————-
!ヘッダーあり
!—————————————-
program read_bin
implicit none

integer, parameter :: xgrid=144, ygrid=73
integer :: i, j
real(kind=4), dimension(xgrid,ygrid) :: data

open (unit=11, file=’test.bin’, form=’unformatted’, access=’sequential’)

read (unit=11) data

do j = 1, ygrid
do i = 1, xgrid
write (6,*) data(i,j)
end do
end do
end program read_bin
!—————————————-