GrADS绘图学习技巧与实例
更新时间:2024-05-07 17:50:01 阅读量: 综合文库 文档下载
- grads绘图实用手册推荐度:
- 相关推荐
Nanjing university of information science& technology 阿木
以下技巧总结都是笔者从学习实践过程中总结出来的,基本的问题。不求全面,希望对读者学习有用,如果有问题,敬请留言指正,以促进交流学习!
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 sst
open(15,file='sst.grd',form='binary') !固定的用form=‘binary’就是二进制数据 open(16,file='sst.txt') !新建txt文件 do it=1,nt do iz=1,nz
read(15) ((sst(i,j,iz,it),i=1,nx),j=1,ny) !read后只有文件号,数据是无格式的 enddo enddo do it=1,nt
do iz=1,nz
write(16,*) ((sst(i,j,iz,it),i=1,nx),j=1,ny) !输出时是txt文件可直接看的数据,
有格式输出,有 *
enddo enddo
1
Nanjing university of information science& technology 阿木
close(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,大气的数据要根据数据的层次确定几层。
4、 grd 、ctl、、gs、nc详述
grd文件:grd数据不可直接看,为二进制无格式数据,简单的说只有1和0,而
且数据间没有间隔,grads识别grd是根据ctl进行划分的,根据ctl中的经度、纬度、层次、时间,精度进行数据分块。ctl实例:
dset C:\\data\\sst.grd undef -9.99E+33
title sea surface tempture xdef 56 linear 90 2 ydef 41 linear -20 2
tdef 360 linear jan1971 1mo zdef 1 levels 0 vars 1
sst 0 99 surface sea tempture endvars
上例数据的数据顺序是(以下是数据对应的经纬度) 纬度 经度(t=1)
-20 90~200的 纬度20S的从90E~200的56个数据 -18 90~200的 纬度18S的从90E~200的56个数据 . . . 60 90~200的 纬度60N的从90E~200的56个数据
以上为一层的数据,接下来是t=2,t=3??t=360的数据,每个时间点的每一层是如上格式,
编程时读取和写如的数据循环顺序依次是:时间、层次、纬度、经度,读者参照3中的fortran程序加以理解。
ctl文件:具体其他指导书上都有,我这里强调的是 sst 后面的0表示一层,如果是两层以上则是2,3??,1层是固定用法,sst后面的99是默认设置;undef -9.99E+33 此处的数值决定了软件将文件中的那些值认定为不绘制的数据,所以这个值一定要与数据对应。
2
Nanjing university of information science& technology 阿木
gs 文件,批命令文件,与ctl一样是用记事本编写,另存为.gs文件,文件都是命令,方便大段的命令编写、修改,很常用,尤其时绘制的图要求比较多时必须用,免得在命令窗口重复输入命令浪费时间,如下例子: 'reinit'
'open c:\\data\%uv.ctl' 'set t 7' 'set lev 850' 'set grid off'
'set vpage 0 8.5 0 3.6' 'set parea 0.3 8.5 0.3 3.5' 'set gxout vector' 'set grads off' 'd u;v'
'set vpage 0 8.5 3.6 7.2' 'set grads off' 'set gxout barb' 'd u;v'
'set vpage 0 8.5 7.2 11' 'set grads off' 'set gxout grid' 'd u;v'
'printim c:\\images\\gxout3uv850.png white' ;
Gs文件以 ‘;’结尾,分号后面不能有空格,除了循环命令外都需要 单引号 将命令引起来。
nc文件:此类数据不需要ctl可直接用sdfopen命令直接打开,往往需要知道数据文件中的各个纬度特征,可以用:q ctlinfo 命令查询该文件的内置ctl,这样一切都会很清楚,尤其是数据精度:截图如下(下例即2*2的网格经度):
3
Nanjing university of information science& technology 阿木
以上为基础知识介绍,以下为技巧命令
1、绘图时,图的时间下标可用 set grads off 命令关掉,网格用 set grid off 命令关掉,需注意的是,网格关一次就一直有效,而下标则是每次绘完图就自动开启,所以建议读者在每次的 绘图命令之前加set grads off 。 2、
3、reinit命令是让窗口恢复到刚打开时的界面,会恢复所有的set,同时关掉所有的打开文件,为为防止前面打开文件的干扰,建议读者在每个gs文件的第一条就加上这条命令(参考gs描述的例子)。 4、
5、数据维度设定:
set lon 90 set x 1 set lat 80 set y 20 set lev 1000 set z 1
set t 1 12 set time jan1970 dec1970
上面两种设定等价,左边是实际维度设定法,右边是给点设定法,读者需要确定具体的格点数。需要注意的是,在设定全球尺度时,经度0和360是同一个格点,所以 set 0 360会出错,这时设定格点的方法比较好:set x 1 180。
6、 vpage和parea的区别:
vapge是对整个绘图区分块,需要几张图就划分成几块,给英寸时不需要给标注、标题预留空间,如:
要横着绘制两张图 那么就是set vpage 0 5.5 0 8.5 (11*8.5) 绘制第一张图
4
Nanjing university of information science& technology 阿木
set vpage 5.5 11 0 8.5 绘制第二张图
parea 是描述的绘图时图形的四根边线的大小,而且是虚页的尺寸
如:画一张图 set parea 1.0 10.2 0.8 7.8 四个值的范围 取决于vapge的长度0<1.0<10.2<11,如果是上例中的两张图,那么:set parea 0.5 4.8 0.8 7.9, 0<0.5<4.8<5.5 ,数值范围取决于水平、垂直的长度,与起点无关 如 set vpage 0 11 3.5 7 set parea 0.8 10 0.3 3.2
y上满足0<0.3<3.2<(7-3.5) 即可,实际y长度决定范围,与起点无关。
5、'set annot 5 8'
'set xlopts 3 5 0.18' 'set ylopts 3 5 0.18'
上面这两条命令是设定的x、y轴下标数字的颜色、粗细、字号
'set annot 5 8'是设定坐标轴线、标题的颜色 粗细,会重置xlopts的部分设定,希望读者注意,命令间的互相干扰
6、cbar cbarn命令 cabr
cbarn
这里只讲解cbarn 命令,
cbarn sf vert xmid ymid
其中sf 为标尺,1为全尺寸0.5为半尺寸;vert为放置位置,0为水平,1为垂直;xmind 、ymid为色标的中心位置
如:cbarn 0.5 0 2.5 1.5 色标 半尺度长,水平放置,色标的中心英寸坐标(2.5,1.5)。
如果只是cabrn或cbar命令,会按照默认的全长,水平或数值取决于图的哪边空位大绘制。
强调一点,加色标和加标题都是在绘制出图形后才能加,因为色标是根据阴影图确定对应色值,标题根据图形大小确定标题位置。
7、cmin、cmax是命令是用于绘制大于或小于某数值的线或区域图形,在每次绘图之后会重设,所以如果多次使用一定要每次d之前加上,这点与set grads off相似。
8、求12个月每个月的海温距平值 'set t 1 12'
5
Nanjing university of information science& technology 阿木
'draw recf 'k1' 0.2 'm1' 0.7' 'draw recf 'k2' 7.8 'm2' 8.3' endwhile
k1=-0.75 m1=-0.25 j=1
while(j<=10) j=j+1
k1=k1+0.95 m1=m1+0.95 k2=8.0-k1 m2=9.0-m1 'set line 'j' 2 6'
'draw recf 10 'k1' 10.5 'm1'' 'draw recf 0.4 'k2' 0.9 'm2'' endwhile ;
11
正在阅读:
GrADS绘图学习技巧与实例05-07
VFP编程题答案11-25
邓庄小学学校章程06-05
材料科学基础名词解释大全06-10
高中信息技术基础《信息表达说课稿》09-23
八下应用题的复习05-27
Java 认证 复习题10-17
导论excel操作指南05-29
生活需要挫折02-19
中考现代文阅读相关文体知识教师用06-27
- 冀教版版五年级科学下册复习资料
- 微生物学复习提纲
- 2013—2014学年小学第二学期教研组工作总结
- 国有土地转让委托服务合同协议范本模板
- 我的固废说明书
- 企业管理诊断报告格式
- 东鼎雅苑施工组织设计
- 谈谈如何做好基层党支部书记工作
- 浮梁县环保局市级文明单位创建工作汇报
- 管理学基础知识
- 大学物理实验报告23 - PN结温度传感器特性1
- 计算机网络实践
- 酒桌上这四种情况下要坐牢,千万别不当回事……
- 国家康居示范工程建设技术要点
- 中国贴布行业市场调查研究报告(目录) - 图文
- 新课标下如何在高中物理教学中培养学生的创新能力初探
- 营养师冬季养生食谱每日一练(7月4日)
- 关注江西2017年第3期药品质量公告
- 建设海绵城市专题习题汇总
- 10万吨年环保净水剂建设项目报告书(2).pdf - 图文
- 绘图
- 实例
- 技巧
- 学习
- GrADS
- 2014年注册咨询工程师《工程项目组织与管理》权威命题预测
- 汽车驾驶员中级工题库(试题及答案)
- 微机原理习题V3
- 证券公司定向资产管理业务实施细则(试行)
- 大型储罐焊接技术的现状与发展(毕业论文)
- 哲学生活知识点全1
- 土木工程毕业设计 - 房屋设计计算书
- vmware vsphere 6.7虚拟化配置手册
- 实验一C
- 家装电话营销话术
- 车过圆饼路
- 我的理想人生
- 美国留学须知:用餐最常用的英文短句
- 河西学院2012届普通本科毕业生学士学位授予名单
- 地大考研复试班-中国地质大学(北京)土地科学技术学院地质工程
- 自清洁涂料在建筑幕墙上的应用
- 二手车交易市场建设项目可行性研究报告
- 2014-2015年五年级语文第一学期测试题
- 低压电气供配电的安全管理解析word版本(4页)
- 2014当代中国政治制度形成性考核册答案