气象绘图软件GrADS高级使用技巧

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

收稿日期:2002-11-1

作者简介:高文良,男,31岁,主要从事短期气候预测等研究工作。

气象绘图软件GrADS 高级使用技巧

高文良1 刘晓燕2 曾小东3

(11成都高原气象研究所 成都 610072; 21阿坝州金川县气象局 624100

31阿坝州马尔康县气象局 624000

)

摘 要:本文通过介绍气象绘图软件GrADS 使用中

的一些高级技巧,分析了GrADS Script 语言中的难理解之处,并介绍了在GrADS 中做合成分析和t 检验的程序,可以对学习和使用GrADS 的科研人员起参考、帮助作用,达到事半功倍的效果,促进GrADS 软件的应用更广泛、深入,提高科研人员的工作效率。关键词:GrADS ;技巧;程序中图分类号:TP391文献标识码:C

文章编号:1003-7187(2002)04-0057-03

1 引言

气象绘图软件GrADS (Grid Analysis and Dis 2play System )是免费共享软件,可随时从互联网上下载(http :///grads/),后续版本正陆续推出[1]。GrADS 有丰富的内部函数,可以对数据进行计算和分析处理。它支持处理格点资料和站点资料,并且支持对GriB 码文件、特殊格式文件(如一字节整型、二字节整型、大中型机器二进制数据等)的直接读取,气象科研领域应用非常广泛[2]。在其最新1.8SL 9版本中,GrADS 又将应用领域推进到了海洋学科,功能也得到了进一步地增强和扩展。

但在使用GrADS 的过程中,特别是使用GrADS Script 语言编程当中,有一些问题需要特别注意。因为GrADS Script 语言是一种类似于VB Script (或MA TL AB Script )的高级语言,稍不注意就容易出现错误,且查错十分困难,这点与其他语言有较大的差别。2 站点数据处理

GrADS 中站点数据处理基于格点数据的基础之上,需先将站点数据通过Cressman 客观分析方法内插至格点上,然后再依照格点资料的处理方式对站点资料数据进行分析和处理。所以,内插的背景网格点的选取就显得比较重要。提供背景格点资料数据只起一个背景网格场的作用,格点数据并不参与运算,只提供网格背景,告诉站点数据插至什么点及各个点的距离、综合考虑几个点来插值等信息。

因此,对于需要揭示小尺度特征气象场的站点数据,就需要将背景网格点的间距取得小一些,这样可以将局地小尺度信息完整地体现出来。反之,如果要强调大尺度的信息,就可以将背景格点场的间距取得大一些,将小尺度的噪声滤掉,体现大尺度场的特征。两种方法的最终目的是画出真实而美观的原始数据场的图形。

要将已有的站点数据资料转换成GrADS 可以读取格式的站点数据,也可使用Visual Fortran 6.0或C 语言(Turbo C 、Visual C ++等)进行转换。但必须按照GrADS 的规定格式来变换。数据文件头的结构和定义也必须按规定且与后续数据一致。在Visual Fortran 6.0语言中可以用流式文件(Stream )的方式生成GrADS 需要的站点数据文件,可以写成多时次、多层次和多变量的数据集(在Power Station 4.0中则不能写成多时次和多层次的数据集,它不支持Stream 方式的文件,只能写一个时次的数据)。而在C 语言中的操作更加方便,因为C 语言中对文件的操作方式一般是以字节为单位进行的,没有其他多余的信息。只要按照GrADS 要求的数据格式生成数据,以上的各种语言环境下都能够被GrADS 正确读取。

另一个需注意的问题是在格点文件和站点文件之间,一定使两者的数据描述文件保持时间上的一致性。起始时间和时间步长都要符合数据本身的规定。如果起始时间不一致,在GrADS 中会出现少于两个站的提示,画出的图被标示为缺测值。如果上述两种数据的时间步长不一致,则可能出现错误的结果,导致在一个特定时间下的数据成为另一个时间下的数据,而不是操作者想要的时次。或者图形的结果和前面第一种错误一样,出现全为缺测值的错误情况。

3 Query命令

在GrADS当中,Query命令(可简写为Q)似乎并不重要,有些用户几乎不用它。实际上,Query命令在gs文件编程当中有非常重要的作用。在GrADS中每执行一个命令之后,命令的结果放在re2 sult变量和rc变量之中。result变量储存命令执行的返回字符串信息,而rc变量是一个整数,储存命令的执行结果的数字标识,往往用来指示命令是否成功等信息。这样,在打开文件时,我们可以用Query命令询问打开文件的维数情况、变量情况、空间间距等一系列的信息。对编写一些通用程序起到很大的帮助。

Query命令在GrADS Script语言编程中的重要性非常明显。通过它,可以在gs文件中知道一个命令的执行是否成功,有时还只能通过它来得到命令的执行结果。在进行坐标转换当中,通过Query命令来得到同一个点在不同坐标系下的坐标,从而对数据进一步处理。除此这外,Query命令还可以得到文件的时间信息、变量定义信息、等值线有关信息、光标信息等。

4 G rADS中做合成分析和t检验

通过对以上几点的介绍,我们就可以在GrADS 中做一般数据的合成分析和t检验。在以下的例子中我们假设所用的数据为NCEP/NCAR再分析资料数据集,时间跨度从1949.1到1999.12,垂直方向上为17层、每月一次的全球月平均高度场资料。在程序中以“#”号开头的为注释行及对整个数据集进行操作,不进行中间转换,直接输出图形。在GrADS Script语言中所有变量类型都是字符型的概念非常有助于理解本程序。详细的程序如下:

f unction main(args)

if(args=’’);args=3;endif

#以下分为三个层次(200hPa,500hPa,600hPa)循环进行合成分析

height.1=200;height.2=500;height.3=600

#预先选定的多雨年14年、少雨年13年(n、m)及多雨年、少雨赋值

n=14;m=13

bet.1=1949;bet.2=1956;bet.3=1961;bet.4= 1963;bet.5=1965;bet.6=1967

bet.7=1971;bet.8=1973;bet.9=1974;bet.10 =1977;bet.11=1980;bet.12=1991

bet.13=1997;bet.14=1998

let.1=1954;let.2=1959;let.3=1962;let.4= 1964;let.5=1966;let.6=1968

let.7=1969;let.8=1975;let.9=1976;let.10= 1981;let.11=1987;let.12=1995

let.13=1996

#打开原始数据文件

’open d:\ncep\z\hgt.ctl’

#最外层循环,控制在三个层次(200hPa, 500hPa,600hPa)上的计算、显示

loop=1

while(loop<=args);’set lev’height.loop;

#loop1循环计算多雨年的各合成变量及合成平均

 loop1=1

 while(loop1<=n);

’set time dec’bet.loop1

’be’loop1’=(z+z(t+1)+z(t+2))/3.0’

loop1=loop1+1

 endwhile

 ’be=(be1+be2+be3+be4+be5+be6+be7 +be8+be9+be10+be11+be12+be13+be14)/’n’’#、变量z的多年平均

’zseason=(ave(z,t=12,t=600,12)+ave(z,t =13,t=601,12)+ave(z,t=14,t=602,12))/3.0’#loop2循环计算少雨年的各合成变量及合成平均 loop2=1

 while(loop2<=m)

’set time dec’let.loop2

’le’loop2’=(z+z(t+1)+z(t+2))/3.0’

loop2=loop2+1

 endwhile

 ’le=(le1+le2+le3+le4+le5+le6+le7+le8 +le9+le10+le11+le12+le13)/’m’’

#以下计算在t检验中要用到的中间变量,tt为t分布值,注意pow函数的用法

 ’sum1=0’;loop3=1

 while(loop3<=n)

’sum1=sum1+pow((be’loop3’-be),2)’ loop3=loop3+1

 endwhile

 ’sum2=0’;loop4=1

 while(loop4<=m)

’sum2=sum2+pow((le’loop4’-le),2)’

loop4=loop4+1

 endwhile

 ’temp1=’n’’;’temp2=’m’’;’s=sqrt ((sum1+sum2)/(’n’+’m’-2))’

 ’tt=(be-le)/(s3sqrt(1/temp1+1/ temp2))’

 #图形显示

 ’d be-zseason’;say’t he more rain:at’

相关文档
最新文档