| 
 
	积分6817贡献 精华在线时间 小时注册时间2015-4-22最后登录1970-1-1 
 | 
 
 
 楼主|
发表于 2016-1-21 16:12:24
|
显示全部楼层 
| 我再具体说一下情况:
 经过处理,我生成了两个文件,一个是二进制的站点资料temp.grd(3917kB),还有一个是格点文件(背景场)grid.grd(8859kB)。书上介绍了用这两个文件如何插值并画图,我模仿书上的内容,也能画出图。画图的gs文件:
 'reinit'
 'open e:\data1\temperature160\grid.ctl'
 'open e:\data1\temperature160\temp.ctl'
 'enable print e:\data1\temperature160\tu1.gmf'
 'set grads off'
 'set grid off'
 'set mpdset cn'
 'set t 1'
 'define a=oacres(tt,temp.2)'
 'define a1=maskout (a,tt-0.5)'
 'define aa=smth9(a1)'
 'set xlopts 1 10 0.18'
 'set ylopts 1 10 0.18'
 'set gxout shaded'
 'd aa'
 'set cthick 8'
 'set clopts 1 6 0.1'
 'set gxout contour'
 'set cint 50'
 'd aa'
 'set cint 50'
 'cnbasemap aa'
 'print'
 'disable print'
 ;    画出的图为图1
 
 
 但是书上并没有把站点资料插值到格点文件后的格点资料输出形成一个文件。然而我想生成站点资料对应的格点资料的文件,因为还需要进一步用到这个数据。于是我就写了一个gs文件,目的是把二进制站点资料插值到格点文件上并输出。
 gs文件如下:
 'reinit'
 'open e:\data1\temperature160\grid.ctl'
 'open e:\data1\temperature160\temp.ctl'
 'set fwrite e:\data1\temperature160\tempgriddata.grd'
 'set gxout fwrite'
 'set lon 70 140'
 'set lat 15 55'
 'set t   1 779'
 'set lev 0'
 'define a=oacres(tt,temp.2)'
 'define a1=maskout(a,tt-0.5)'
 'define aa=smth9(a1)'
 'd aa'
 'disable fwrite'
 ;
 
 这样我就生成了一个格点资料tempgriddata.grd(8859kB),奇怪的是,这个格点资料的大小和格点文件(背景场)的大小一样的,我以为格点资料的文件会大一些,不过也有可能就是一样大。于是我就用这个生成的格点资料画图,如果能画出正常的图,说明这个生成的格点资料是对的。
 我画图的描述文件(tempgriddata.ctl)如下:
 dset e:\data1\temperature160\tempgriddata.grd
 undef -999.0
 title 3
 xdef 71 linear 70 1
 ydef 41 linear 15 1
 zdef 1  linear 0 1
 tdef 779  linear Jan1951 1mo
 vars 1
 temp 0 99 grid data
 endvars
 
 我画图的gs文件如下:
 'reinit'
 'open e:\data1\temperature160\tempgriddata.ctl'
 'set grads off'
 'set grid off'
 'set mpdset cn'
 'set t 1'
 'enable print e:\data1\temperature160\x1.gmf'
 'set xlopts 1 10 0.18'
 'set ylopts 1 10 0.18'
 'set cthick 8'
 'set clopts 1 6 0.1'
 'set gxout shaded'
 'd temp'
 'set gxout contour'
 'set cint 50'
 'd temp'
 'set cint 50'
 'cnbasemap temp'
 'print'
 'disable print'
 ;    画出的图为图2
 
 
 我不知道问题出在哪儿,麻烦大神指点,谢谢!
 
 
 | 
 
图2   
图1    |