GrADs中的函数
- 格式:pdf
- 大小:70.88 KB
- 文档页数:2
收稿日期:2002-11-1作者简介:高文良,男,31岁,主要从事短期气候预测等研究工作。
气象绘图软件GrADS 高级使用技巧高文良1 刘晓燕2 曾小东3(11成都高原气象研究所 成都 610072; 21阿坝州金川县气象局 62410031阿坝州马尔康县气象局 624000)摘 要:本文通过介绍气象绘图软件GrADS 使用中的一些高级技巧,分析了GrADS Script 语言中的难理解之处,并介绍了在GrADS 中做合成分析和t 检验的程序,可以对学习和使用GrADS 的科研人员起参考、帮助作用,达到事半功倍的效果,促进GrADS 软件的应用更广泛、深入,提高科研人员的工作效率。
关键词:GrADS ;技巧;程序中图分类号:TP391文献标识码:C文章编号:1003-7187(2002)04-0057-031 引言气象绘图软件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 (Grid Analysis and Display System)讲义(10)GrADS 描述语言及编程一、描述语言概述描述语言是GrADS软件包中自带的高级语言,可以用于GrADS的高级操作,更方便地使用GrADS的功能。
通过描述语言可以编写具有复杂功能的命令集(即gs文件)。
二、gs文件中的两类型语句1)描述语句:不用引号,需要经过编译的。
2)指令性语句:GrADS命令,需用引号括起来。
通过描述语句来控制指令描述语言用到指令性语句中要用引号,即,i=1‘set t ‘i’’(或者‘set t ’ i )三、描述语言程序特点1、程序通过GrADS的run命令来编译执行;run file-name options2、可以有变量、流程控制也可以执行GrADS 的命令。
3、描述语言可以1)编写函数子程序,2)制作屏幕菜单,3)可以显示动画图形,4)可以使用从GrADS的query命令中得到的信息作注释等。
3、描述语言的所有变量都是字符串型的,描述变量可以进行计算。
流程控制是通过if/else/endif和while/endwhile语句块实现。
循环过程可以用continue或break命令改变。
变量中包含的或者由表达式结果产生的字符串可以作为GrADS命令项使用。
而由GrADS命令执行后产生的文字结果可以读入变量并在描述语言程序中使用。
描述语言也支持函数子程序功能。
四、描述语言的组成1、一个描述语言程序是由许多语句组成,每个语句之间由换行号或分号分隔。
2、下面是GrADS描述语言中语句的类型:赋值语句If / Else / Endifwhile / endwhilebreak / continuefunction header / returnsay / pull3、描述表达式描述表达式是由运算对象和运算符组成。
运算对象:描述变量、子程序函数或常数;运算符:数学、逻辑或连结运算符。
下面分别介绍变量、运算符、表达式4、描述语言变量1)构成变量名是由1至8个字符组成,以字母开头,仅可以包含字母和数字,变量名区分大小写。
目录前言 (5)第一章启动GrADS 及打开文件 (5)一.启动GrADS (5)二.打开文件 (6)第二章维数环境 (6)set lat|lon|lev|time val1<val2> (6)set x|y|z|t vall <val2 > (6)第三章显示命令及动画 (7)一、显示命令 (7)二、动画 (7)set loopdim x︱y|z|t (7)set looping on|off (7)第四章图形输出类型 (8)对格点数据: (8)bar: 直方图 (8)barb:风向杆形式绘二维风场 (8)contour:二维等值现图 (8)errbar:单线图及误差分布 (8)frgid:用指定颜色填充二维格点场 (8)fwrite:图形不在屏幕上显示,而是将输出结果存入一个由“set fwrite 文件名”所指定的文件中。
(8)gid:以网格形式在各网点中央标出该点数值 (8)line:单线图 (8)linefill:两单曲线之间填色 (8)scatter:散点图 (8)shaded:二维填色图 (8)stat:输出有关的统计量 (8)stream:流线形式绘二维风场 (8)vector:向量间箭头形式绘二维风场 (8)对站点数据: (8)barb:在各站点绘风向标 (8)findstn:搜索最近的站点(详见描述语言部分) (8)model:以天气图形式将天气观测各分量填放在站点四周 (8)value:在各站点标值 (8)wxsym:绘wx天气符号 (8)Draw wxsym symbol x y size<color<thicks>> (9)对于model,命令为set gxout model ,然后再添图,形式为displayu;v;t;d;slp;delta;cld;wx;vis (9)第五章 GrADS资料格式 (9)格点资料资料描述文件 (9)以下是一个资料描述文件的例子: (9)1、DSET data-set-name (11)2、TITLE string (11)3、UNDEF value (11)4、OPTIONS <keywords> (12)5、XDEF number<LINEAR start increment>或XDEF number<LEVELS value-list> (12)6、YDEF number mapping start<increment>或YDEF number<LEVELS value-list> (13)7、ZDEF number mapping <start increment>或ZDEF number<value-list> (13)8、TDEF number LINEAR start-time increment (14)9、VARS number (14)二. 台站资料资料描述文件 (15)第六章变量名和表达式 (15)一、变量名和表达式 (15)二、表达式 (16)第七章函数 (16)一. aave函数 (16)二.abs函数 (16)三.acos函数 (17)四、asin函数 (17)五、atan2函数 (17)六、ave函数 (17)七、cdiff函数 (17)八、const函数 (18)九、cos函数 (18)十、exp函数 (18)十一、gr2stn函数 (19)十二、hcurl函数 (19)十三、hdivg函数 (19)十四、log函数 (19)十五、log10函数 (19)十六、mag函数 (19)十七、maskout函数 (20)十八、oacres函数 (20)十九、pow函数 (20)二十、sin函数 (20)二十一、skip函数 (20)二十二、smth9函数 (21)二十三、sqrt函数 (21)二十四、stnave函数 (21)二十五、stnmin函数 (21)二十六、stnmax函数 (21)二十七、tan函数 (22)二十八、tloop函数 (22)二十九、tvrh2q函数 (22)三十、tvrh2t函数 (22)三十一、vint函数 (23)第八章图形要素设置 (23)对于图形类型为contour起作用的设置 (23)set ccolor color——设置等值线颜色 (23)set ccolor rainbow——设定等值线颜色用彩虹表示 (23)set cstyle style——设定等值线线型 (23)Set cthick thckns——设定等值线线宽hckns(取值范围1~20) (23)Set cterp on|off——设置样条差值光滑开关 (23)Set clab on|off|forced|string|auto——控制等值线的标记方式。
GrADS的函数分两类,
一类是对格点/站点数据执行运算的,这一类我们姑且称之为分析函数;
另一类是脚本编程(gs)时使用的,这后一类我们姑且称之为脚本函数.
第一类分析函数又分为格点分析和站点分析两个子类:
1)格点分析
绝对值abs(expr)
余弦/反余弦cos(expr)acos(expr)
正弦/反正弦sin(expr)asin(expr)
正切/反正切tan(expr)atan2(expr1,expr2)[expr1/expr2]
指数exp(expr)
对数log(expr)log10(expr)
幂函数pow(expr1,expr2)expr1expr2
直角三角形的弦长/全风速mag(u_expr,v_expr)sqrt(u*u+v*v)
平方根sqrt(expr)
加权/不加权平均ave(expr,dim_expr1,dim_expr2,tincr,{|-b})mean()
加权/不加权区域平均aave(expr,{xdim1,xdim2,ydim1,ydim2|global|g}) amean()
剔除值后时间求平均tmave(undefine_or_weight_expr,expr,texpr1,texpr2)
加权/不加权区域和asum(expr,{xdim1,xdim2,ydim1,ydim2|global|g}) asumg()
质量加权垂直积分vint(ps_expr,expr,top)
普通积分gint(expr)
最大/小值Max(expr,dim1,dim2,tincr)min()
最大/小值所在格点Maxloc(expr,dim1,dim2,tincr)minloc()
空间相关/回归scorr(expr1,expr2,{xdim1,xdim2,ydim1,ydim2|global| g})sregr()
时间相关/回归tcorr(expr1,expr2,tdim1,tdim2)tregr()
常数const(expr,const,{|-u|-a})
剔除maskout(expr,mask_expr)
跳点skip(expr,skip_x,skip_y)
加权9点平滑smth9(expr)1-D3点平滑
中央差分cdiff(expr,dim)
时间循环tloop(expr)
极值位置maxloc(expr,dim1,dim2,tincr)minloc()
特征值位置findlvl(expr,expr_to_find,lev1,lev2)
气象上物理量计算的函数:
虚温,相对湿度求比湿tvrh2q(tv_expr,rh_expr)g/g
虚温,相对湿度求温度tvrh2t(tv_expr,rh_expr)degK
垂直涡度hcurl(u_expr,v_expr)
中央差求水平散度hdivg(expr1,expr2)
全风速mag(u_expr,v_expr)
2)站点分析
从格点插到站点gr2stn(grid_expr,{stn_expr|lon,lat},-a)
收集生成格点场coll2gr(cnum,{num|-u})
Cressman插值oacres(grid_expr,stn_expr,radii,1st_guess)
网格平均oabin(grid_expr,stn_expr,{-f|-c})
时间平均stnave(expr,dexpr1,dexpr2,-m count)
时间序列最小值stnmin(expr,dexpr1,dexpr2,-m count)
时间序列最大值stnmax(expr,dexpr1,dexpr2,-m count)
转成1-D格点序列s2g1d(expr)
所有数学函数abs,cos,acos,sin,asin,tan,atan2,exp,log,log10,pow,mag,sqrt
第二类,脚本函数包括有:
abs,log,log10:math_abs,math_log,math_log10
sin,cos,tan:math_sin,math_cos,math_tan
asin,acos,atan2:math_asin,math_acos,math_atan
math_sinh,math_cosh,math_tanh
math_asinh,math_acosh,math_atanh
pow,sqrt:math_pow,math_sqrt,math_exp
取整:math_nint,math_int
求余:math_fmod,math_mod
字符串处理函数:math_strlen,valnum,wrdpos,strlen
sublin,subwrd,substr
数值格式转换函数:math_format
文件操作函数:read,write,close。