当前位置:文档之家› 第九章Grads函数

第九章Grads函数

第九章Grads函数
第九章Grads函数

GRADS (Grid Analysis and Display System)

讲义(9)函数

内容提要

一、概况

二、函数详细介绍

一、概况

1、函数的调用

1)通过函数名直接引用,

2)参数放在括号中用逗号分开,

3)可以嵌套调用,

4)有些函数在运算时会改变维数环境。

2、函数的类型

二、数学函数

注意:sin/cos/tan等三角函数单位是弧度;

asin等反三角函数结果单位是弧度。

三、统计积分函数

1、ave函数

1)格式:

ave(expr,dexpr1,dexpr2<,tincr<,flags>>) 2)功能:

通用的求平均函数。

3)说明:expr是由dexpr1和dexpr2定义的维数范围内求平均的量。缺测值不参与求平均运算。

4)若求平均的维数是时间,可设定时间增量tincr,其单位与dexpr1和dexpr2一样。

5)flags为选项-b,表示对每个网格点取同样的权重求平均,包括终端点。

例如:求纬向平均

Set x 1

Set t 1 48

Set lev 200

set lat 0 40

Uave=ave(u,lon=0,lon=360,-b)。

求时间平均:

set t 1

set lon 60 150

set lat 0 40

set z 1

a=ave(u,t=1,t=48)

d a

注意:mean函数用法同上,但不加权

2、aave函数

1)格式:

aave(expr,xdim1,xdim2,ydim1,ydim2)

2)功能:求面积平均。

3)说明:

expr: 任何表达式

xdim1:X 维数方向的起始维数表达式

xdim2: X 维数方向的终止维数表达式

ydim1: Y 维数方向的起始维数表达式

ydim2: Y 维数方向的终止维数表达式

注意:

1)aave函数采用地球坐标进行运算,运算时考虑了不同纬度的权重。

例如:

Set t 1 48

Set z 1

Set x 1;set y 1

a=aave(u,lon=110,lon=150,lat=0,lat=40)

d a

2)amean()函数用法用上,不加权。

3、tmave()高级篇

4、asum()和asumg

对指定区域求和(二维求和)

5、sum()和sumg()

一维求和函数

6、max()/min()(高版本)

返回指定表达式的最大/最小值

maxloc/minloc()

返回指定表达式的最大/最小值的维数值(格点)系列使用这个命令后,括号内的维数自动固定.

例如:

设定t/z/固定,看每个纬带上沿x方向的最大值

d max(u,x=1,x=37)

d maxloc(u,x=1,x=37)

7、vint 函数

1)格式:vint(psexpr,expr,top)

2)功能:质量加权垂直积分函数,计算

exp (,,)exp r x y p dp ps r

top

3)说明:psexpr 表示地面气压变量,expr 表示被

积变量,top 表示积分上限(须为常数,单位hPa),本函数要求定义水平维数环境。如:vint(ps,u,100)表示对u 变量从ps 到100hPa 进行质量加权垂直积分。

4)gint(expr,dim1,dim2)普通积分函数(慎用)

8、scorr()

求空间相关系数

注意:两个场的空间相关系数是一个值,scorr函数之前的x/y维的设置没多大作用,函数会自动固定x/y 维,但如果设时间维变动,得到的是相关系数时间序列。

*时间序列

‘set x 1’;’set y 1’

‘set z 1’

‘set t 1 48’

‘d tloop(scoor(u,v,x=1,x=37,y=1,y=17))

剖面z-t:

‘set x 1’;’set y 1’

‘set z 1 2’

‘set t 1 48’

‘a=tloop(scoor(u,v,x=1,x=37,y=1,y=17))

‘d a’

9、tcorr()

求时间相关函数

10、空间回归/时间回归

reinit'

'open e:\liugd\data'

'set z 1'

'set t 1 '

‘set x 1’

‘set y 1’

'corr=sregr(u,v,x=1,x=37,y=1,y=17)' 'd corr'----求回归系数,一个数值

;

'c'

'vave=aave(v,x=1,x=37,y=1,y=17)'

'd corr*(u-uave)+vave'----回归场值

;

------------

'reinit'

'open e:\liugd\data'

'set z 1'

*'set t 1 '

'set z 1 2'

'set t 1 48'

'set x 1'

