第十章GradsGrADS描述语言及编程_第1页
第十章GradsGrADS描述语言及编程_第2页
第十章GradsGrADS描述语言及编程_第3页
第十章GradsGrADS描述语言及编程_第4页
第十章GradsGrADS描述语言及编程_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、GRADS (Grid Analysis and Display System) 讲义( 10)j GrADS Script 1 ibrary Microsoft Internet Fxplorerr. t? x 1文件E) WfcO S5(Y)收工具(D林敢to沪1 O0圍絵丿撲索F决0 : “H Jv Q存到 w零)YAHOO! Q止LTfl董己过期,2点这里奔到最新的茄也.MGrADS Script LibrarybdSGmao q$O*rlay$ a land or ocean mask ih纵 exactly 伽 the coastal outlines Requires the f

2、oli)wing supplemental data files boiv Igm 9$c and loolv rnres 貓c and loolv hires a$codoIy 1 owes a$c and ooolv mrs ?$c and od(My hiresinstructions in scnpt header for using 恒Qly-WS.銘 Io mask out norUS areascbar Ji and cbarn qsScnpts to draw a long reclangular color legend next to shaded plots cbam h

3、as more features - e g. il draws outlines and triangular endpoints.cbarc Draws a small fan-shaped color legend in the comer of shaded plotscbar 1 q$ cbar line a$ cb Iirc2 Q3Scripts to draw a legend for Ime graphscmaD Q9Creates a color table See additional documemalionconned the dots qsDraws a line c

4、onnecting users mouse clicks.define colors, asDefines a variety of colors using thezrqb command隔 1 dmogsIllustrates the use of a defvai and sec defvai commandsfont a$Displays all the characters in a fom seiisen asDisplays a field interpolated to a specified isentropic levelIats4d.asWntes NelCDF. HDF

5、-SDS or GRI8 files from GrADS See additional domentatior).makeb.gsCreates a background map image that shows topographic texture It requires a DODS-enabled version of GrADS and also uses the external ImageMagick utility combinemap.gsAutomates settings for a vanety of useful map projections.mconv gsCa

6、lculates moislure convergencernnteoaram 9ta as农 2ntenet农 2ntenet!g start ck8:57GrADS 描述语言及编程一、描述语言概述描述语言是GrADS软件包中自带的高级语言, 可以用于GrADS的高级操作,更方便地使用 GrADS 的功能。通过描述语言可以编写具有复杂功能的命 令集(即 gs 文件)。二、gs文件中的两类型语句1)描述语句 :不用引号,需要经过编译的。2)指令性语句:GrADS命令,需用引号括起来。通过描述语句来控制指令 描述语言用到指令性语句中要用引号 ,即, i=1 set t i (或者 set t i

7、 )三、描述语言程序特点1、程序通过GrADS的 run命令来编译执行; run file-name options2、可以有 变量 、 流程控制 也可以执行 GrADS 的命令3、描述语言可以1)编写函数子程序,2)制作屏幕菜单,3)可以显示动画图形,4)可以使用从 GrADS的query命令中得到的 信息作注释等。3、描述语言的所有变量都是字符串型的,描 述 变 量 可 以 进 行 计 算 。 流 程 控 制 是 通 过 if/else/endif 和 while/endwhile 语句块实现。 循 环过程可以用 continue 或 break 命令改变。变量 中包含的或者由表达式结果产

8、生的字符串可以作 为GrADS命令项使用。而由 GrADS命令执行后产生 的文字结果可以读入变量并在描述语言程序中使 用。描述语言也支持函数子程序功能。四、描述语言的组成1、 一个描述语言程序是由许多语句组成, 每个 语句之间由 换行号 或 分号 分隔。2、下面是GrADS描述语言中语句的类型: 赋值语句If / Else / Endif while / endwhile break / continue function header / return say / pull3、描述表达式描述表达式是由 运算对象 和 运算符 组成。 运算对象 :描述变量、子程序函数或常数; 运算符 :数学、逻

