GrADS第5章 基础绘图指令
GrADS基础绘图

绘图速度较慢,当数据文件较大时,读入很容易内存溢出 远程处理比较麻烦。
grads的优点; (1),最多能读入20个数据文件,数据读取迅速,出图速度快,但是要写描述文件和gs文 件比较麻烦。 (2),在画二维等值线图时,图形非常平滑,这点是我到现在还没大规模用matlab的主要 原因。 (3),它包含了很多气象上所需要的函数,在gs文件里可以直接调用,因此在用它时也省 了不少事。
Grads在win/Linux下的下载、安装、运行
程序:
Windows:grads-1.8sl11-win32e.exe Linux:grads-bin-1.9b4-linuxRH9.tar.gz grads-1.8sl11-linux.tar.gz data.tar.Z
环境变量:
Windows:
Panoply OpenDX (formerly IBM Data Explorer) NCL (NCAR Command Language) ncBrowse (netCDF File Browser) HDF (Hierarchical Data Format) interface GrADS (Grid Analysis and Display System) FERRET NetCDF Toolbox for MATLAB-5 IDV (Integrated Data Viewer) Origin surfer
命令顺序 grads –b|l|p|c open/run set display draw print quit/reinit
显示类型
GrADS实用绘图--基本操作

• 关闭数据文件
ga-> close 3 ↵ ga-> close 2 ↵ ga-> close 1 ↵
文件打开从1 开始依次编号, 文件关闭时先 关闭序号最大 的文件
26
LASG动力论坛版
三. 运行GrADS绘图软件包
• 设置维数环境
ga-> set x 1 73 ↵ ga-> set lat -20 60 ↵ ga-> set lev 850 ↵ ga-> set time 00z01Apr2007 ↵
♥♥♥
18
LASG动力论坛版
二. GrADS绘图软件包的安装
• Windows下的安装(2)
– 设置环境变量 ♥♥♥ “我的电脑”右键菜单 属性 高级 环境变量
• 新建变量 GASDIR c:\PcGrADS\dat GASCRP c:\PcGrADS\lib GAUDFT c:\PcGrADS\udft\udft.list • 修改PATH变量, 增加路径 c:\PcGrADS\win32;c:\PcGrADS\lib;c:\PcGrADS\dat;
8
LASG动力论坛版
一. 引
• GrADS实用文档
言
– LASG编 《GrADS实用手册》 ♥♥♥ 中文, 较全面, 可用来自学 – GrADS reference card 英文, 绘图命令和函数速查 – GrADS scripting language reference card 英文, 脚本语言语法速查 – GrADS Documentation Index 联机英文索引, 最全面
12
LASG动力论坛版
二. GrADS绘图软件包的安装
• 操作系统
GrADS绘图学习技巧与实例

以下技巧总结都是笔者从学习实践过程中总结出来的,基本的问题。
不求全面,希望对读者学习有用,如果有问题,敬请留言指正,以促进交流学习!1、软件综述:grads软件是一款绘图软件除了绘制图形,还可以提取数据,主要应用是在大气科学中,当然只要是数据处理成grads能够读取的数据文件就可以进行相关绘图。
软件版本问题,软件本身不是很大,我接触到1.8、1.9、2.0版本的,1.8版本的安装很多情况还要修改环境变量、1.9版本的不识别‘sdfopen’命令,最稳定的版本是2.0版本,所以笔者推荐学习者安装2.0版本,选择默认安装路径就可以。
2、文件类型简述:grads处理的是网格数据,可以处理的数据类型有:grd、grib、nc(海洋常用的数据),cdf(雷达卫星数据),其中nc、cdf数据都是自带描述文件,不需要ctl,grib数据要通过命令生成ctl、index数据才可以调用,常用的是grd数据,需要ctl。
3、数据文件转换:grads软件识别的数据是二进制无格式数据,文件类型是‘binary’,写入和生成时是不需要格式的如read(20) sst(i,j,iz,it),20为文件号,通常是十进制数据与grd数据间转换,这里给一个grd转换成txt数据的fortran程序:parameter(nx=56,ny=41,nz=1,nt=360)dimension sst(nx,ny,nz,nt)real sstopen(15,file='sst.grd',form='binary') !固定的用form=‘binary’就是二进制数据open(16,file='sst.txt') !新建txt文件do it=1,ntdo iz=1,nzread(15) ((sst(i,j,iz,it),i=1,nx),j=1,ny) !read后只有文件号,数据是无格式的enddoenddodo it=1,ntdo iz=1,nzwrite(16,*) ((sst(i,j,iz,it),i=1,nx),j=1,ny) !输出时是txt文件可直接看的数据,有格式输出,有*enddoenddoclose(15)close(16)end写程序时:注意格点数要与数据对应,如:上程序对应的数据是经度90~200,纬度-20~60,时间:1971.01~2000.12共360个月的海面温度数据,数据格点精度2*2 ,nx=(200-90)/2+1,ny=(60-(-20))/2+1,nt=360,nz=1,大气的数据要根据数据的层次确定几层。
grads常用命令

