GrADS站点资料的使用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
GrADS站点资料的使用
台站型离散资料画图的一般原则
1、把台站资料r.dat写成二进制文件r.grd
一般而言,台站资料都是文本格式的,须用专门的程序写成带有站号、经度、纬度等的二进制文件。
例如:对某一时次的降水资料r.dat有如下形式:
lon lat Precipitation
119.8 30.6 0
119.8 30.616 0
119.8 30.632 0
119.8 30.648 0
119.8 30.664 0
119.8 30.68 0
119.8 30.696 0
119.8 30.712 0
119.8 30.728 0
119.8 30.744 0
119.8 30.76 0
119.8 30.776 0
。。。。。。
该数据只有一个时次
则相应的程序stn.f如下:
parameter(n=10201)
integer r1(n)
real lat(n),lon(n),r(n)
character*8 zh(n)
open(1,file='d:\common\1.txt',form='formatted',status='old')
do i=1,n
read(1,*)lon(i),lat(i),r1(i)
r(i)=r1(i)
enddo
do i=1,n
zh(i)=char(i)
enddo
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
open(9,file='d:\common\r.grd',form='binary',status='unknown')
open(99,file='d:\common\rr.txt')
do 100 i=1,n
tim=0.0
nlev=1
nflag=1
write(9)zh(i),lat(i),lon(i),tim,nlev,nflag
write(9)r(i)
write(99,200)lon(i),lat(i),r(i)
200 format(f8.3,f8.3,f6.2)
100 continue
nlev=0
write(9)zh(i-1),lat(i-1),lon(i-1),tim,nlev,nflag
close(9)
! do i=1,160
do i=1,n
if(r(i).lt.0.0)then
write(*,*)lon(i),lat(i),r(i)
endif
enddo
! write(*,*)i,zh(5000),lat(5000),lon(5000),tim,nlev,nflag,r(5000)
pause
! enddo
end
2、编写r.grd数据的数据说明文件r.ctl
dset d:\common\r.grd
dtype station
stnmap d:\common\r.map
undef -999.0
title station data
tdef 1 linear jan1998 1mo
vars 1
r 0 99 grid data prepared for oacres function
endvars
3、用r.ctl生成r.map文件
实际上,是在GrADS中运行可执行文件stnmap.exe,如何运行
对于自带显示窗口的GrADS1.8版本的:
进入命令窗口后,在提示符下输入“!stnmap”
ga_>!stnmap
在出现的信息提示处输入r.ctl
Enter stn ctl filename: D:\r.ctl
4、生成格点文件
因为GrADS只识别格点数据,所以需要把站点上的资料通过插值函数插值到某个格点文件上才能被识别。
根据r.dat提供的信息来写格点文件grid.grd(二进制)
要求:(1) grid.grd文件的精度要高于或等于r.dat的精度
(2) grid.grd文件的范围要大于或等于r.dat的范围
(3)grid.grd文件的每个点上均赋值1(范围与r.dat相同)
(4)当grid.grd文件的范围大于r.dat的范围时,除了相同范围的每个点赋值为1外,其余外围的点也都赋值为1
(5)grid.grd文件的时间一定要与r.dat时间一致!!!
生成grid.grd文件的程序grid.for
!!!!!!!!1
parameter(n=31)
real lat(n),lon(n)
real s(n,n)
open(1,file='d:\common\grid.grd',form='binary')
lat(1)=30.0
lon(1)=119.0
do i=1,n-1
lat(i+1)=lat(i)+0.1
lon(i+1)=lon(i)+0.1
enddo
do i=1,n
do j=1,n
s(i,j)=1
enddo
enddo
write(1)s
end
5、编写grid.grd的.ctl文件:grid.ctl
dset d:\common\grid1.grd
undef -999.0
title Sample GRIB Data
xdef 71 linear 70 1
ydef 41 linear 15 1
zdef 1 linear 1000 1
tdef 1 linear jan1998 1mo
vars 1
g 0 99 grid data prepared for oacres function
endvars
6、把r.grd插值到grid.grd的网格点上,并画图
示范.gs文件如下: