GrADS绘图软件使用手册_第1页
GrADS绘图软件使用手册_第2页
GrADS绘图软件使用手册_第3页
GrADS绘图软件使用手册_第4页
GrADS绘图软件使用手册_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

GrADS绘图软件实用手册2002年1月

目录GrADS绘图软件概述GrADS绘图软件简介Internet上的GrADS资源GrADS在Internet上的主页windows环境下GrADS资源GrADS绘图软件的安装(windows环境)在windows环境下安装GrADS软件包Xserver的安装GrADS绘图模板GrADS示例演示1.1启动GrADS1.2退出GrADS1.3示例演示GrADS命令的使用GrADS绘图模板GrADS模板的高级应用GrADS描述语言GrADS高级模板的应用GrADS数据格式格点数据描述文件1.1数据描述文件各项解释1.2生成和文件的程序代码片段站点数据的格式附录如何精确控制图形输出的尺寸—Landscape纸型台站资料的显示Linux环境下的安装

GrADS绘图软件概述GrADS绘图软件简介TheGridAnalysisandDisplaySystem(GrADS)是一套应用广泛、使用方便的科学数据绘图软件包。其主要特点:GrADS属于自由软件,可以从Internet上免费获得。可运行于各种Windows和Unix工作平台。GrADS可用于4D数据的分析。既经度、纬度、层(气压层、高度层等)和时间/xyzt4维。数据可以是格点化的数据或离散点数据。GrADS特别适用于气象类数据的分析。但也完全可以用于更广泛类型的数据分析。GrADS有多种显示方式:等值线、流线、矢量图、风矢量图、站点填图、折线图、直方图等多种两维图形。可处理多种数据格式的数据。GRIB、NetCDF、HDF-SDS等通用数据格式和系统自定义的一种二进制数据格式。采用命令行输入的方式交互式地显示图形。并有多种命令对数据进行再加工。如求平均;计算涡度、散度、垂直积分、计算差分等。图形可以按多种格式存储:ps、png、jpg、tiff、gif、windowsmetafile等。自身以metafile格式存储。提供多种辅助工具软件。如看图、打印、图形格式转换(gv)等工具。Internet上的GrADS资源2.1GrADS在Internet上的主页GrADS主页地址:rg/grads从GrADS主页上可以找到预编译好了的适合于windows环境下的GrADS软件包,和适合于各种UNIX环境下的GrADS软件包。关于GrADS在UNIX环境下的资源请参考附录。 2.2windows环境下GrADS资源G——GrADS软件包安装执行程序。目前在windows环境下最新的版本为GrADS第1.8版。下载GrADS演示数据:从rg/grads/sprite/tutorial下载:model.le.dat和文件;或者GRIB码格式的数据:model.grb、model.gmp和model.ctlGrADS绘图软件的安装(windows环境)在windows下运行GrADS的条件:安装GrADS软件包安装XSERVER软件包在windows环境下安装GrADS软件包运行上述可执行文件(GrADS1.8sl8.win32.exe)进入第一个画面:用鼠标选择“Install”键,进入第二步,显示GrADS的一般信息,选择“OK”进入第三步,显示license信息如下:选择“IAcceptTems”键:进入第四步,要确定最终安装目录。系统显示缺省安装在:“c:\ProgramFile\pcGrADS”目录下。但为了在Dos环境下运行方便,最好不要安装在目录名中有空隔的目录下—如“ProgramFile”。因此这里可改为“c:\pcGrADS”或其它。修改完后用鼠标点击“OK”键安装程序开始安装。安装程序将修改你的autoexec.bat文件中的setpath=(…原path加上);c:\pcgrads\win32(若安装在ProgramFile目录下,c:\progra~1\pcgrads\win32)。安装完后可从“开始”看到如下画面:表示GrADS软件包已安装成功,现在可以开始使用GrADS软件了。Getting_Started和tutorial是入门和初学指南;users是在线帮助手册。 在开始使用前,先来考察一下安装程序在GrADS的目标目录(如上例中的“c:\pcGrADS”)下安装的内容:win32下安装有GrADS的所有可执行程序;dat目录下有运行GrADS所需的字库和地图数据文件;doc目录下存放帮助和说明文件;lib目录下存放了一些有趣的模板。GrADS常用命令列表Grads经典GrADS,支持Grib,NetCDF,IEEE格式的数据。GradsC压缩模式的GrADS,占内存最小。GradsGUI(假)图形界面的。GradsHDF与经典GrADS相当,多增加了HDF-SDS格式。GradsNC与经典GrADS相同。gv32Windows下看图(metafile格式)及格式转换工具。rxvt在Windows下打开一个命名行窗口。 3.2 Xserver的安装 在windows环境下运行GrADS软件包,需要有一个能在PC机上运行的XServer系统支持。这部分软件并不属于GrADS支持范围,因此在GrADS主页上并不能下载。但Internet也有许多这方面的免费软件,如:x-win32、omni、Xmanager等软件。这些软件安装并不复杂,并配有说明文档。本手册以Xmanager作为GrADS的XServer支持系统。Xmgr139e.exe——既为Xmanager的安装执行程序,序列号:018112-136905-999104。安装后即在桌面上生成Xmanager目录图标,用鼠标双击打开该目录:在开始启动GrADS之前,用鼠标双击图标,运行XServer。也可以从开始程序XXmanager来启动XServer。GrADS绘图模板初学者可以通过“初学指南”既参考GrADS软件的“Tutorial”联机帮助文件开始学习。该文档可以以鼠标点击“开始”—>“程序”—>“win32GrADS”—>“tutorial”打开Tutorial”联机帮助文件。运行tutorial的条件需要有一组演示数据:Model.le.dat(数据文件—二进制),Model.le.ctl(描述文件—ASCII码)或Model.grb,Model.ctl,Model.gmp(GRIB码数据)第一组()为模式输出的五天的预报结果;第二组(Model.grb)为同一结果按GRIB格式存储的数据,而*.ctl文件(ASCII码)是对应数据文件的描述文件。GrADS并不直接使用“数据文件”,而是通过“描述文件”间接使用“数据文件”。GrADS中“打开一个数据文件”既是指打开一个数据描述文件。关于GrADS数据格式和用户如何生成该格式的数据,将有专门章节讲述;关于GRIB、NETCDF等数据格式的使用也将有专门论述。以下以第一组(或第二组)数据说明GrADS的使用。在使用数据前,先将数据,和文件存于硬盘上的某一目录下,如c:\pcgrads\sample。首先来了解一下数据的内容。是一组模式输出的全球5天数值预报结果,包括了多个要素、多层,按经纬度网格存放的数据。以下是清单:GrADS示例演示目的:学习GrADS的基本使用方法。介绍GrADS的常用命令。1.1启动GrADS启动xmanager打开一个MS-DOS窗口。在MS-DOS窗口输入命令:cdc:\pcgrads\sample再输入命令:grads,显示如下提示:首先显示GrADS的一般信息,最底行提示是用“Landscape”模式(11X8.5英寸)或portrait(8.5X11英寸—GrADS中长度和大小单位都用英寸)模式显示图形输出窗口。输入L回车或回车是“Landscape”模式;输入P回车是用portrait模式。之后进入GrADS的命令交互模式,等待用户输入命令。此时你的桌面应如下图所示的特征。若想启动GrADS直接进入命令交互模式,输入命令:grads–l,直接进入“Landscape”模式或grads–p,直接进入portrait模式。要获得GrADS命令行帮助,请运行gradsgrads-b以批处理方式运行,不显示图形输出grads-l以“Landscape”模式运行。grads-p以“portrait”模式运行。grads-c进入GrADS后,执行批处理命令文件,显示图形输出。grads-cl以上选项可联合使用。左上角一个窗口是图形显示区,GrADS的所有图形输出结果在此窗口下显示;下部为原打开的MS-DOS窗口,此时正在运行GrADS,提示显示“ga->”,说明正处于GrADS命令等待状态。GrADS的所有命令都只能通过该窗口输出,所有文字信息也都由此窗口输出。GrADS命令采用以下格式:ga->命令<参数<参数,,>,,>输入的参数不包括“<>”符号,“<>”内的部份可以省略。所为的命令交互模式既是在GrADS命令提示符下,一步步输入各种GrADS命令产生各种图形。1.2退出GrADSga->quit1.3示例演示GrADS命令的使用。 例1ga->openmodel.le.ctl进入的第一步,打开一个描述文件(扩展名ctl可省略),GrADS并不直接使用“数据文件”,而是通过“描述文件”间接使用“数据文件”。ga->qfile显示GrADS打开数据的内容,显示结果应与描述文件说明一致。(可以直接运行ga->q显示q命令所代的参数及多项功能解释。)ga->dps显示地面气压(hr)如上图。“d”是“显示”命令,“ps”是文件中定义的变量名称,代表地面气压。例2紧接上例输入以下命令:ga->c清除图面。如不清除图面,GrADS后续显示的图形将与已存在的图形产生叠加。ga->setlat40ga->setlon-90ga->setlev500ga->sett1GrADS视所有物理量为四维数据,以lon|lat|lev|time—称为“世界坐标“或x|y|z|t—称为“网格坐标”。两种方式表示。缺省采用第一种方式,水平(lon|lat)自动认为是经度/纬度坐标。以x|y|z|t方式表示维数时,每一维都是一组从1开始的序列数,对应网格的序号。本例中:x从1到73(代表从00到3600共72个格点,第73个格点即第1个格点);y从1到46(代表从-900到900共46个格点);z从1到7(从1000hPa开始,共7层);t从1到5(5天)运行“openmodel.le.ctl”命令后,lon|lat或x|y是可变的(lon:00~3600;lat:-900~900)。而垂直和时间维取固定值,lev=1000hPa或z=1;hr或t=1。“set维数参数数值1<数值2>”命令改变当前维数设定值。当取“数值1数值2”时,表示该维是变化的;而只取一个值时,表示该维取固定值,对于网格坐标可以是分数值,系统会自动作内插。维数参数一直保持到再次设定时都有效ga->qdimsga->dz显示位于(400N,900W),500hPa层,1hr一点的位势高度。例3紧接上例输入以下命令:ga->c清除图面。ga->setlon-1800ga->dz显示沿400N,,1800W至0度,500hPa层,1hr位势高度剖面图。例4ga->c清除图面。ga->setlat090ga->dz显示西北半球500hPa层,1hr位势高度。Lon、lev、t设定值采用前例使用值不变。例5ga->c清除图面。ga->sett15gaga->dz动画显示西北半球500hPa层,1hr至1hr位势高度。例6ga->c清除图面。ga->setlat-9090ga->setlon-90ga->setlev1000100ga->sett1ga->dt显示沿900W,1000-100hPa温度剖面图。ga->du在上图基础上再叠加上东西风分量。例7ga->c清除图面。ga->setlat40ga->setlon-1800ga->setlev500ga->sett15ga->dz显示500hPa沿400N,高度的时间剖面。例8ga->c清除图面。ga->dsqrt(u*u+v*v)显示500hPa全风速值。或ga->dmag(u,v)GrADS内部定义了多种函数。例9ga->c清除图面。ga->dave(z,t=1,t=5)显示500hPa高度5天平均。ga->dz-ave(z,t=1,t=5)1hr高度与平均的偏差。例10ga->c清除图面。ga->dz-ave(z,x=1,x=72)高度与纬向平均值的偏差。例11ga->c清除图面。ga->dz(t=2)-z(t=1)两个时刻高度的差。或执ga->dz(t+1)-z例12ga->c清除图面。ga->dz(lev=500)-z(lev=700)两个高度间的厚度。或执ga->setz3ga->dz(z+1)-z例13ga->openmodel.ctlga->openmodel.le.ctl同时打开两个文件。ga->dz.2(lev=500)-z.1(lev=700)两个高度间的厚度。或执ga->setz3ga->dz.1(z+1)-z.2结果显示如例12所示在GrADS中一般只简单使用变量名就可以了,但变量名完全定义格式如下:变量名·文件序号(维数参数+/-/=某一数值,…)“变量名”是指用户在“·ctl”文件中定义的变量名称。GrADS可以同时打开多个文件,并为每个打开的文件编一个序列号(从1开始)。上例中,序列号1指model.ctl文件,序列号2指。缺省情况下序列号为1,并可省略。维数参数指lat/lon/lev/time或x/y/z/t。下画线部分可省或部分省略。对于有两个不同文件中的数据作运算时,两种数据网格要一致。例14ga->reinit删除所有设置重新回到刚进入GrADS状态。ga->openmodel.ctlga->setlat090ga->setlon-1800ga->dvint(ps,q,275)作q的垂直质量积分,计算可降水量。vint(ps,q,top)=,ps和top:hPa。例15ga->reset删除open命令后的所有设置。ga->setlat090ga->setlon-1800ga->setlev500ga->dhcurl(u,v)由风场导出涡度场。例16ga->c清除图面。ga->setgxoutshaded以分色图形方式输出。ga->dhcurl(u,v)由风场导出涡度场。ga->’cbarn10’画图例。1:相对长短,>1放大;0:水平;1:垂直。ga->setgxoutcontour以等值线方式输出(缺省方式)。ga->dz叠加500hPa高度场。注意叠加次序。ga->drawtitle500hPaHeightsandVorticity写图标题。例17ga->c清除图面。ga->gxoutvector以箭头方式表示矢量场。ga->du;v;q风矢量场。显示矢量时,dx分量;y分量<;标量>。“<>”内的部分只起标颜色的作用。例18ga->c清除图面。ga->setgxoutstream以流线方式表示矢量场。ga->du;v;q风流线场。例19ga->c清除图面。ga->setgxoutbarb以WMO风标方式表示矢量场。ga->du;v;q风标。例20ga->c清除图面。ga->setgxoutgrid直接输出网格点数值。ga->setdignum0设置保留小数位数。ga->setdigsize0.1设置数字大小(英寸)。ga->du东西风网格点数值。例21ga->c清除图面。ga->setgxoutcontourga->setlat1580ga->setlon-140-40ga->setlev500ga->setmpdrawon如为off,不画地图背景(非经纬度数据需此项)ga->setpolion如为off不画国界省界等。ga->setmapauto由系统自定地图背景的颜色、线型和粗细。而setmapcolor<line_style<thickness>>由用户自定义。ga->setmpvals-140-401580极射投影经纬度范围。ga->setmprojnps北半球极射投影(其它取值:latlon:等比经纬度投影(缺省);scaled:经纬度投影并冲满整个绘图区;sps:南半球极射投影;Lambert:lambert方式投影;robinson:robinson式投影;off:关闭地图投影,缺省是打开的。)ga->setmpdsetmres取值:lowres/mres/hires分别代表可使用低分辨率(缺省)、中分辨率和高分辨率的地图数据库。ga->dz例22ga->c清除图面。ga->gxoutcontourga->setlat-9090ga->setlon-180180ga->setlev500ga->mprojscaledga->mpdsetmresga->dz例23ga->c清除图面。ga->gxoutcontourga->setlat-9090ga->setlon-180180ga->setlev500ga->mprojrobinsonga->mpdsetmresga->dz例24ga->c清除图面。ga->setgxoutcontourga->setlat090ga->setlon-180180ga->setlev500ga->mpvals-1801800-90ga->mprojnpsga->mpdsetmresga->dzga->setgxoutvectorga->du;v;q结果如封面所示。GrADS绘图模板上述使用方法是GrADS的基本使用方法,其特点是在GrADS系统提示符下,用户需要输入一系列的GrADS命令来完成绘画。但很容易造成输入错误,特别是有些命令设定后,如果不再重新设置,是永久有效,而有些命令只是一次有效。如果用户对初次绘画的效果不满意,要增加一些命令反复绘制时,按GrADS的基本方法使用会有许多重复命令,因此效率会很低。增加效率的一种方法是编制“绘图模板”,所为“绘图模板”就是把绘制命令预先编到一个文件中,在GrADS下以批处理方式执行。这种文件被称为“模板”或叫“描述语言”文件—“scripts”。对照上例编制一些简单的模板设计。模板1md01.gs文件清单(对应“例1”)’openmodel.le.ctl’‘dps’;﹡本例中,维数参数采用打开数据文件后的缺省值。﹡模板文件中以“﹡”开始的行是注解行。﹡命令必须用单引号括起来,行尾一定要有回车。﹡作为一种良好习惯,在结尾单独有一行“;”执行模板1:在DOS命令提示符下输入命令:c:\pcgrads\sample\grads–clsample01.gsc:\pcgrads\sample\grads–cl“sample01参数1参数2…”(.gs扩张名可以省略)c:\pcgrads\sample\grads–bclsample01.gs或先进入GrADS,在GrADS命令提示符下输入命令ga->runsample01.gs参数1参数2…或ga->sample01参数1参数2…(在GrADS命令提示符下,可反复执行run命令。但考虑到命令间相互有影响,在GrADS命令提示符下运行多个模板时,之间可以先运行“ga->reinit/reset”命令再运行run命令。)最后退出GrADS在退出前,如果满意,可把图形存于文件。有多种方法:ga->printimfile.pngwhite存于名为“file.png”的文件(png格式)。printim命令格式:ga->printimfile选项1,选项2…选项:gif—为gif存于“file”文件(缺省为。png格式)white—白色背景。black—黑色背景。xnnnynnn—输出图形的水平(xnnn)和垂直(ynnn)大小(点阵)。如:ga->printimfile.gifgifwhitex800y600另一种方式是:ga->enableprintfile-name.gmfga->print执行输出,结果存于file-name.gmf—用户指定的文件,metafile格式,最好代gmf后缀,ga->disableprint只有执行了disable命令后,print命令的结果才真正存于文件。metafile文件可用gv32查看或转换成wmf格式,或用gxps/gxeps转成ps/eps格式。metafile和ps/eps格式图象的印刷效果是最佳的。最后退出GrADSga->quit模板2md02.gs文件清单(对应“例3”‘reinit’’openc:/pcgrads/sample/model.le.ctl’*注意这里路径的使用与DOS不同。也可使用DOS式的路径。‘setlat40’‘setlon-1800’‘setlev500’*‘sett1’*‘setccolor0’*设定颜色[注1]。缺省取前景色。*‘setcmark3’*设定折线图节点标记[注2]。缺省取2。*‘setcstyle1’*设定线型[注3]。缺省取1。*‘setcthick1’*设定线粗细[注4]。缺省取1。*‘setgridon33’*设定是否画网格线[注5]。缺省gridon。‘dz’‘printimsp02.pngwhite’*把图形存于文件[注1]:颜色取值:0:黑;1:白;2:红;3:绿;4:蓝;5:;6:;7:黄;8:桔黄;9:紫;10:黄绿;11:中蓝;12:深蓝;13:;14:深紫;15:灰色。[注2]:标记取值:0:不作标记;1:+;2:○;3:●;4:□;5:■;6:X;7:

;8:△;9:不作标记;10:①。[注3]:线型:1:实线;2:长断线;3:短断线;4:一长一短断线;5:点线;6:点划线;7:点点划线。[注4]:线粗细取值:1-10(个点阵)。取值1-5(含)在屏幕上不显示变化,5以上才显示。因此,对于Printim输出,5以上才显示变化。[注5]:gridon<线型值><颜色值>;画网格,并可指定线型和颜色(之一或全部或按缺省)。gridhorizontal<线型值><颜色值>;只画水平网格。gridvertical<线型值><颜色值>;只画垂直网格。gridoff不画网格。[注6]以“*”开使的命名行表示用户可选择是否使用。许多设置可首先考由GrADS自行决定,如不满意,再由用户自定义,以免画蛇添足。模板3md03.gs文件清单(对应“例4”)’openmodel.le.ctl’‘setlat09‘setlon-1800’‘setlev500’*‘setcint8’指定等值线间隔。*‘setcterpon’样条平滑“ON”或“OFF”。*‘setcsmoothon’*‘setrgb1615622233’用户自定义颜色[注1]。*‘setrgb171562341*‘setccolor16’*‘setclab%.1f’等值线标记方式[注2]。*‘setclskip2每隔一条等值线标记数值。*‘setclopts30.10.2’‘dz/9.8’‘printimmd03.gufgifwhite’;[注1]:‘setrgb用户自定义颜色序号(16到99—1到15系统定义)红绿蓝‘。“红绿蓝”取值范围0-255[注2]:setclabon(等值线标数值)/off(不标记)/forded(强制标记)/%gK(在标记后加上字符K)/%g%%(加上字符%)/%·2f(保留2位小数)/%03·1f(整数部分保留3为,若不足3位,前部用0补齐)模板4md04.gs文件清单(对应“例4”)’openmodel.le.ctl’‘setlat09‘setlon-1800’‘setlev500’*画指定值的等值线。‘setclevs495523534556560564572584588’‘setccols123’可以分别指定以上每一条线的颜色。‘dz/9.8’;模板5md05.gs文件清单:’openmodel.le.ctl’‘setlat09‘setlon-1800’‘setlev500’‘setblack-0.10.1’跳过-0.1到0.1(指0线)不画。*‘setcmin0’不画低于0(含)以下的等值线。*’setcmax0’不画超过0(不含)以上的等值线。‘dhdivg(u,v)*1.e5’散度*‘setblackoff’black设置在运行“d”命令后自动设为“off”。‘setclevs0’特别处理“0”‘setccols1‘setcthick8‘dhdivg(u,v)*1.e5’;模板6md06.gs文件清单(对应“例3”’openc:/pcgrads/sample/model.le.ctl’‘setlat40’‘setlon-1800’‘setlev500’*‘sett1’‘setccolor3’*‘setgridon33’‘setgxoutbar’以直方图方式输出。‘setbargap20’直方图间隔(20%)。‘setbaroptsfilled’在直方图中的矩形中填色;“outline”只画矩形框而不填色。‘setbarbasebottom’直方图中的矩形从底部向上画;“top”从顶部向下画;“给一数值”,从这一数值开始,大于该值的向上画,小于该值的向下画。*GrADS坐标轴设置。GrADS一般自动设置这些值,但也可由用户自定义。*“坐标轴”是指输出图面上的2D坐标,X轴指水平轴,Y轴指垂直轴。*与数据中定义的4D坐标是两个概念。‘setxaxis-180010’设置X轴标记范围。[注1]‘setyaxis5150585050’设置Y轴标记范围。[注1]‘setylint200’设置Y轴标记间隔。[注2]‘setxlint20’设置X轴标记间隔。[注2]‘setxflipon’X轴翻转。[注3]‘setyflipoff’X轴翻转。[注3]‘setxlpos0b’X轴位置。[注4]‘setannot88’坐标轴颜色和线粗细。[注5]‘setxlopts480.2’标记特性。[注6]‘dz’;[注1]:setxaxis开始结束<间隔>/setyaxis开始结束<间隔>;设置X轴/Y轴标记范围,小心!!!“开始<结束”;开始—结束范围要与维数参数的范围一制(setlon-1800)。如不一制,图形数据将没有代表性,此时你给什么,它标什么,而图形不变。如不能预先定出范围,可由先由GrADS自己决定或调整间隔(xlint/ylint)。使用xaxis/yaxis的情况是当你处理非经纬度数据时,你不想用经纬度来标记你的坐标,而GrADS总是把水平坐标处理成经纬度来标记。[注2]:setxlint/ylint间隔,如在此设置间隔,将取代xaxis/yaxis设置的间隔。[注3]:翻转X/Y轴,同时图像也作相应的翻转。[注4]:setxlposoffset(+/-英寸)b(底部)/t(顶部)setylposoffset(+/-英寸)l(左)/r(右)[注5]:setannot颜色〈粗细〉;边框的颜色和线粗细。[注6]:setxlopts/ylopts颜色〈粗细〈大小—英寸〉〉;标记数字的颜色、线粗细和字大小。模板7md07.gs文件清单:’openc:/pcgrads/sample/model.le.ctl’‘setlat160’‘setlon42‘setlev1000100’‘sett3’*分左右放置两幅图‘setvpage05.506’设置虚页面大小(英寸)。‘setxyrevon’坐标轴对调(‘d’命令后自动失效)。‘setannot88’坐标轴特性将一直保持。‘setxlopts410.15’‘setylopts1320.2’‘setzlogon’Z坐标取对数坐标(将一直保持)。‘dt’‘setvpage5.51106‘setxlint10‘setxlopts1310.15’‘setylopts420.2’‘dt’;[注1]:一个物理页是指:水平11英寸X垂直8.5英寸(Landscape)或18.5X11(portrait),其上可以画分出多块区域,实现多图同时输出。Setvpage水平开始结束垂直开始结束模板8md08.gs文件清单:’openc:/pcgrads/sample/model.le.ctl’‘setlat0160’‘setlon42‘setlev7‘sett1’*分左右放置两幅图。左图中Y轴尺度由GrADS自定。‘setvpage05.506’*‘setxyrevon’‘setannot88’‘setxlopts410.2‘setylopts120.2’‘dt’‘setylopts3’‘dz/9.8‘setvpage5.51106*‘setxyrevon’‘setmissonnon’连接断点。‘setylopts1’‘setvrange240330’‘dt’‘dz/9.8‘cbar_l-x2.5-y1.5–t“temp”“heigh”’标图例。-x2.5-y1.5位置;–t“temp”“heigh”标名称。模板9md09.gs文件清单:‘setvpage3803.4*‘setarrlabon’缺省为on‘setarrowhead-0.2*‘setarrscl0.1‘runsp17’‘setvpage383.46.8‘setstrmden3’调节流线密度(1稀—10疏)‘runsp18.gs’例18。‘setvpage386.811*‘setdigsize0.04’‘runsp19.gs’例19。‘printimmd09.pngwhite’sp17.gs文件清单'openc:/pcgrads/sample/model.ctl''setlon-1800''setlat090''setlev500''setgxoutvector''du;v;q'*’dskip(u,2,2);skip(v,2,2);q’skip(变量名,X_skip,Y_skip),通过控制“X_skip,Y_skip”的数值来决定X和Y方向的取样密度(取值1可省略不给)。上例表示u,v在X和Y方向每隔一点取值。对于vector或barb等图形当网格太密时,将无法画,只有通过skip函数调整密度。sp18.gs文件清单'openc:/pcgrads/sample/model.ctl''setlon-1800''setlat090''setlev500''setgxoutstream''du;v;q'sp19.gs文件清单'openc:/pcgrads/sample/model.ctl''setlon-1800''setlat090''setlev500''setgxoutbarb''du;v;q'模板10md10.gs文件清单:‘’‘setlon0180‘setlat30‘setlev500'definezv=ave(z/9.8,lat=20,lat=40)'定义zv代表20~40N纬度带间的平均位势高度。'setgxoutlinefill'*setlfcols23'dz/9.8;zv'在z/9.8和zv两条曲线间填色。当z/9.8<zv时用红色(2);当z/9.8>zv时用绿色(3)。模板11md11.gs文件清单:‘open’‘setlon0180‘setlat090‘setlev500‘setrbcols914411513310712826’设置彩虹色‘dz/9.8*以下给出GrADS一组基本绘图指令的使用方法。‘*第一组:‘setfont2’’setstring1c245’设置字串的颜色、位置、粗细、角度‘setstrsiz0.30.6’字水平大小、垂直大小‘drawstring83firtgroup’在(8,3)位置写字符串”firtgroup”。位置可先运行‘qpos’命令决定。‘drawtitlefirstline\secondline’“\”起分行作用。*第二组:‘setline346’设置线的‘drawline3457’‘drawrec3456’画矩形(3,4),(5,6)对角点‘drawrecf2133’‘drawmark10670.5’‘drawpolyf516264’‘drawwxsym2770.5-18’在(7,7)位置画大小为0.5颜色为-1粗细为8的气象符号‘setrbcols914411513310712826’设置彩虹色。GrADS中的多彩图形都是以此彩虹色—rainbow输出的。但用户也可通过以上方式自定义。另外与此相关的命令还有:setccolorrainbow使用彩虹色;setccolorrerain使用反序的彩虹色;setrbrangelowhigh/setrbrangehighlowsetstrsiz字水平大小<垂直大小>setline线的颜色<线型<粗细>>setstring字串的颜色<位置<粗细<角度>>>位置取以下值:tl/tc/tr/l/c/r/bl/bc/br其中,c代表以起点位置居中;r从起点向右,等等。角度取正值逆时针,取负顺时针转。drawwxsym气象符(1-41)xy大小<颜色<粗细>>颜色取负值时表示将由系统自定。预知每个符号的图形,运行runwxsym.gs,结果如下图:GrADS模板的高级应用模板12md12.gs文件清单—函数和调用在同一文件中:‘’由例21-24,设计通用地图投影图模板。lon1=-140;lon2=-40设置变量,用“;”号分隔或每行定义一个。lat1=15;lat2=80!!!不需用单引号括起来mp=nps*mp=sps*mp=lambert*mp=robinson‘setlev500‘sett1’‘setlon’lon1‘’lon2只有GrADS命令部分需要用单引号括起来。‘setlat’lat1‘’lat2并注意留空格的方式。‘definezz=z/9.8’必须在setlon/lat后定义var=zz注意以上两种“变量定义”方式的不同,不能直接定义var=z/9.8。zz代表了一种新数据,而var=z/9.8只是字符相等。*maps(zz,mp,lon1,lon2,lat1,lat2)maps(var,mp,lon1,lon2,lat1,lat2)调用函数。!!!函数必须在同一文件中。functionmaps(vars,mpj,ln1,ln2,lt1,lt2)定义函数。‘setmpdrawon’‘setpolioff’‘setmapauto’*’setmap556’*‘setmpvals’ln1‘’ln2‘’lt1‘’lt2‘setmproj’mpj‘setmpdsetmres’‘display’vars;模板13—函数和调用不在同一文件中md13.gs文件清单—调用部分:‘’由例21-24,设计通用地图投影图模板。lon1=-140;lon2=-40设置变量,用“;”号分隔或每行定义一个。lat1=15;lat2=80!!!不需用单引号括起来mp=nps*mp=lambert‘setlev500‘sett1’‘setlon’lon1‘’lon2只有GrADS命令部分需要用单引号括起来。‘setlat’lat1‘’lat2并注意留空格的方式。‘definezz=z/9.8’必须在setlon/lat后定义var=zz*‘md132’var‘’mp‘’lon1‘’lon2‘’lat1‘md132’var!!!调用函数不再是以函数名,而是以函数所在的文件名。参数可以从后向前省略;md132.gs文件清单—函数部分:functionmaps(args)定义函数。args,代表了所有参数。vars=subwrd(args,1)取args的第1个字。mpj=subwrd(args,2)取args的第2个字ln1=subwrd(args,3)ln2=subwrd(args,4)lt1=subwrd(args,5)lt2=subwrd(args,6)‘setmpdrawon’‘setpolioff’‘setmapauto’*’setmap556’*‘setmpvals’ln1‘’ln2‘’lt1‘’lt2‘setmproj’mpj‘setmpdsetmres’‘display’vardisplay可简写为“d”。;模板14—设计在一页纸上输出多幅图功能的模板md14.gs文件清单:Functionall_in_one_page(args)*setgradsoff'setimprundefault.gs'在每次”d”命令前运行default.gs模板。usage1="putseveraltempletsinonerealpage.arrangthemintwocollons/rows."usage2="md14templet1templet2...<-printim<file.png>>/<-print<file.gmf>>"*geteachsinglemapfromcommandlineargsi=0pt=0out_file=''wrd=subwrd(args,1)if(wrd='');sayusage1;say"usage:"usage2;return;endifwhile(wrd!='')*getoutputoptionsif(wrd='-printim')pt='-printim'out_file=subwrd(args,i+2)breakendifif(wrd='-print')pt='-print'out_file=subwrd(args,i+2)breakendif*gettempletnamesmd.i=wrd*saymd.i'i='ii=i+1wrd=subwrd(args,i+1)endwhile*putthelasttempletaszeromd.i=0;num=math_nint(i/2)*2say"numberoftemplets"i"in"num"virtualpagesintwocollons/rows."say"outputoption-pt="pt"out_file="out_file*getpageinformation'querygxinfo'result代表querygxinfo命令产生的一个多行输出结果。rec2=sublin(result,2)sublin(result,2)取result的第2行=rec2xsiz=subwrd(rec2,4)取rec2的第二个字。ysiz=subwrd(rec2,6)*say"pagewidth="xsiz"andpagehiegh="ysizif(ysiz<xsiz)page="landscape"elsepage="portrait"endif*setvpageandploteachsinglemapineachvirtualpage.if(page="landscape")*saypageif(num<4)i=0x1=0x2=xsiz/numwhile(i<num)y1=0y2=ysiz'setvpage'x1''x2''y1''y2'run'md.isay'setvpage'x1''x2''y1''y2x1=x2x2=x2+xsiz/numi=i+1endwhileif(0)*drawaboxoneachvirtulpage'setvpageoff'i=1x1=xsiz/numwhile(i<num)'drawline'x1'0'x1''ysizi=i+1x1=x1+xsiz/numendwhileendifelsei=num/2x1=0x2=xsiz/iy1=ysiz/2y2=ysizk=0while(k<i)'setvpage'x1''x2''y1''y2*say'setvpage'x1''x2''y1''y2'run'md.k'setvpage'x1''x2''0''y1*say'setvpage'x1''x2''0''y1j=k+iif(md.j);'run'md.j;endif*say""x1=x2x2=x2+xsiz/ik=k+1endwhileif(0)*drawaboxoneachvirtulpage'setvpageoff''drawline0'ysiz/2''xsiz''ysiz/2k=1x1=xsiz/iwhile(k<i)'drawline'x1'0'x1''ysizk=k+1x1=x1+xsiz/iendwhileendifendifendifif(page="portrait")*saypageif(num<4)i=0y1=0y2=ysiz/numwhile(i<num)x1=0x2=xsiz'setvpage'x1''x2''y1''y2*say'setvpage'x1''x2''y1''y2j=num-1-i'run'md.jy1=y2y2=y2+ysiz/numi=i+1endwhileif(0)*drawaboxoneachvirtulpage'setvpageoff'i=1y1=ysiz/numwhile(i<num)'drawline0'y1''xsiz''y1y1=y1+ysiz/numi=i+1endwhileendifelsei=num/2x1=0x2=xsiz/2y1=0y2=ysiz/ik=0j=num-1while(k<i)'setvpage'x1''x2''y1''y2*say'setvpage'x1''x2''y1''y2l=j-1'run'md.l'setvpage'x2''xsiz''y1''y2*say'setvpage'x2''xsiz''y1''y2if(md.j);'run'md.j;endif*say""y1=y2y2=y2+ysiz/ij=j-2k=k+1endwhileif(0)*drawaboxoneachvirtulpage'setvpageoff''drawline'xsiz/2'0'xsiz/2''ysizk=1y1=ysiz/iwhile(k<i)'drawline0'y1''xsiz''y1y1=y1+ysiz/ik=k+1endwhileendifendifendif'setvpageoff''drawrec00.03'xsiz-0.01''ysiz'drawrec00.0'xsiz''ysizif(pt='-printim')if(out_file!='')'printim'out_file'white'else'printimtmp.pngwhite'*'printimtmp.gifgifwhite'endifreturnendifif(pt='-print')if(out_file!='')'enableprint'out_fileelse'enableprinttmp.gmf'endif'print''disableprint'returnendifsay"entertheprintim<file.png>orprint<file.gmf>forprintouttoafile"say"ORJUSTPRESSENTERKEYFORNOTHING"pullargwrd=subwrd(arg,1)if(wrd='printim')out_file=subwrd(arg,2)if(out_file!='')'printim'out_file'white'else'printimtmp.pngwhite'*'printimtmp.gifgifwhite'endifreturnendifif(wrd='print')out_file=subwrd(arg,2)if(out_file!='')'enableprint'out_fileelse'enableprinttmp.gmf'endif'print''disableprint'returnendif*say'out_file='out_filereturn;default.gs文件清单:‘setgradsoff’;执行模板:dos>grads–cl“md14sp21sp22sp23sp24sp16”或在进入grads后执行:ga->md14sp12sp22sp23sp24sp16sp21sp22sp23sp24sp16即根据例21-24,16编写的模板。例中有一处显示出由于多个模板同时运行,某些设置相互干扰(单独运行都是正常的)。改进的方法是在每个模板中对相应项显式设置其参数,而不是用其缺省值。上图中图片大大小小,规格不能统一。如何精确控制图片大小是个难题。setimprundefault.gs的作用是自动在每次display命令前执行一个模板(default.gs或其它);因为在每次display命令后,setgradson自动打开。GrADS描述语言GrADS描述语言不用括起来。只有GrADS的命令要括起来。一行写一条语句。多条语句写在一行时,中间要用“;”分开。变量间需要用空格分开时(如GrADS命令的参数间)文本中输入的空格是无效的,必需用‘‘—单/双引号1个或多个空格单/双引号的方式来强制加入空格。定义变量变量名(1~8字母数字)=数值/“字串”/‘字串’变量名2=变量名1使用变量。while(表达式)变量名·i=值定义数组,“i”取一数值范围。endwhile以下画线开始的变量为全局变量。_variable=123只有全局变量才能超越函数,超越文件使用,但不能作函数的参数。以下变量名用户不要定义,为系统保留字。lat,lon,lev,result,recfunction语句方式1——函数过程体与函数过程的调用在同一文件中定义函数过程functionname(variable1,variable2,…) 紧接函数过程体 ;(函数过程体结束标志)函数调用过程语句… name(variable1,variable2…)name()若没有定义变量语句…目前GrADS要求函数过程的调用与函数过程体在同一文件中。方式2——函数过程体与函数过程的调用不在同一文件中定义函数过程函数过程文件清单functionname(variable) 紧接函数过程体 ;(函数过程体结束标志)函数调用过程函数调用过程文件清单:语句… ‘函数过程文件名’参数1‘’参数2‘’…语句注意单引号和强制加入空格运算符和表达式数学运算:+,-,*,/逻辑运算:=,!=,>,>=,<,<=,|,&,!,%(连接符)表达式即由运算符连接起来的变量,其结果为0—假或非0—即真。控制语句if(express)语句elseendifif(express);语句;语句;endifwhile(express)语句endwhile内部函数subwrd(string,nwd)从string字串中取第nwd(数字)个字。subline(string,nl)从string字串中取第nl(数字)行一整行。Substr(string,start,nl)从字串中取从start字开始nl长的字串。杂项输出line=”PeterPan,theflyingone”;say“Shesaiditis“lineprompt“Shesaiditis“line输入pullvariable遇到pull语句后,程序等待用户输入,variable将代表用户的输入的值。query/q<参数>命令是一个非常重要的命令,用它可以获得许多图原信息。以下片段说明其一种用法及与描述语言其它部分信息交换的确方式。'querygxinfo'result代表querygxinfo命令产生的一个多行输出结果。rec2=sublin(result,2)sublin(result,2)取result的第2行=rec2xsiz=subwrd(rec2,4)取rec2的第二个字。ysiz=subwrd(rec2,6)(xsiz,ysiz)是图形左上角的坐标(英寸)。GrADS高级模板的应用在pcgrads\lib目录下存放有系统及爱好者开发的一些非常实用的模板,可以作为有用的工具和学习参考。由于该目录是一个特殊目录,因此这些工具可以在任何地方使用到。以下提到的各种模板,都为ascii码文件,详细使用方法可直接参考文件说明。basemap.gs—陆地或海洋填色背景图Usage:basemapL(and)/O(cean)<fill_color><outline_color><hi/lo>调用数据:lpoly.asc/lpoly_hires.asc;opoly.asc/opoly_hires.asc此模板需要修改basemap.gs文件,在数据文件前加上路径。 md15.gs'openc:/pcgrads/sample/model.ctl''setlon-180180''setlat-9090''setlev500''sett1''setmpdrawoff'不画海陆线'setcmin9999'用basemap前要求画任意图,'dz/9.8'setcmin9999使等值线并不显示出来。D命令后自动矢效。'basemapl3'给陆地填绿色。'basemapo4'海洋填蓝色。'setccolorrainbow'设为彩虹色,d命令后彩虹色自动矢效。'dz/9.8';cbar_l.gs(cbar_line.gs)—为线条图画图例。Usage:cbar_l<-xX-yY-n#>-ttext<–p>见模板8,cbar_line.gs与其作用相同。cbarn.gs(cbar.gs,cbarc.gs)—为填色图画图例Usage:cbarn<sf<vert<xmidymid>>>见例16,sf:相对长短,>1放大;vert=0:水平/1:垂直;xmid,ymid位置。cmap.gs—调整颜色gs->cmapnumberconnect_the_dots.gs—通过点击鼠标画折线。define_colors.gs—定义新颜色值:21~79defval_demo.gs—演示“qdefval”和“setdefval…”的使用。可对坏点数据进行修改。font.gs—演示字库样本。gs->font<0/1/2/3/4/5>isen.gs—等熵面图。md16.gs'openc:/pcgrads/sample/model.ctl''setlon50140''setlat090''sett1''setlev1000100''defineue='isen(u,t,lev,320)320K等熵面层风场ue,ve;u,v,t三维要素场.'defineve='isen(v,t,lev,320)lev气压层(hPa)'setz1''d'isen(z,t,lev,320)320等熵面高度.'setgxoutbar''due;ve;q'以下要把isen.gs文件的内容包括内。functionisen(field,tgrid,pgrid,tlev)...map.gs—设置地图投影方式。mconv.gs—计算水气辐合。panels_demo.gs,panel.gsf—演示在一个物理页上输出多幅图的方法,_vpg.panel说明了一个全局变量使用的例子。pinterp.gs—通过插值产生任意等压面上的值。md17.gs'openc:/pcgrads/sample/model.ctl''setlon50140''setlat090''setlev1000100'*'definet225='pinterp(t,lev,225)'sett1''setz1'与上例相同,这里总有这样一奇怪的维数设定。'd'pinterp(z,lev,225)225hPa高度。'definet225='pinterp(t,lev,225)'dt225'225hPa温度以下要把pinterp.gs文件的内容包括内。functionpinterp(field,pgrid,plev)...plotskew.gs—T-logP图md18.gs'openc:/pcgrads/sample/model.ctl''setlon140''setlat30'*definethevari

温馨提示

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

评论

0/150

提交评论