第一个命令:这样将得到一个动画显示的序列,现在输入:claerset lon -90set lat -90 90set lev 1000 100set t 1d td u该情况下我们设置y(纬度)和z(高度)变化,所以我们得到一个竖直切面图。
我们显示了两个变量,他们重叠在一起。
你可以让任意多的变量重叠在一起,只要你不使用clear命令就行了。
另一个例子,这种情况X和T是变化的(哈莫图):cset lon -180 0set lat 40set lev 500set t 1 5d z现在已经知道怎样使用选定的部分数据绘图了,下面我们学习怎样操作数据。
设置维数环境为Z,Y变化:clearset lon -180 0set lat 0 90set lev 500set t 1现在假设我们想显示华氏温度代替开尔文温度。
可以这样转换:display (t-273.16)*9/5 32任何由标准的运算符,-,* 和/ 组成的表达式都是允许的,并且操作数可以包含常量,变量,或者函数。
一个包含函数的例子:d sqrt(u*u v*v)有一个函数用来计算风的级数。
d mag(u,v)另一个内建函数计算平均值:clear d ave(a,t=1,t=5)这种情况我们可以计算5天的平均。
我们也可以从数据中移除平均值(距平值):d z-ave(z,t=1,t=5)也可以在x方向作平均并求距平:cleard z-ave(z,x=1,x=72)也可以做时间差分:cleard z(t=2)-z(t=1)完整规范的变量名是:name.file(dim |-|=va lue,…) 如果我们打开了两个文件,也许一个是模式输出,另一个是分析,我们应该区分用如下方法二者:display z.2-z.1另一个内置的函数通过有线差分计算水平涡度相关cleard hcurl(u,v)还有另外一个计算数值方向的质量积分:cleard vint(ps,q,275)这儿我们计算了可降水量(单位mm)现在来讨论控制图形输出的话题。
第五章Grads图形输出类型

第五章Grads图形输出类型GRADS (Grid Analysis and Display System)讲义(5)图形输出类型内容提要⼀、图形类型总介⼆、各类图形详细介绍⼀、图形类型总介set gxout graphics_type图形类型⼆、各类图形详细介绍主要介绍格点数据的数据类型,结合具体实例1、line: 单线图(缺省)2、bar: 直⽅图3、linefill: 两单曲线之间填⾊⽤法:set gxout linefilld a;b4、barb: 风向杆形式绘⼆维风场5、contour: ⼆维等值线图6、shaded: ⼆维填⾊图7、errbar: 单线图及误差分布8、fgrid: ⽤指定颜⾊填充⼆维格点场⽤法: set gxout fgridset fgvals Val1 col1 val2 col29、grid: 以⽹格形式在各⽹格点中央标出该点数值10、scatter: 散点图 d u;v11、stat: 输出有关的统计量12、print: 输出ASCII码值12、stream: 流线形式绘⼆维风场13、vector: ⽮量箭头形式绘⼆维风场14、fwrite: 图形不在屏幕上显⽰,⽽是将输出结果存⼊⼀个由“set fwrite ⽂件名”所指定的⽂件中⽤法:’open data.ctl’* 要输出的数据资料⽂件名a.grd‘set fwrite d:\li\a.grd’‘set gxout fwrite’* 设定维数环境‘set lev 500’;‘set t 1 30’‘set lon 120 270’‘set lat –10 10’‘d u’*关闭⽂件a.grd‘disable fwrite’如果资料为NC格式资料,写法如下 ‘reinit’‘sdfopen d:\llp\u.nc’其余同上想要了解nc资料的信息:‘sdfopen d:\llp\u.nc’‘q file’‘set x 1’‘set x 37’注意:(1)当图形输出类型为vector、stream和barb 时, 在显⽰命令后需给出两种数据,两者间⽤分号“;”隔开,前者理解为U分量,后者理解为V分量;(2)当图形输出类型为errbar、scatter、linefill时,也须⽤分号将两种数据分开,如:display u ; vdisplay ave(u,t=1,t=10) ; ave(v,t=1,t=10)(3)对于vector 和 stream类型的图形, 可以给出第三种数据,如:display u;v;hcurl(u,v)display u;v;mag(u,v)⾼级篇输出ASCII格式数据: File=‘uwind.txt’‘set gxout print’‘set prnopts %g 8 1’‘d u’Rc=write(file,result) Rc=close(file)站点资料以后讨论对站点数据:barb: 在各站点绘风向标findstn: 搜索最进的站点(详见描述语⾔部分) model: 以天⽓图形式将天⽓观测各分量填放在站点四周value: 在各站点标值(缺省)wxsym: 绘wx天⽓符号(3)对于wxsym类型的图形, 站点坐标的每⼀个数值都假定为⼀种wx天⽓符号的代码,台风和热带风暴的符号包含在wx天⽓符号集中。
GrADS绘图学习技巧与实例

