【转】grads中画站点图

(2009-05-15 14:28:08)
标签:

杂谈

 

 

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'

                

原文地址:https://www.cnblogs.com/HOUST/p/3021960.html