1.把不規則的數據按照其經緯讀寫成stream型data(其fortran程序如下)
parameter(n=160)
character*8 stid(n),sti(n)
real rlat(n),rlon(n),rval(n)
!************************************************read rlat rlon
open(9,file='D:\staistics\eof\rain1.txt')
do i=1,n
read(9,*) stid(i),rlat(i),rlon(i)
enddo
close(9)
!write(*,*) rlon
!*****************************************************read rval
open(10,file='D:\matlab7\sha\ryu2.txt')
do i=1,n
read(10,*) rval(i)
enddo
close(10)
!write(*,*) rval
!***************************************************write rain.dat
open(11,file='D:\matlab7\sha\ryu2.dat',form='unformatted',recordtype='stream')
!form='unformatted', so write should be writed as write(fid)
tim=0.0
nlev=1
nflag=1
do i=1,n
write(sti(i),'(i8)') i
write(11) sti(i),rlat(i),rlon(i),tim,nlev,nflag,rval(i)
write(*,*) sti(i)
enddo
nlev=0
write(11) sti(n),rlat(n),rlon(n),tim,nlev,nflag
close(11) !無格式的寫入write()只需要一個參數
end
2.根據1生成的ryu2.dat寫站點數據的描述文件ryu2.ctl
dset D:\parter\ryu2.dat
dtype station
stnmap D:\parter\ryu2.map
undef -999.0
title eof
tdef 1 linear jan1995 1mo
vars
r 0 99 rainfall data
endvars
3.生成ryu2.map
在grads中運行ga>!stnmap -i ryu2.ctl ga>!stnmap可以得到相關的命令
或者dos命令中運行win32>stnmap -i ryu2.ctl 都可以生成ryu2.map
通過在grads中運行 ryu2.ctl 看是否有站點數據在圖中顯示來判斷ryu2.map或ryu2.dat的正確性
4.插值
需要一個格點文件dat和相應的描述文件,其描述文件h.txt的分辨率應設與需要的站點圖相當
'reinit'
'enable print D:\wave\eof\outdata\u1.gmf'
'open D:\wave\eof\outdata\u1.ctl'
'open D:\wave\eof\outdata\grib.txt'
'set lon 95 135'
'set lat 18 48'
'd oacres(hgt.2,r,20,10,7,5,3,2,1)' 其中數字為插值半徑
'print'
'disable print'