第二讲-GrADS绘图的各种设置培训讲学
- 格式:ppt
- 大小:731.50 KB
- 文档页数:37
grads画图坐标设置⼀直听到有⼈抱怨,GrADS的坐标轴怎么那么固定,要设置个起始间隔还不⽀持时间轴,要在经纬度后⾯加个⼩圆圈的度数怎么就那么难,为啥不能四周都弄上坐标轴?好了,你的这些抱怨将会随着你看到这个帖⼦⽽消失,下⾯给出这个脚本的⽤法介绍:注意:在你display变量前需要先设置如下两个命令'set xlpos -20''set ylpos -20'这样能够屏蔽GrADS⾃带的坐标轴,否则会出现坐标轴重叠[code=gs]请先display变量,再运⾏该脚本该脚本主要实现了⾃定义的坐标轴显⽰,您可以免费使⽤该脚本该脚本的⽤法规则如下:#axis -param1 val1 -param2 val2...其中,-param表⽰需要⾃定义的参数类型,val表⽰该参数的具体设定值参数和参数值必须成对出现,例如#axis -type b -position o -sinterval 2上⾯的语句表⽰绘制类型是底部的x轴,刻度位置是朝外,每两个⼤的刻度之间显⽰两个⼩刻度线#注意:-type是必选参数所有参数如下所⽰:-type :表⽰绘制类型,参数值有:b/l/t/r 分别表⽰底部,左侧,上部,右侧-label:表⽰是否绘制数值标签,参数值有:on/off 分别表⽰绘制和不绘制-position:表⽰刻度的位置,参数值有:o/i/m 分别表⽰外侧,内侧,中间-start:表⽰刻度从该处开始绘制,参数值为该轴范围内的数字当该轴为时间轴时,表⽰开始绘制的时次(1,2,3...)-end:表⽰刻度的结束位置,参数值范围同start,时间轴时表⽰结束的时刻(1,2,3...) -interval:表⽰刻度的间隔,隔多少值绘制⼀个刻度和标签例如,当x轴表⽰经度110-150E,如果interval为10,默认情况下会标出110,120,130,140,150不给定该参数时,默认情况下,会绘制5个刻度,以此确定默认间隔-sinterval:表⽰没两个⼤刻度之间要绘制⼏个⼩的刻度,不给定该参数则不绘制-size:表⽰刻度的长度,单位是英⼨,默认为0.1-color:表⽰坐标轴和刻度标签的颜⾊,默认为1-lfont:表⽰坐标轴标签的字体,默认为当前环境下设置的字体-lsize:表⽰坐标轴标签的字体⼤⼩,默认为0.12-lthick:表⽰坐标轴标签字体的粗细,默认为0.3-langle:表⽰坐标轴标签旋转的⾓度,默认为不旋转-suffix:表⽰需要在每个坐标轴标签后⾯添加的⽂字或者符号后缀,⽐如⽤来添加度数等-asuffix:表⽰当坐标轴为经纬度轴时,是否⾃动添加E/W/N/S/EQ这种标记,默认为添加,参数值为 on/off ,分别表⽰⾃动添加和关闭⾃动添加-hoffset:表⽰坐标轴标签在⽔平⽅向上的偏移量,单位为英⼨,正负均可-voffset:表⽰坐标轴标签在垂直⽅向上的偏移量,单位为英⼨,正负均可-tformat:当所绘制坐标轴为时间轴时产⽣作⽤,表⽰要显⽰的时间格式参数值为y m d h 这四个字母的任意组合,分别表⽰年⽉⽇时如:-tformat my 则会将时间轴标签显⽰为JAN1951这种格式-v:当绘制图形是1-D图(set gxout line等)的时候是必选参数,表⽰当前display的是哪个变量[/code]来具体的看两个例⼦,这两个例⼦只是为了描述脚本的⽤法,所以不⼀定美观。
以下技巧总结都是笔者从学习实践过程中总结出来的,基本的问题。
不求全面,希望对读者学习有用,如果有问题,敬请留言指正,以促进交流学习!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 (Grid Analysis and Display System)讲义(2)基本操作命令主要内容一、Unix和Dos环境下的命令(了解)二、Grads基本操作命令三、查询命令讲解四、三类坐标简介一、Unix和Dos环境下的命令二、基本操作命令命令浏览1. open /sdfopen/xdfopen 打开数据描述文件 open *.ctl2. d 显示一个GrADS "表达式“3. set 设置在绘图中所需要的环境变量(以后讲)4. c 清屏、换页5. quit 退出GrADS6.run:*.gs7.qury(q) 查询命令(见下面的四)8.生成图形文件1)Enable print *.gmf……d varprintdisable print2)printimPrintim filename options(输出文件名) (任意选项)Options:Gif :输出gif格式(缺省PNG格式) Black/white:采用黑色/白色背景xNNN/yNNN:水平分辨率比如:printim uwind.png x1000 y800Printim vwind.gif gif x1000 y800 white 9.Reset:除了open命令外,其它命令都被清除 10.Reinit:相当于刚进入GrADS的状态。
13. define 定义新的变量(以后讲)14.Modify(以后讲)15.draw:一些基础绘图指令(以后讲)16、!直接执行Unix或者DOS shell中的命令ga>!dir *.ctl注意:前面unix和DoS下面的命令在GrADS 中加入!都可以用。
三、三类坐标简介1、页面坐标:用英寸表示, 11×8.5英寸或8.5×11英寸。
2、地图坐标:经纬度、层次、时间和变量值。
时间坐标是绝对时间格式(如:01JAN1982),变量值是一维图形的变量值坐标,如曲线图等。
以下技巧总结都是笔者从学习实践过程中总结出来的,基本的问题。
不求全面,希望对读者学习有用,如果有问题,敬请留言指正,以促进交流学习!(笔者:阿木)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,大气的数据要根据数据的层次确定几层。