以下技巧总结都是笔者从学习实践过程中总结出来的,基本的问题。
不求全面,希望对读者学习有用,如果有问题,敬请留言指正,以促进交流学习!1、软件综述:grads软件是一款绘图软件除了绘制图形,还可以提取数据,主要应用是在大气科学中,当然只要是数据处理成grads能够读取的数据文件就可以进行相关绘图。
软件版本问题,软件本身不是很大,我接触到1.8、1.9、2.0版本的,1.8版本的安装很多情况还要修改环境变量、1.9版本的不识别‘sdfopen’命令,最稳定的版本是2.0版本,所以笔者推荐学习者安装2.0版本,选择默认安装路径就可以。
2、文件类型简述:grads处理的是网格数据,可以处理的数据类型有:grd、grib、nc(海洋常用的数据),cdf(雷达卫星数据),其中nc、cdf数据都是自带描述文件,不需要ctl,grib数据要通过命令生成ctl、index数据才可以调用,常用的是grd数据,需要ctl。
3、数据文件转换:grads软件识别的数据是二进制无格式数据,文件类型是‘binary’,写入和生成时是不需要格式的如read(20) sst(i,j,iz,it),20为文件号,通常是十进制数据与grd数据间转换,这里给一个grd转换成txt数据的fortran程序:parameter(nx=56,ny=41,nz=1,nt=360)dimension sst(nx,ny,nz,nt)real sstopen(15,file='sst.grd',form='binary') !固定的用form=‘binary’就是二进制数据open(16,file='sst.txt') !新建txt文件do it=1,ntdo iz=1,nzread(15) ((sst(i,j,iz,it),i=1,nx),j=1,ny) !read后只有文件号,数据是无格式的enddoenddodo it=1,ntdo iz=1,nzwrite(16,*) ((sst(i,j,iz,it),i=1,nx),j=1,ny) !输出时是txt文件可直接看的数据,有格式输出,有*enddoenddoclose(15)close(16)end写程序时:注意格点数要与数据对应,如:上程序对应的数据是经度90~200,纬度-20~60,时间:1971.01~2000.12共360个月的海面温度数据,数据格点精度2*2 ,nx=(200-90)/2+1,ny=(60-(-20))/2+1,nt=360,nz=1,大气的数据要根据数据的层次确定几层。
GrADS绘图基础

