因为老师要求,只能学这个奇奇怪怪的东西了,希望以后能用到。
总览:这个小众的供气象工作人员画图的软件是怎么运作的呢br> 数据处理(文件是不是GrADS能接受的格式,不行的话就要通过Fortran软件来转换文件格式)–》建立数据描述文件(有的时候直接就有,有时需要手写,我们不能直接使用数据文件,要通过数据描述文件来间接使用数据文件)–》输入GrADS命令或者建立批处理文件完成画图–》看图+存图
**1.格点数据和站点数据:**格点数据是什么呢们可以通过经度,纬度,高度在地球上确定一个位置,我们可以将这个位置视作一个格点,而一个格点上又有相应的数据,一些物理变量和时次变化。
此时如果固定了时间和高度,那么所有水平 格点就构成了一个二维 格数据片,每个数据片就是一个数据记录。最后这些二维数据片又组成了实际上的大数组(包含了所有的时空及物理量信息)。
2.数据描述文件:
打开之后就可以用其他命令对数据文件model.grd进行绘图和处理了。
那么现在还有一个主要问题,数据描述文件要怎么写呢下面是个例子
数据描述文件主要内容:1. 被描述的数据文件名(dest) 2. 该数据描述文件的标题(title)3.所描述数据的类别,格式和选项(dtype,format,option) 4. 时间,空间维数环境设置(xdef,ydef,zdef,tdef) 5. 变量定义(vars,endvars)
3.如何将不合适的数据文件转换为二进制的数据文件
现在有ASCII码(十进制格式)格点数据资料文件u.dat,v.dat和sst.dat,其中u.dat中存放了x方向的风速资料,v.dat中存放了y方向的风速资料,sst.dat中存放了海平面温度资料,写个Fortran文件将他们转换为一个二进制文件(后缀名为grd)
注1:我们之间声明一个3行3列的数组,a[3][3],那么一个行数和一个列数就对应着一个数据,此时的u(nx,ny,nz,nt)也是如此四个维度nx,ny,nz,nt对应着一个数据,这个数据就是x方向的风向资料。
注2:do 10 it=1,nt … 10 continue 此时10并不是指循环次数,而是规定循环的范围,指这个循环一直包括到接下来的数字10所在的行,数字10在的行也要运行,运行次数由it控制,it的初值为1,目标值为nt=48,而且间隔没设置默认为1,那么这个循环就循环48次。
注3:read(1,)((u(i,j,iz,it),i=1,nx),j=1,ny) 这句话的本意是从u.dat文件中读取数据并存放在数组u中,但是文件u中有多少条数据呢,u中放的是x方向的风速资料,但不仅是37(nx)条数据,应该是nxnynznt条数据,但是循环只进行了ntnz次这是不够的,剩下的nynx在哪体现呢,就是后面的i=1,nx j=1,ny,所以我们读取了nxnynz*nt次来将数据完整读取出来。
4.数据文件的获取使用
5.GrADS的基本操作
1.打开数据描述文件 数据描述文件 model.ctl放在了E://data中
2.set各类选项 用来设置各种环境参数,包括维数环境,图形类型,图形要素,屏幕显示等
3.desplay或者d表达式:对表达式处理后进行屏幕图形显示(最简单的表达式是变量名的缩写)
4.clear或c:清除图形窗口的内容
5.quit:退出GrADS系统
6.query或者q:查询命令
7.define:用来定义新的变量,但是变量是存储在内存中
8.draw:可以在没有操作数据的情况下直接进行制定的图形元素的操作
9.modify:将自定义的变量声明为气候值,用于后面的时次代换
10.run .gs 用于执行文件.gs中的操作
11.生成图形文件的命令
printimfilename eg:输出 800*600图像像素的白色背景的GIF图像:printim out.gif x800 y600 white
这个option不一定是一种,可以是组合
12.reset:可以清除掉所有set命令的设置
13.reinit:使用该命令后,系统将回到刚进入GrADS的状态
基本操作流程
1)打开数据描述文件 open *.ctl
2) 进行绘图要素设置 set 维数环境(有lat,lon,lev,time);set 图形要素(有出图类型,线条粗细,颜色等)
3)显示图形 d表达式
4)如果对图形不满意那么就清除图形 c
5)重新设置绘图要素,因为这些是影响最后图像效果的
6)显示图形 d 表达式
7)退出GrADS系统 quit
6.实例练习
简介:我们下载的数据文件model.data和数据描述文件model.le.ctl,并存在了E:/data
感想:用GrADS画图并没有想象中那么难,相当于数据文件中有一片区域特定时空的某些物理量数据,而我们就告诉程序我们要哪些区域,哪些时间下的哪些物理量即可(相当于设置了维数环境),然后程序就会自动将图像画出来。但是这些数据用什么图形表示是不是无法控制呢维数环境的不同又是怎么影响到最后的图像呢/p>
7.绘图要素的设置
我们会设置各种运行环境的参数,包括维数环境,图形类型,图形要素,屏幕显示等
1.维数环境的设置:我们知道在数据描述文件中对要显示的表达式的时空范围(维数环境)已经做了一些规定,但是在GrADS的运行环境中仍要重新设置。这是因为之前的规定是描述了整体范围,但我们可能是要研究这个整体内的某个特定环境下的某个物理量变化。维数环境主要是指,经度,纬度,高度,时间这四个量。我们先设置好这四个量的取值,然后看这样的取值下,要研究的物理量是怎么变化的。
我们设置这四个量有两种方法(1)地球坐标法,以经纬度为单位:set lon | lat | lev | time val1 # |代表的是其中一个,val1是起点。val2是终点 (2)格点坐标法,以 格点数为度量单位:set x|y|z| t val1
补充:而且x和lon都表示从西到东指向的水平坐标,y和lat都表示由南向北的水平坐标,z和lev都指从地面到高空的垂直坐标,t和time都是时序坐标。 我们可以发现当所有维数都固定时,得到的是一个单值数据点,如果只有一维变化,得到的是一维数据线;二维发生变化得到的是二维平面图,也可以显示为一维曲线的动画序列;三维发生变化时可以看做一个二维剖面的序列,屏幕显示时设定一维作为动画维,以动画方式显示。总之,图形输出只能以一维或二维方式表达。
我们如果想知道当前维数环境是什么样的—q dims
-
图形类型的设置
当维数环境确定后,在默认情况下,一维变量输出的是单线图,二维变量是等值线图,那么我们想要输出其他类型的图形该怎么办呢。
用set gxout graphics_type 即可,graphics_type是用户选择的图形类型。
格点数据可以做的图:contour(二维等值线图),shaded(二维填色图),grid(二维场不绘图,以 格形式在各 格点中央标出数值),fwirte(图形不在屏幕上显示,而是将结果存入到相应的文件中)…
站点数据可以做的图:…
我们知道都可以做哪些图之后,具体的怎么设置还要具体的看 -
图形要素的设置
我们在确定图形类型之后,就要考虑如何设置图形要素了。因为图形的类型不同,要设置的图形要素也不相同。具体的设置书上都有。 -
坐标要素的设置:我们可以对x,y坐标轴标尺的取值范围进行设置,可以确定z方向上是否取对数尺度,可以设置x轴和y轴从开始值到结束值以及间隔,可以控制是否画 格线以及 格线的颜色粗细类型等,可以设置x,y轴的颜色,线宽和字符大小,可以设置x,y坐标轴标尺上要标记的值…
-
图注设置:可以做一个标题,可以在坐标轴边上对坐标轴做标记,可以设置x轴和y轴的维数方向取反方向
-
地图投影的设置:
-
绘图区域的设置:
-
屏幕显示设置:
-
动画显示设置:
实例:我们编写gs命令集(*.gs),通过run命令在交互环境下执行
一:绘制一维数据线,图形类型为‘line’型
最后在命令行中输入 run E:/line.gs
二:绘制二维剖面图,图形类型为等值线“contour”。命令集名字为contour.gs
这个图是经度纬度作为变量,看hgt的变化情况
可以看出命令集的大致流程是 打开数据描述文件—》设置维数环境—》设置图的一些参数—》出图—》结束
三:绘制阴影图,图形类型为等值线“shaded”型,命令集名称为“shaded.gs”
这个图像应该是经度纬度不确定是空气温度的分布图。
四:利用虚拟页面的设置在图形窗口将两幅图左右放置,以便观察不同时次高度场的变化情况。命令集名称为‘windows.gs’
补充:如何在一个页面上显示两张图呢,首先我们要用set vpage xmin xmax ymin
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!