'set y 1'

*'corr=sregr(u,v,x=1,x=37,y=1,y=17)'

'corr=tloop(sregr(u,v,x=1,x=37,y=1,y=17))' 'd corr'

;

'c'

'set x 1 37'

'set y 1 17'

'uave=aave(u,x=1,x=37,y=1,y=17)'

'b=corr*(u-uave)+vave' 'set z 1'

'd b'

;

'reinit'

'open e:\liugd\data' 'set z 1'

'set t 1 48'

'set x 1'

'set y 1'

'a=aave(u,x=1,x=37,y=1,y=17)'

'set t 1'

'set x 1 37'

'set y 1 17'

'*d tregr(a,u,t=1,t=48)'-----回归系数'corr=tregr(a,u,t=1,t=48)'

'aave1=ave(a,t=1,t=48)'

'uave=ave(u,t=1,t=48)'

'd corr*(a-aave1)+uave'-----回归值

;

四、网格处理/平滑/差分函数

1、const函数

1)格式:const(expr,constant<,flag>)

2)功能:设置部分网格点的值取为常数constant。所有非缺测格点处的expr值取为常数,

3)flag说明:

-a: 所有网格点值均设定为指定的常数

-u:把缺测格点处的expr值设定为常数。

该函数对格点和台站资料均适用。

如:display const(p,0,-u)将变量p在缺测格点处的值设为常数0。

又如:在linefill图形类型的输出中,若须将其中的一条线设为水平直线:

set lon -90

set lat -90 90

set gxout linefill

set lev 500

display const(t,-20);t-273.16

2、maskout函数

1)格式:maskout(expr,mask)

2)功能:标记函数。

当mask所在的网格点值取为负值时,对应格点上的expr的值设定为缺测值;

当mask所在的网格点值取为正值时,对应格点上的expr值不变。

3)说明:该函数对格点和台站资料均适合。

例如:

file 1中的tsfc表示全球地表温度(在海洋上为SST)资料,file 2中的mask表示海陆标记(海洋上为0,陆地上为1)资料,若需显示SST的分布,则可:

maskout(tsfc,0.5 - mask.2)

3、skip函数

1)格式:skip(expr,skipx,skipy)

2)功能:设定样本的取样密度。

3)说明:

display skip(u,2)表示在x,y方向上对变量u隔一个网格点取一次值构成要显示的场,