9、辑或连结运算符。下面分别介绍变量、运算符、表达式4、描述语言 变量1)构成变量名是由 1 至 8 个字符组成,以字母开头,仅可以包含字母和数字,变量名区分大小写。2)变量内容性质 内容总是一个字符串, 在有些运算中,字符串将被解释为数字。 如果一个变量没有被赋值,那么它的值就是它的名字。如果一个变量或字符串常数是一个具有正确 格式的数字,可以进行某些数学运算,所得结果也 是一个数字字符串。在 GrAD 描述语言中,有两个变量名由其内部 使用: result 和 rc 。尽量避免使用这两个变 量名。3)复合描述变量 描述语言现在支持复合变量,利用它可以在描 述语言程序中构造数组。复合变量名可以是

10、一个由“ ”分隔的多个变量名的复合体。例如:varname.i.j 这时,当变量内容被调用时,如果 i 和 j 也是 变量,那么 i 和 j 的内容将会被 i 和 j 的字符串值 所替代。例如:i = 10j = 3varname.i.j = 343 在这个例子中,赋值语句相当于:varname.10.3 = 343注意: i 和 j 的字符串值可以是任何字符,但varname 必须遵循描述变量名的规则,即:由字母 和数字组成,须字母打头。因此复合变量名被替代 后可以是任何字符串:i = a#$xx varname.i = 343 以上表示是允许的,但不能直接将变量名写为: varname.a

11、#$xx = 343在i、j变量被替代前后,* 复合变量名的整个长度不能超过 16个字符。*在GrADS苗述语言中不能设置过多的变量, 因此,不能利用复合变量产生一个大的数组, 例如: i = 1 while (i大于=大于等于小于, =, , , =, , =&| 如果运算符在同一优先级上,则从左向右计运算对象可以是变量、 字符串常数或子程序函 数调用。注意: 1) 字符型常数用单或双引号括起来。而数值型常数可以不用引号括起来,但GrADS仍然认为是字符串常数。下面是一个字符串常数的例子:This is a string2 )有些情况下, 连结运算符是隐含的 ,当两 个运算对象并列靠在一起,

12、中间没有任何运算符时 (中间可以有空格) ,隐含着中间是一个连结符。 例如:下列两个表达式是等价的。var1%var2%Stringvar1 var2String2 )括号可以改变运算的先后顺序。7、IF语句块*程序执行流程可以通过 if/else/endif 语句控 制,形式为:IF (表达式)描述语言语句描述语言语句else用)描述语言语句描述语言语句可不endif使用) 注意,下列语句是错误的:if (i=10) j=20 你必须写三个语句:if (i=10)j = 20endif 你也可以在同一行上写这三个语句:if(i=10);j=20;endif;if 语句块的执行依赖于表达式的结

13、果,必须如果表达式的结果是一个 0 字符(结果为假) ,则 else 部分就被执行,如果表达式的结果是不为 0 的其它 字符,则执行 if 部分。8、WHILE 语句块while 语句块的格式为:while (表达式) 描述语言语句 描述语言语句endwhile当表达式结果为真, 即:是一个不为 0 的字符, 循环就继续执行。另外两个描述语言命令可以改变循环的执行, break 可以立即中断循环, continue 可以立即跳到 循环体的开头,并重新计算表达式的结果。例如: t = 1 while (t10)set t tdisplay zif (rc!=0); break; endif;t

14、= t + 1endwhile 9、函数及函数子程序 用户可以自己编制函数子程序,也可以使用描述语 言的内部函数。在一般情况下,函数作为描述语言的表达式运 算对象被调用。描述语言函数子程序总是得到一个 单一的字符串结果,但可以有一个或多个字符串自 变量, 它的调用格式为:name(arg,arg,arg.)注意: 1) 函数名遵循变量名的规则,自变量可以 是表达式。2)如果函数子程序没有自变量,你仍然需 要写上一对括号:name()3 )在其它文件中的函数子程序不能调用。 (其它文件中的描述语言程序可以通过 GrADS 的 run 命令执行)4 )可以通过函数子程序的定义语句在描述语言程序中构

