GRADS学习
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
”Grads”教学中的一些体会
李丽平
目前有很多流行的绘图软件,如MICAPS、Grapher、Excel、GrADS、Surfer、NCL、MATLAB等,不同的软件有其不同的特点和优势。GrADS不仅能够绘制图形、进行简单统计计算、物理量的计算,还可进行数据格式的转换。当前气象学研究中许多格点资料(如NCEP/NCAR和ECWMF资料)均需用GrADS软件进行处理,该软件因此也成为气象、海洋专业科研工作者和高校学生做研究论文使用最广泛的的绘图软件之一,并成为本科生和函授研究生必须选修的一门课程。
GrADS作为一门应用性的课程,内容包含了若干命令,在学时有限的情况下,如何让学生在短时间内掌握其中最核心的内容,做到尽快入门,这是教学中值得研究的一个重要问题。本文是作者根据多年教授GrADS课程的教学经验,从一个宏观的角度去引导学生如何尽快掌握GrADS的精华,这对于初学者的学习起到一个引导的作用,对于已经学习了GrADS 课程,但还未更多使用这一软件的同学,起到进一步理清思路,凝练重点,促进知识巩固的作用。
1 GrADS学习中的几个重点命令
1.1 GrADS作图的一般步骤
GrADS作图一般包括四个步骤,即打开数据描述文件、输入GrADS内部命令、保存图形、退出GrADS。
1.2 几个重要的GrADS命令
1)打开文件的命令(open/sdfopen/xdfopen)
主要用于打开数据描述文件或者数据文件,命令形式为
ga->open data.ctl
ga->sdfopen u.nc
ga->xdfopen wind.ddf
2)查询命令(query或者q)
主要用于查询数据资料的时空结构、变量等信息。
ga->q file 2
ga->q ctlinfo 1
3)关闭数据文件的命令(close)
ga->close 2
ga->close 1
注意要先关闭后打开的文件。
4)设置维数环境(set)
ga->set lon 60 160
ga->set lat 20 50
ga->set time Jul1983
ga->set lev 200
上面的lon、lat、time、lev为地图坐标,也可以换为格点坐标(x\y\z\t)表示。
5)显示和清屏命令
clear(或者c)为清屏命令,display(或者d)为显示命令。
5)定义新变量的命令(define/modify)
ga->define uave=aave(u,t=1,t=50)
ga->modify uave seasonal(uave被定义为气候变量)
6)初始化环境(Reinit/reset)
注意Reinit 和reset的区别,前者是关闭所有文件,重新初始化,后者则是重置初始环境,但不关闭数据文件,reinit常作为Grads命令批处理文件中的第一个命令。
7)GrADS内定的变量
GrADS内定的变量有lon,lat,time,lev,result,rc。巧用这些内定变量可以让绘图变得简单。比如绘制赤道的命令如下,
ga〉set clevs 0
ga>d lat
Result是一个常用的重要的内定变量,GrADS命令的返回值、query(q)命令的查询结果均放在该变量中,比如
ga>d orog
ga>Q w2xy 60 3000
ga>X = 2.35 y= 4.21
“X = 2.35 y = 4.21”这一结果就放在result变量中,2.35、4.21分别为result变量中的第3个、第6个词。可内部函数subwrd从result变量中提取出这两个值,如X1=subwrd(result,3)
X2=sbuwrd(reselt,4)
然后可以进一步在该点确定的坐标处做标记。
8)基础绘图指令
draw命令均用在d之后,用于对图形进行标注或者做标记、连线等。
2 GrADS绘图需要的三类文件
要使用GrADS进行绘图,需要准备三类型文件,即数据文件、数据描述文件(.ctl)、控制文件(.gs)文件。下面对三类型文件进行说明。
2.1数据文件
GrADS能够处理的数据文件常见格式有netCDF(自带描述)、HDF-SDS(卫星资料)、GRIB、Binary(用户自己生成)、站点资料等。NCEP/NCAR和ECWMF资料大多为netCDF 格式,这种格式的数据资料自带描述信息,在GrADS中用sdfopen 命令打开。Binary是GrADS最基本的数据格式,常用文件后缀为.dat、.grd、.bin,需要和数据描述(.ctl)一起使用,是一种无格式文件(form=’unformatted’),存取方式有直接(access=’driect’)和间接(access=’sequential’)两种,间接存取要在.ctl文件中给以特别说明。重点介绍无格式直接存取文件的生成。学生常遇到的问题是如何将ASCII码资料转换为Binary格式,这一过程需要借助于Fortran语言编程实现。需要注意的是,一些初学者经常因为对Fortran语言的不熟练而感到实现这一步比较困难,进而认为GrADS非常难学。事实上,只要认识到Fortran 不过是为GrADS准备资料而已,就不会因此而产生一种学习GrADS的“心理障碍”。
GrADS将数据看作是一个五维数据集(图1),图1中箭头表示编制程序时如何考虑这五维的循环关系,越向右,该维越在外循环。GrADS要求一个x、y数据场构成一个记录,其顺序是从西变到东,从南变到北,从下到上,即实际大数组以二维数据片存放。下面一段程序给出如何将ASCII资料转换为无格式直接存取文件(用Fortran语言实现)的。