display skip(u,1,3);v`表示在y方向隔二个点取一次值,而x方向取所有的格点进行显示操作。该函数主要用于对矢量场的稀疏化显示。

5、cdiff函数

1)格式:cdiff(expr,dim)

2)功能:中央差分函数

3)说明:

expr表示进行差分运算的量,

dim 表示进行差分运算的维数方向,为X,Y,Z中的任一个字符。

边界格点的运算值设为缺测。

例如,以下运算是计算水平涡度,其效果与hcurl 函数完全一样:

define dv=cdiff(v,x)

define dx=cdiff(lon,x)*3.1416/180

define du=cdiff(u*cos(lat*3.1416/180),y) define dy=cdiff(lat,y)*3.1416/180

display

(dv/dx - du/dy)/ (6.37e6*cos(lat*3.1416/180))

以下运算是计算温度平流:

define dtx=cdiff(t,x)

define dty=cdiff(t,y)

define dx=cdiff(lon,x)*3.1416/180

define dy=cdiff(lat,y)*3.1416/180

display

-1*((u*dtx)/(cos(lat*3.1416/180)*dx)+v*dty/dy)/6 .37e6

6、smth9函数

1)格式:smth9(expr)

2)功能:9点平滑函数。

3)说明:expr表示须平滑的表达式。该函数主要用于改善图形的输出质量,使其更加美观。当格点资料为1维时,9点平滑退化为3点平滑。

7、tloop函数

1)格式:tloop(expr)

2)功能:通过循环时间维数逐个逐个局地固定时间维来求expr的值,即对expr固定其时间维数求值,并在求值过程这对时间维进行逐个循环。

3)说明:典型用法是求面积平均的时间序列,由于

GrADS站点文件作图详细解决方案

Fortran+GrADS站点作图详解 mofangbao@气象家园 帖子导读: 以前论坛也有过相关的帖子,但是到目前为止,仍然不断的有朋友看了那些帖子之后还是不知道如何下手,于是我打算为纯粹的新手写一份说明,这份文档会非常详细,因此适合刚接触GrADS的朋友来参考。 帖子介绍了fortran文件中读写数据的基本知识,grads的站点文件的存放格式,如何通过fortran来写出这个格式的文件,如何建立站点文件的CTL文件,如何为站点数据生成映射文件,站点映射文件的作用,如何通过站点CTL文件来预览站点数据,如何用fortran生成grads支持的格点文件,如何给格点配置CTL文件,如何编写GS文件来进行插值,如何绘制等值线以及阴影图,如何屏蔽区域外的图形等内容。如果你对以上问题存在疑惑,希望这个帖子能够对你有所帮助,因此,看完这份文档之后,您应该可以做到这些: (会的就跳过吧,我也是犹豫了很久要不要写的,算是新手礼包的一部分吧) 开始之前,先了解站点数据的基本内容 一般情况下,我们看到的站点数据是这样的: 50353 126.39 51.43 100 89 50632 121.55 48.46 100 54 50527 119.45 49.13 100 29 50434 121.41 50.29 100 46 50557 125.14 49.10 100 83 50745 123.55 47.23 100 80 50756 126.58 47.26 100 74 50788 131.59 47.14 100 36 50873 130.17 46.49 100 31 50978 130.57 45.17 100 59 第一列为站号,第二、三列为经纬度,第四、五列为其他数据。当然,也可能是把经纬度单独存放,然后数据单独存放,比如气候中心免费开放的160站的月平均温度降水值。如果是micaps资料可以查看micaps用户手册。这个例子中使用的就是micaps的第三类数据格式,示例文件可以从这里下载: (资料下载) 除了了解这些,还必须了解该数据的缺测值用什么来表示,这个在后面的数据描述文件中要用到。 1、在fortran中读入这些资料 在使用fortran之前,请确保你已经安装了fortran编译器,如果你是xp系统,建议安装CFV6,如果是win7系统,那么可以安装microsoft fortran powerstation4.0(以下简称4.0),这两个软件在气象资料站均有下载,安装完成后,请在你磁盘的某个文件夹下面新建一个文件夹用于本次作图,如果使用的是CVF6,该文件夹的路径中不要包含中文名。新建文件夹完成后,从开始菜单打开fortran编程窗口,然后点击file->new,新建一个free format的自由格式fortran文件,4.0的直接建立一个TextFile即可:

grads常用命令

第一个命令: 这样将得到一个动画显示的序列,现在输入: claer set lon -90 set lat -90 90 set lev 1000 100 set t 1 d t d u 该情况下我们设置y(纬度)和z(高度)变化,所以我们得到一个竖直切面图。我们显示了两个变量,他们重叠在一起。你可以让任意多的变量重叠在一起,只要你不使用clear命令就行了。 另一个例子,这种情况X和T是变化的(哈莫图): c set lon -180 0 set lat 40 set lev 500 set t 1 5 d z 现在已经知道怎样使用选定的部分数据绘图了,下面我们学习怎样操作数据。设置维数环境为Z,Y变化: clear set lon -180 0 set lat 0 90 set lev 500 set 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方向作平均并求距平: clear d z-ave(z,x=1,x=72) 也可以做时间差分: clear d z(t=2)-z(t=1) 完整规范的变量名是:name.file(dim |-|=va lue,…) 如果我们打开了两个文件,也许一个是模式输出,另一个是分析,我们应该区分用如下方法二者: display z.2-z.1 另一个内置的函数通过有线差分计算水平涡度相关 clear d hcurl(u,v) 还有另外一个计算数值方向的质量积分: clear d vint(ps,q,275) 这儿我们计算了可降水量(单位mm)现在来讨论控制图形输出的话题。目前为止,我们一直让GrADS 选择默认的画线间隔。我们可以这样自己设定:

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 file ga->q dim ga->q ctlinfo 写标题:ga-> draw title 清除图面:ga-> c 同时打开两个文件: ga->open model.ctl ga->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.1 ga->set mpdraw on 如为off,不画地图背景(非经纬度数据需此项)ga->set poli on 如为off不画国界省界等。 ga->set map auto 由系统自定地图背景的颜色、线型和粗细。 而set map color >由用户自定义。 ga->set mpvals -140 -40 15 80 极射投影经纬度范围。 ga->set mproj nps 北半球极射投影(其它取值:latlon:等比经纬度 投影(缺省);scaled:经纬度投影并冲满整个绘 图区;sps:南半球极射投影;Lambert: lambert 方式投影;robinson: robinson式投影;off:关闭 地图投影,缺省是打开的。) ga->set mpdset mres 取值:lowres/mres/hires分别代表可使用 低分辨率(缺省)、中分辨率和高分辨率的地图数据 库。

GrADS教程

第一讲 GrADS简介 一、G r A D S的应用领域及其功能 *GrADS的全称:“The Grid Analysis and Display System” *应用领域:可在UNIX工作站以及个人微机上进行地球科学领域的数据资料分析和绘图 *功能:对数据进行访问、分析和绘图 1.可以根据需要绘制单线图、直方图、等值线图、填色等值线图、流线图、矢量图、站点模型图等各类图形. 2.用描述语言编程,达到理想的绘图效果 3.可以把在GrADS中绘制的图形以文件的形式保存起来,以备对其进行编辑 4.调用GrADS的内部函数,能够对数据进行某些特定的计算,然后输出计算结果 二、GrADS中常用的基本概念 *数据格式:GrADS能够识别的数据为二进制无格式直接或顺序记录格式,该种格式数据的生成可以通过Fortran语言编程来实现。 *数据类型:格点数据(NCEP/NCAR的再分析资料)、站点数据(站点实测资料)、Grib数据(NMC产品)。*维数环境:GrADS的操作对象为4维的数据集(4D data set),包括空间三维(纬度、经度、高度)和时间一维。可以固定其中的一维或者几维以获得低于四维的数据子集。此概念是对于格点资料而言的。维数环境的定义可以在两种坐标上进行。一种是地球坐标(world coordinate),以经纬度为度量单位;一种是格点坐标(grid coordinate),以网格点数为度量单位。 *几种文件类型: *.dat―数据文件 *.ctl—原始数据描述文件 *.gs―GrADS控制文件,用命令run执行之 *.exe―GrADS在DOS环境下的各种执行文件 三、启动和退出GrADS *启动GrADS的两种方式: 1.在dos环境下直接输入grads命令 即:切换到MS-DOS方式,进入到 F:\pcgrads\msdos子目录下 输入:grads 回车 2.从windows桌面上的“我的电脑”进入F:\pcgrads\子目录,然后双击g.exe图标 *注意:在启动GrADS时,系统会问你以何种方式进入。此时有四个参数可供选择:b—以批处理的形式运行GrADS l—以风景画的形式运行GrADS,此时其硬拷贝输出的区域大小为11×8.5英寸。 p—以肖像画的形式运行GrADS,此时其硬拷贝输出的区域大小为8.5 ×11英寸。 c—在GrADS启动后,首先执行其后提供的命令。 如果直接键入回车,GrADS将以风景画的形式启动。 *因此,在画图时要注意,不要把画图区域取得超过硬拷贝输出区域的大小。 *进入GrADS后一般可以看到两个窗口,上面一个为字符窗口,可以输入命令以及显示执行命令后的回应信息;下面一个为图形输出窗口。两个窗口中红色的为当前窗口。 *退出GrADS时,在字符窗口中键入:

第二章grads基本命令2013

GRADS (Grid Analysis and Display System) 讲义(2)基本操作命令 主要内容 一、Unix和Dos环境下的命令(了解) 二、Grads基本操作命令 三、查询命令讲解 四、三类坐标简介

一、Unix和Dos环境下的命令

二、基本操作命令 命令浏览 1. open /sdfopen/xdfopen 打开数据描述文件 open *.ctl 2. d 显示一个GrADS "表达式“ 3. set 设置在绘图中所需要的环境变量(以后 讲) 4. c 清屏、换页 5. quit 退出GrADS 6.run:*.gs 7.qury(q) 查询命令(见下面的四) 8.生成图形文件 1) Enable print *.gmf …… d var print

disable print 2)printim Printim filename options (输出文件名) (任意选项) Options: Gif :输出gif格式(缺省PNG格式) Black/white:采用黑色/白色背景 xNNN/yNNN:水平分辨率 比如: printim uwind.png x1000 y800 Printim 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),变量值是一维图形的变量值坐标,如曲线图等。 3、格点坐标 指格点资料对应的格点序号。 例子: 假设已经显示了一个纬向时间剖面图: query xy2w 5.0 4.5

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:当所绘制坐标轴为时间轴时产生作用,表示要显示的时间格式

GrADS绘图软件安装及入门

GrADS绘图软件安装于入门

目录 第一章GrADS绘图软件概述 1.GrADS绘图软件简介 2.GrADS绘图软件的安装(windows环境) 3.1在windows环境下安装GrADS软件包第二章GrADS绘图模板 1.GrADS示例演示 1.1 启动GrADS 1.2 退出GrADS 1.3 示例演示GrADS命令的使用

第二章GrADS绘图软件概述 1GrADS绘图软件简介 The Grid Analysis and Display System(GrADS) 是一套应用广泛、使用方便的科学数据绘图软件包。其主要特点: ●GrADS属于自由软件,可以从Internet上免费获得。 ●可运行于各种Windows 和Unix工作平台。 ●GrADS可用于4D数据的分析。既经度、纬度、层(气压层、高度层等) 和时间/xyzt 4维。数据可以是格点化的数据或离散点数据。GrADS 特别适用于气象类数据的分析。但也完全可以用于更广泛类型的数据分 析。 ●GrADS有多种显示方式:等值线、流线、矢量图、风矢量图、站点填 图、折线图、直方图等多种两维图形。 ●可处理多种数据格式的数据。GRIB、NetCDF、HDF-SDS等通用数据格 式和系统自定义的一种二进制数据格式。 ●采用命令行输入的方式交互式地显示图形。并有多种命令对数据进行再 加工。如求平均;计算涡度、散度、垂直积分、计算差分等。 ●图形可以按多种格式存储:ps、png、jpg、tiff、gif、windows metafile 等。自身以metafile格式存储。 ●提供多种辅助工具软件。如看图、打印、图形格式转换(gv)等工具。 2Internet上的GrADS资源 2.1 GrADS在Internet上的主页 GrADS主页地址: 从GrADS主页上可以找到预编译好了的适合于windows环境下的GrADS软件包, 2.2 windows环境下GrADS资源 ●grads-2.0.a7.oga.3-win32_superpack.exe——GrADS软件包安装执 行程序。目前在windows环境下较新的版本为GrADS第2.0版。 ●下载GrADS演示数据: 从下载: model.le.dat 和model.le.ctl文件; 或者GRIB码格式的数据: model.grb、model.gmp和model.ctl 3GrADS绘图软件的安装(windows环境) 在windows下运行GrADS的条件: ●安装GrADS软件包 3.1在windows环境下安装GrADS软件包 运行上述可执行文件(双击)(grads-2.0.a7.oga.3-win32_superpack.exe)进

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 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

GRADS学习

”Grads”教学中的一些体会 李丽平 目前有很多流行的绘图软件,如MICAPS、Grapher、Excel、GrADS、Surfer、NCL、MATLAB等,不同的软件有其不同的特点和优势。GrADS不仅能够绘制图形、进行简单统计计算、物理量的计算,还可进行数据格式的转换。当前气象学研究中许多格点资料(如NCEP/NCAR和ECWMF资料)均需用GrADS软件进行处理,该软件因此也成为气象、海洋专业科研工作者和高校学生做研究论文使用最广泛的的绘图软件之一,并成为本科生和函授研究生必须选修的一门课程。 GrADS作为一门应用性的课程,内容包含了若干命令,在学时有限的情况下,如何让学生在短时间内掌握其中最核心的内容,做到尽快入门,这是教学中值得研究的一个重要问题。本文是作者根据多年教授GrADS课程的教学经验,从一个宏观的角度去引导学生如何尽快掌握GrADS的精华,这对于初学者的学习起到一个引导的作用,对于已经学习了GrADS 课程,但还未更多使用这一软件的同学,起到进一步理清思路,凝练重点,促进知识巩固的作用。 1 GrADS学习中的几个重点命令 1.1 GrADS作图的一般步骤 GrADS作图一般包括四个步骤,即打开数据描述文件、输入GrADS内部命令、保存图形、退出GrADS。 1.2 几个重要的GrADS命令 1)打开文件的命令(open/sdfopen/xdfopen) 主要用于打开数据描述文件或者数据文件,命令形式为 ga->open data.ctl ga->sdfopen u.nc ga->xdfopen wind.ddf 2)查询命令(query或者q)

GrADS

实习一数据文件的转换及数据描述文件的建立 1.实习目的: (1)通过编写程序,熟悉数据GrADS的数据格式; (2)熟练编写将ASCII码数据转换为二进制格式的Fortran程序; (3)熟练建立相应的CTL文件。 2. 实习要求: (1)编写Fortran程序,将ASCII码数据资料文件转换成二进制文件:月平均风场(uv.grd) 月平均高度场(hgt.grd) (2)写出二进制文件相应的数据描述文件:uv.ctl,hgt.ctl (3)利用GrADS基本操作命令显示该地区850hPa和200hPa uv风场,最后保存图nm形。 3 实习步骤: (1) 利用“写字板”程序打开*.dat数据文件,熟悉该数据资料; (2 )按要求编写Fortran程序,将所给的ASCII码数据资料文件转换成二进制无格式直接存取文件,结果保存为**.grd; (3) 通过“写字板”或“记事本”程序编写相应的数据描述文件,保存为**.ctl; (4) 画出2002年1月850hPa风场图,与图1比较验证数据正确性; 4.实习报告 1)所用资料 “data”文件夹下有ASCII码数据资料文件: 月平均风场:u200.dat、u850.dat、 v200.dat、v850.dat 月平均高度场:hgt500.dat

经纬度范围:60-150°E,0-40°N 时间范围:2002.1-2005.12 共48个月 水平范围:37×17个网格点,分辨率为2.5°×2.5° 2)所编写的Fortran程序 parameter(nx=37,ny=17,nt=48) dimension u200(nx,ny,nt),v200(nx,ny,nt),h500(nx,ny,nt), u850(nx,ny,nt),v850(nx,ny,nt) open(1,file='e:\dwj\u200.dat') open(2,file='e:\dwj\v200.dat') open(3,file='e:\dwj\u850.dat') open(4,file='e:\dwj\v850.dat') open(5,file='e:\dwj\hgt500.dat') do it=1,nt read(1,*)((u200(i,j,it),i=1,nx),j=1,ny) read(2,*)((v200(i,j,it),i=1,nx),j=1,ny) read(3,*)((u850(i,j,it),i=1,nx),j=1,ny) read(4,*)((v850(i,j,it),i=1,nx),j=1,ny) read(5,*)((h500(i,j,it),i=1,nx),j=1,ny) enddo close(1);close(2);close(3);close(4);close(5) open(12,file='e:\dwj\uv0.grd',form='binary') do it=1,nt

grads站点文件作图教程

利用Grads画站点图(contour、shaded、grfill等) 1.利用Fortran程序将数据输出为grd格式。参考程序如下: parameter(num=160) (站点数) character*8 sta(num) (站名名数组,可任意) dimension xlon(num),ylat(num),rc(num) (经、纬度数组及其上对应的数值) open(30,file='cor.grd',form='unformatted') (工作站) open(30,file='cor.grd',form='binary') (微机) do 100 lev=1,20 (共输出20个时间上的观测或结果) tim=0.0 ilev=1 nflag=1 do 10 i=1,num sta(i)=char(i) write(30) sta(i),ylat(i),xlon(i),tim,ilev,nflag write(30) rc(i) 10 continue ilev=0 write(30)sta(num),ylat(num),xlon(num),tim,ilev,nflag (每个时次的结束) 100continue close(30) 2.ctl文件(创建与步骤1中输出的站点数据配对的station.ctl文件): dset cor.grd format sequential dtype station stnmap cor.map undef -9.99e33 tdef 20 linear jun1958 1mo vars 1 r 0 99 correlation endvars 3.为插值函数准备格点数据grid.grd及对应的grid.ctl dset grid.grd undef -99.0 xdef 71 linear 70 1 ydef 41 linear 15 1 zdef 1 linear 1 1 tdef 20 linear jun1958 1mo vars 1 g 0 99 grid data prepared for oacres function endvars 注意:两个ctl(station.ct l和grid.ctl)文件中的时间要严格一致。

相关主题
文本预览
相关文档 最新文档