15、造自己的函数:function name(variable, variable, .) 要回到调用处,使用 return 语句: return 表达式这里表达式可以省略,如果省略表达式,就返 还一个空字符串(空字符串是 )。函数的结果是 return 语句中表达式的结果。5)调用过程 当一个函数子程序被调用时,首先计算自变 量,然后执行函数子程序,作为函数自变量的变量 的值初始取为传输给自变量的值。如果传输给自变 量的值的个数太少,则其余的变量初始没有值,如 太多,则多余的被舍弃。你可以从函数子程序定义 语句中改变自变量而不改变调用方式。 变量的调用 仅仅在函数子程序内部有效,但全域变量可以在

16、整 个程序中有效。当一个描述语言程序文件被调用时(通过 run 命令),从这个文件的开头开始执行。一个函数子 程序定义语句也可以放在文件的开头,如果这样, 必须定义一个变量名, 这个变量将被任何 run 命令 选项初始赋值, 如果没有 run 命令选项, 这个变量 将初始赋为空字符串。10 、量。11、赋值语句 赋值语句的格式为: 变量名 =表达式 表达式进行运算后,将结果赋予所指定的变人机对话语句 say 语句的语法为: say 表达式 这样,表达式的结果就写在屏幕上: pull 语句的语法为: pull 变量名程序运行到 pull 语句时,执行暂停等待用户 键盘输入,按回车后,输入的内容就

17、赋值给所指定 的变量。14、在描述语言程序中执行 GrADS命令 指令语句仅仅包含一个表达式: 表达式:在描述语言程序中执行 GrADS命令是首先运算表达式,然后将结果字符串作为命令提交给GrADS。注意:1)当语句被执行后,GrADS命令的结果 将输入到描述变量 result (这时, result 的字符 串是GrADS命令执行后显示在屏幕上的内容 )。2)描述变量 rc 中则是 GrADS 命令的返还 码。result 变量中,可能包含几行 GrADS结果字 符串,这可以利用 sublin 函数分离。可以在描述语言环境中执行任何GrADS命令,包括 run 命令。由执行 run 命令而产

18、生的结果字符 串将通过 return 命令从“低层”的描述语言程序 传递回“高一层”的程序中。你可以一层一层地调 用多个描述语言程序,但要能控制不出现死循环而 返还主调程序。五、内部函数目前描述语言中有几个内部函数:1 、substr (string, start, length)这 个 函 数 可 以 从 字 符 串 string 中 从 位 置start 开始截取长度为length 的子字符串。如 果字符串 string 太短,结果字符串就短于 length 或得到一个空字符串。这里, start 和 length 必须是整的字符数目。2、subwrd (string, word)这 个

19、函 数 可 以 从 字 符 串 string 中 截 取 第word 个词(词与词之间由空格分隔),如果字 符串 string 太短,结果是一个空字符串。 word 必须是整数。3、sublin (string, line)这个函数可以从字符串string 中截取第 line 行的字符串 , 如果字符串 string 行数太少,结果 是一个空字符串。 line 必须是整数。4、read (name)读函数,可以读取文件 ame中的一个记录(一行),重复调用同一文件的 read 函数, 将依次 读取文件中的下一个记录。所得结果有两行,第一 行是返还码,第二行是所读记录。每个记录的长度 不能超过

20、80 个字符,可以使用 sublin 函数分离 结果。当第一次调用 read 函数读取一个指定文件时,这个文件就被打开,当描述语言程序执行终结 时文件被关闭。而在文件被多次调用过程中,始终 保持打开状态。返还码是:0 - 正常1 - 打开文件错误2 - 文件结束8 - 打开的文件用于写入9 - 输入、输出错误5、write (name, record )写函数, 当第一次调用 write 函数时, 会生成 一个文件名为ame的文件,并处于打开的写入状 态。如果这个文件早已存在,这个文件会损坏。如 果使用append选项,写入的内容就会接到原来文 件的后面。返还码是:0 - 正常1 - 打开文件