命令顺序 grads –b|l|p|c open/run set display draw print quit/reinit
显示类型
bar 直方图 line 折线图 errbar 标误差线 linefill 两线之间填色 scatter 散点图 grfill 按网格填色(马赛克图) 按网格填色(马赛克图) fgrid 按set fgvals指定值填网格颜色 fgvals指定值填网格颜色 grid 网格填值 findstn 寻找最近的站点 model 站点填图 stnmark 标记站点位置 value 标站点值 contour 等值线图 shaded 填色等值线图 vector 风矢量图 barb 风羽 stream 流线图 stat 输出统计数据 print 十进制屏幕输出(set prnopts) 十进制屏幕输出(set fwrite 输出二进制文件(set fwrite) 输出二进制文件(set tserbarb 单站的风羽时间序列 tserwx 单站天气现象时间序列 wxsym 在站点上标记天气符号(set wxopt) 在站点上标记天气符号(set
Grads在win/Linux下的下载、安装、 Grads在wi程序:
Windows:grads-1.8sl11Windows:grads-1.8sl11-win32e.exe Linux:grads-bin-1.9b4Linux:grads-bin-1.9b4-linuxRH9.tar.gz grads-1.8sl11grads-1.8sl11-linux.tar.gz data.tar.Z
Linux: Linux: 在.cshrc 文件中添加: 文件中添加: # 执行文件路径:setenv PATH /usr/local/grads/bin:${PATH} 执行文件路径: # 字体和底图文件路径:setenv GADDIR /usr/local/grads/dat 字体和底图文件路径: # 脚本库的路径:setenv GASCRP /usr/local/grads/lib 脚本库的路径:
grads基本命令

d ave(olr,t+0,t+359,12) ave表示求平均,olr 为变量, t+0表示起始点为当前时次,即00z01jul1974;t+359表示终止时次为当前时次后推359个时次,即00z01jul2003;12表示每12个时次取一次数据;打开nc文件:ga->sdfopen查询信息:ga->q filega->q dimga->q ctlinfo写标题:ga-> draw title清除图面:ga-> c同时打开两个文件: ga->open model.ctlga->open model.le.ctl删除所有设置重新回到刚进入GrADS状态:ga->reinit删除open命令后的所有设置:ga->reset由风场导出涡度场:ga->d hcurl(u,v)以分色图形方式输出:ga->set gxout shaded以等值线方式输出(缺省方式):ga->set gxout contour画图例:ga->cbarn 1 0 (1:相对长短,>1放大;0:水平;1:垂直。
)以箭头方式表示矢量场: ga->gxout vector风矢量场:ga->d u; v; q (显示矢量时,d x分量;y分量<;标量>。
“<>”内的部分只起标颜色的作用。
)以流线方式表示矢量场:ga->set gxout stream风流线场:ga->d u; v; q以WMO风标方式表示矢量场: ga->set gxout barb风标:ga->d u; v; q直接输出网格点数值:ga->set gxout grid设置保留小数位数:ga->set dignum 0设置数字大小:ga->set digsize 0.1ga->set mpdraw on 如为off,不画地图背景(非经纬度数据需此项)ga->set poli on 如为off不画国界省界等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6. draw title sting
在图形顶部写字符串为标题 。
7. draw wxsym symbol x y size <color<thickness>>
在指定的位置(x、y)画出指定的天 气符号symbol,颜色为color,大小为 size,线宽为thickness。
5.2 设置剪裁区
旋转是以justification定义的点为中心,反时针旋转
justification设置字符串的位置, 描述了与“draw string” 命令中x、y点位置上的相互关系
'set string 2 bl 8' 'set strsiz 0.3 0.3' 'draw string 6 4.58 G '
设置命令如下: set clip xlo xhi ylo yhi 其中,xlo,xhi,ylo,yhi是剪裁区在实页中 的英寸坐标。 用户可以设置一块剪裁区(clipping area ) 用于绘制一些基础图形,设置剪裁区后,这 些基础画图功能只能在剪裁区内进行。
在(x、y)点画一个类型为marktype大小为 size的符号,marktype取值为: 1 - 十字线 2 - 空心圆圈 3 - 实心色圆圈 4 - 空心长方形 5 - 实心长方形
'set gxout stream' 'd u;v' 'draw mark 3 4 4 0.5'
第5章
基础绘图指令
GrADS系统提供了一系列基础绘图 指令来控制和实现一些基础的绘图功能, 比如绘制线条、符号、字符串等。
y string 在x、y点位置上写字符串string, x和y是 虚页上的英寸坐标。
注:x、y点为字符串左下角的位置! 可以使用“set string” 和 “set strsiz”命令 来设置字符串的性质。
set
strsiz hsiz <vsiz>
设置字符串中字符的大小,hsiz是字符 的宽度,vsiz是字符的高度,单位是虚
页英寸。
set
string color <justification <thickness <rotation>>> 设置字符串string 的性质。 color 设置字符串颜色; justification设置字符串的位置; thickness设置字符串的粗细; rotation设置字符串旋转的角度。
4. draw recf xlo ylo xhi yhi
以(xlo, ylo)、(xhi, ylo)、(xhi, yhi) 和(xlo, yhi)四点为顶点,画一个填色 的长方形。
'set line 2 6 8' 'draw recf 3 3 6 6'
5. draw mark marktype x y size
3. draw rec xlo ylo xhi yhi
以(xlo, ylo)、(xhi, ylo)、(xhi, yhi) 和(xlo, yhi)四点为顶点,画一个不填 色的长方形。
set
line color <style> <thickness> 用于设置线条性质。
'set line 2 6 8' 'draw rec 3 3 6 6'
2. draw line x1 y1 x2 y2
从坐标点x1,y1到x2,y2 画一条直 线,可以使用“set line”命令来设置 线条的性质(单位:英寸)。
set
line color <style> <thickness> 用于设置线条性质。
'set line 2 4 6' 'draw line 3 3 6 6'