OpenGrADS中RE函数使用需注意范围设置

 

昨晚在帮别人做一个插值然后输出的程序,由于用的GrADS版本里面还没有lterp函数,因此就用了OpenGrADS里面的RE函数,该函数的具体解释见这里:

http://www.opengrads.org/doc/udxt/re/

其实官方的介绍是很清楚的,但是在使用的时候还是尤其要注意两点:

1、插值的原始范围要大于目标范围,否则目标范围内缺少的部分会用缺测值 代替,比如要把全球的1X1分辨率的区域插值为(-140, 20) t到(-40, 70)2.5分辨率的,就需要将插值的范围设置为比这个区域大,比如直接设置 set lon -180 180,set lat -90 90。

2、如果用了set gxout fwrite输出结果,有一点尤其要注意,比如下面的语句:

‘set gxout fwrite’

‘set fwrite ….’

‘set lon -180 180′

‘set lat -90 90′

‘set t 1′

‘set z 1′

‘define res=re(rain,40,linear,-138.75,2.5,20,linear,21.25,2.5,bl)’

‘d res’

‘disable fwrite’

…..

看起来是不是还挺顺的,插值范围完全符合要求,但是会发现,这样算出来的结果是不对的,从文件大小就能判断出来,实际得到的文件大小是大于应得的文件大小的,好像是多输出了些什么!

后来发现,在fwrite中输出res变量的话必须需要直接d,而不是先define然后再d,也就是把上面的’d res’删掉,把define res=改成d 这样就可以了!

 

OpenGrADS中RE函数使用需注意范围设置:等您坐沙发呢!

发表评论

点击正确的图片来提交评论:
快捷键:Ctrl+Enter