21、错误8 - 打开的文件用于读取。6、close (name)关闭文件名为name的文件。如果你想从一个 刚写的文件中读取记录,那么首先要调用close 函数关闭该文件。返还码是:0 - 正常1 - 文件没有打开六、全域描述变量描述变量通常仅在所在的函数子程序中有 效,全域描述变量可以在整个程序中都有效。它们 是通过文件名的格式来定义是否全域描述变量。任 何变量名前加上一个 下划线( _) 就假设为全域描 述变量,就使它的值在整个程序中都有效(类似于 FORTRA程序中由公用语句块定义的变量)。注意: 全域变量不能用于函数子程序的函数自变 量。 如:下面的用法是不允许的。function dos

22、tuff(_var)七、描述语言程序的自动执行你可以让每个 display 命令前自动执行一个简 单的描述语言程序:set imprun script-name 这个命令通常用于每次执行 display 命令后都 要重新设置的命令,如:set grads off你可以从这个程序中执行任何 GrADS 命令, 但 有时会遇到一些问题,例如:在这个程序中出现一 个 display 命令,这时将会无限制地显示图形。1) open data.ctl set lev 300 enable print stream.gmfi=1while(i=120)set t Id u;v draw title 300

23、hPa stream field No.I c i=i+1endwhile2) reinitopen k:baoxueuwndbdp.ctl file=k:baoxueg.txt set gxout printset prnopts %g 9 3 ud uwndrc=write(file,result)rc=close(file)J3)6) 自定义函数子程序自定义函数子程序是 GrADS编程中的重点也是难点。函数子程序的定义形式为Function name(args)Return(expr)其调用形式有两种 2如 isen.gs ,这种函数子程序要和主程序放在一个文件中,主程序调用形式为1)d

24、 isen ( w,t,pp,320 )2) rc=isen(u,t,pp,320)3) define xs = isen ( w,t,pp,320 )其中, isen.gs 定义内容略。2、另一种是隐式参数传递,如 cbarn.gs, 主程序的调用方式也有两种,若独立保存为一个 cbarn.gs, 其调用方式为 run cbarn.gs(0.8 1 5.5 0.5)若拷贝到主程序所在文件,其调用方式为 rc=colorbar( 0.8 1 5.5 0.5 ) 注意: cbarn 0.8 1.5 5.5 0.5中,0.8 指定了标尺宽度, 0.5 指定了距离横轴的距离下面以绘黑白阴影图型为例,

25、简单介绍如何定义和调用函数子程序,通过该例也可学习如何定义和使 用新的颜色(图 2)。 reinit open d:llpdata.ctl set gxout shaded pp()* 调用自定义的函数子程序ss()* 调用自定义的函数子程序 d smth9(olr) cbarn * 调用已存在的 gs 文件形式的函数子程序,用于绘阴影图标 set gxout contour set clevs -0.06 -0.03 0 0.03 0.06 d smth9(olr) d sst Function pp()*设置新的颜色,颜色号为16-18set rgb 16 50 50 50set rgb

26、17 100 100 100set rgb 18 150 150 150returnFunction ss()*设置阴影图的等值线和所填的颜色 set clevs -0.06 -0.03 0 0.03 0.06 set ccols 17 16 0 0 16 17 return*South Chi na-0.06-0030.030.06图2使用新定义的黑白颜色绘图rei nitope n k:rtsy .ctl en able print k:rtsy .gmf* Dec prepset xlopts 1 4 0.15 set ylopts 1 4 0.15 set clopts 1 4 0.10 set xlab off set axlim -20 50 set yaxis -20 50 10 set xaxis 1951 2007 4 set grid off set t 1 57 a1=34.63 b1=-34.63 set cthick 10 set cstyle 1 set ccolor 1 set cm

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论