文档库 最新最全的文档下载
当前位置:文档库 › GrADS下任意方向垂直剖面的实现

GrADS下任意方向垂直剖面的实现

GrADS下任意方向垂直剖面的实现
GrADS下任意方向垂直剖面的实现

GrADS下任意方向垂直剖面分布的实现

缪明何宏让

(解放军理工大学气象学院大气科学系)

余清平廖德敏

(93966部队气象室)

摘要在三维数值模拟研究中,常常要分析某一模式预报变量沿某一方向的垂直剖面分布,在GrADS下,用户可很方便地实现某一模式预报变量的经纬向垂直剖面分布的分析,但如何实现非经纬向的垂直剖面分布的分析?本文针对困扰一般GrADS用户的这个问题,提出了在GrADS下如何实现某一模式预报变量沿某一方向(经纬向和非经纬向)的垂直剖面分布的分析。试验表明,该法简单、易行、可靠,在实际中有较强的应用价值。

关键词:GrADS,垂直剖面分布

Abstract The vertical cross-section distribution of model prognostic variable often is needed to be analyzed in three dimensional numerical simulation. The user of GrADS easily realizes the distribution of meridional or zonal vertical cross-section, but how to realize the distribution of non-meridinal or non-zonal vertical cross-section is the problem which puzzles the users of GrADS. In this paper, a simple and reliable method is provided to resolve the problem. The experiments show that the method is applicable and practicable for user of GrADS to analyze the distribution of vertical cross-section in the research. .

Key words: GrADS, distribution of vertical cross-section.

引言

GrADS(Grid Analysis and Display System)是当前气象学中应用最为广泛的图形图像处理软件之一,它功能强大,使用方便而深受用户的欢迎。利用它可直接实现图像的动画显示,在三维数值模拟研究中,在固定模式高度的情况下,可较为方便地显示某一模式预报量在该层次上的水平分布;在固定经(纬)度的情况下,还可方便地显示某一模式预报量沿该经(纬)度的经(纬)向垂直剖面分布。但在实际问题的三维数值模拟研究中,用户关心的不仅仅是模式预报量沿某一经纬向的垂直剖面分布,更多的时候用户关心的是沿某一方向的垂直剖面分布,但在GrADS下如何实现这一功能,这可能是困扰一般的GrADS用户的问题。其实,GrADS除了强大的图形图象的分析处理能力外,还有较强的数据处理能力,我们可利用GrADS的交互性和数据处理的特点,利用GrADS脚本语言的编程技术,按GrADS的数据格式,通过提取所要分析的模式预报量沿某一方向上的值(ascII码形式),然后再将提取ascII 码值转换成GrADS支持的二进制格式,并为转化后的数据编写相应的数据描述文件(ctl文件),在GrADS下打开它就可实现某一模式预报量沿该方向的垂直剖面分布的分析。

一、实现的思想和步骤

在介绍实现的思想和gs编程(GrADS Script programing)之前先说明GrADS下某些基本的常识和某些基本命令的含义和功能。

1.GrADS基本常识和基本命令的简介

(1)进入GrADS后,在“ga ->”后每执行一个GrADS命令,在文本窗口都会返回1行或2行的的文本代码,返回的代码即为GrADS的默认变量“result”值,每执行一次GrADS 命令,原来的“result”值将被刷新成刚执行的GrADS命令返回码。在gs编程中,可通过代码“say result ”看到默认变量“result”对应的返回文本代码。

(2)命令“q bpos”:

功能:确定鼠标在图形窗口中所点击处的位置(页面坐标)

返回码:执行完该命令后,有一行形如“position = x0 y0 1 0”的文本返回码,其中x0、y0即为用户在图形窗口中点击处对应的页面坐标。

注意:执行该命令后,GrADS将等待用户的响应,直到用户用鼠标点击图形窗口后才可继续执行其它的命令或返回到“ga ->”状态下。

(3)在GrADS下成功打开一个.ctl描述文件对应的数据文件后,在某一水平显示环境下(即t、z一定的情况下)一旦执行了“d f”(f为.ctl文件中的某个变量名),图形窗口任何一点就在页面坐标、经纬坐标和格点坐标三者间建立起一一对应的关系,这种对应关系只有在一定的缩放比例环境下才有意义,打开.ctl描述文件对应的数据文件后,执行命令“d f ”的一个目的就是要在页面坐标与经纬坐标间建立一定的缩放比例。执行“clear”命令或“reset”命令后,页面坐标与经纬坐标间建立一定的缩放比例自动终止。

(4)命令“q xy2w x0 y0”:

功能:实现页面坐标(x0,y0)与对应的经纬坐标(lon0,lat0)之间的转换;

返回码:在页面坐标与经纬坐标间建立一定的缩放比例后,执行该命令,在文本窗口中将有一行形如“Lon = lon0 Lat = lat0”文本返回码,其中lon0、lat0为与页面坐标(x0,y0)对应的经纬度。

注意:只有在页面坐标与经纬坐标间建立起一定的缩放比例的前提下,才会有“Lon = lon0 Lat = lat0”的返回码,也才能实现页面坐标(x0,y0)与对应的经纬坐标(lon0,lat0)之间的转换。

(5)几个GrADS脚本编程语言的内部函数(intrinsic function)

sublin (string, nth_line):

功能:从字符串“string”中提取第“nth_line”行子字符串。

注意:“nth_line”为正整数。

举例:假设string=“Demonstrate how to use

the intrinsic function!”

则:sublin(string,2)=“the intrinsic function!”

subwrd (string,nth_word):

功能:从字符串“string”中提取第“nth_word”个“字(word)”。

注意:“nth_word”为正整数;在GrADS 下,用空格符来作为“字(word)”与“字(word)”间的分隔符,因此“字(word)”是指任何两相邻两空格间的非空隔字符或非空隔字符串。

举例:如:string的值同上,则:subwrd (string,6)=“intrinsic”;

如:string=“Demonstrate how to use

the intrinsic-function!”,即“intrinsic”与“function”用连字符“-”相连后,则:subwrd (string,6)=“intrinsic-function!”

再如:“Demonstrate how to use

the intrinsic function!”,即“intrinsic”与“function”间多加入几个空隔后,则:subwrd (string,6)=“intrinsic”。

用户通过这两个内部函数可将执行完GrADS命令后返回的文本代码中有用的部分提取

出来以便进一步的处理。

2.实现思想

任意模式预报量f可看成是空间和时间的函数f(x,y,z,t),在GrADS下,视模式预报量f为x,y,z,t的一个四维变量,当固定时间(t=t0)和垂直方向的层次(z=z0),通过命令“display f” 的可得到模式预报量f在t=t0时刻,z=z0模式高度上的二维水平分布;当固定所有维,即x=x0,y=y0,z=z0和t=t0一定的情况下,“display f”得到的是模式预报量f在时间t=t0时刻、在空间某一点M(x0,y0, z0)的值,用户可利用GrADS语言的编程技术编写一个简单的gs程序将所关心的模式预报量f在固定时空的情况下按照GrADS的数据格式依次地沿某一方向、自下而上地将该模式预报量的值完全提取出来,并将它以文件的形式保存,然后通过一个简单的Fortran程序将提取出的模式预报量f的ascII码形式的值转换成二进制,并为转化后的数据编写相应的数据描述文件,在GrADS下打开该描述文件,即可显示该模式预报量f沿该方向的垂直剖面分布。

3.实现的步骤

(1)确定要分析的垂直剖面的方向,即确定垂直剖面的剖线AB。

(2)按一定的精度(水平分辨率)确定剖线上点A0、A1、A2…A n(A0和A n分别与A 和B重合)的位置选取的水平分辨率最好等于或略大于格点资料的水平分辨率。

(3)按先从A0到A n、然后从下到上的顺序提取某一时刻模式预报量f在直线AB上各点(A0、A1、A2…A n)在各个高度上的值,并将提取的值以文件的形式保存以便处理。

(4)编写Fortran程序将提取的值转化成二进制的的数据格式。

(5)为转化后的GrADS二进制数据编写相应的.ctl描述文件。

(6)在GrADS打开.ctl描述文件,对它进行正常操作,完成物理量f沿剖线AB的垂直剖面分布的分析。

二、实例分析与应用

1.可靠性检验

(1)利用直接法与利用本法的经纬向的垂直解剖面分布的比较

如图1(a)和图(b)均为某一时刻三维模拟的预报量u沿同一纬度的纬向垂直剖面分布,其中图(a)是直接利用GrADS自身支持的沿某一经纬向的垂直解剖面分布显示功能得到的结果,图(b)是利用本文所介绍方案的一个显示结果,从中可看出,利用本文所介绍的方案显示的结果与直接利用GrADS自身支持的沿某一经纬向的垂直解剖面分布显示功能得到的结果是较为一致的。从图2(a)和(b)中也可得到类似的结论。可见,本文所介绍方案是可靠的。

2.实际应用

如图3,该图是一次飑线过程三维数值模拟得到的某一水平截面的垂直速度场分布,图中呈西南-东北走向带状分布的垂直上升运动即为与飑线相联系的强对流带,在飑线的垂直结构分析中,分析研究某些模式预报量沿横越飑线方向(与强对流带垂直)的垂直分布是十分必要的,利用本文所介绍的方案很容易地实现模式预报量沿横越飑线方向的垂直剖面分布的分析。

按照上述所介绍的方法步骤,即可很容易地实现模式预报量(水平速度u分量、垂直速度w和u-w流场)沿横越飑线方向(图3中直线AB)的垂直分布(图4)。

(a)(b)

图1 模拟u分量的纬向垂直剖面分布(a)直接法(b)间接法

(a)(b)

图2 模拟u分量的经向垂直剖面分布(a)直接法(b)间接法

图3:垂直剖面剖线示意图,其中AB为所选取的剖线.

(b) 垂直速度W(m/s)

(c) U-W 流场

图4 模拟结果沿直线AB的垂直剖面分布

三、结束语

本文介绍了在GrADS下实现沿某一方向(经纬向和非经纬向)的垂直剖面分布分析的一个简单、易行的方案,通过本方案与GrADS自身支持的沿经纬向的垂直剖面分布的分析

比较,表明该法在分析沿某一方向的垂直剖面分析中是可信的。结合笔者三维模拟飑线中遇到的一个实际问题,利用该法较好地分析了相对飑线的水平速度u分量、垂直速度w和垂直环流结构,发现该法在实际应用中是可行的。

参考文献:

[1] Brian Doty,GrADS用户手册。

附录:

数据提取gs源程序

function main()

' open XXX \ xxx.ctl ' // 打开数据描述文件(“XXX”为路径名,“xxx.ctl”文件名)

' d varnam ' // 显示描述文件中某一物理量“varnam”以便更好确定剖线位置和建立// 图形窗口中页面坐标与经纬坐标的缩放比例环境(scaling environment)

****************************** 确定剖线位置***********************************

say ' Click graphic windows to specify the first point cross section_line! ' // 文本提示,在文// 本窗口看到“Click graphic windows to specify the first point cross section_line!”

// 的提示后,鼠标点击图形窗口以确定剖线的起点位置A

' q bpos '

x0=subwrd (result,3)

y0=subwrd (result,4) // 图形窗口上鼠标点击处(剖线起点A)对应的页面坐标(x0,y0)

say ' Click graphic windows to specify the second point cross_section_line! '

' q bpos '

x1=subwrd (result,3)

y1=subwrd (result,4) // 剖线终点B对应的页面坐标(x1,y1)

' draw line 'x0' 'y0' 'x1' 'y1' ' // 在图形窗口中画出剖线,即连接点A(x0,y0)到点

// B(x1,y1)的线段

***** 求解点A(x0,y0)和点B(x1,y1)对应的经纬坐标A(lon0,lat0)和B(lon1,lat1)*****

' q xy2w 'x0' 'y0' ' // 将页面坐标(x0,y0)转换为对应的经纬坐标(lon0,lat0)lon0=subwrd (result,3)

lat0=subwrd (result,6)

' q xy2w 'x1' 'y1' ' // 将页面坐标(x0,y0)转换为对应的经纬坐标(lon1,lat1)lon1=subwrd (result,3)

lat1=subwrd (result,6)

********** 求解点A(lon0,lat0)到点B(lon1,lat1)的实际距离(L) *************

Lx=(lon1-lon0)*DisPerLon // DisPerLon为单位经度对应的实际距离(km)

Ly=(lat1-lat0)*DisPerLat // DisPerLat为单位纬度对应的实际距离(km)

// 实际应用中必须给出DisPerLon和DisPerLat的值' d pow ('Lx',2)+pow ('Ly',2)'

L=subwrd (result,4)

'd pow ('L',1/2)'

L AB=subwrd (result,4) // L AB为点A(lon0,lat0)到点B(lon1,lat1)的实际距离

********* 求取相邻各等距点间的经度增量(inclon)和纬度增量(inclat)*********

decimal=L/horRes // horRes为直线上相邻各点间的距离(水平分辨率)

// 实际应用中必须给出horRes的值,给出的值略大于模式水平分辨

// 率为宜

decimal_part=substr(decimal,3,20)

n=decimal-decimal_part

inclat=(lat1-lat0)/n

inclon=(lon1-lon0)/n

*** 计算直线AB上各等分点A0、A1、A2…A n (A0和A n分别与A和B重合)所在经纬度**** i=1

while (i<=Num_of_point)

lon.i=lon0+(i-1)*inclon

lat.i=lat0+(i-1)*inclat

i=i+1

endwhile

********** 按GrADS数据格式提取t=t0时刻模式预报量“varnam”***** ***** ********* 在直线AB上各点(A0、A1、A2…A n)在各个高度上的值**********

'set t t0'

nz=1

while (nz<=NZ) // NZ为模式的垂直分层大小

i=1

'set z 'nz' '

while (i<=n)

'set lon 'lon.i' '

'set lat 'lat.i' '

'd 'varnam''

dummy=sublin(result,2)

data=subwrd(dummy,4)

write ('XXX\gad.dat', data, append) // 将提取的数据保存到文件“gad.dat”中

(“XXX”为路径名)//

i=i+1

endwhile

nz=nz+1

endwhile

close('XXX\varnam.dat')

return

liGrads讲义(1)

Last Update: Feb 25, 2008

GRADS (Grid Analysis and Display System) 讲义(1) 内容提要 一、引言 二、GrADS绘图软件包的安装 三、运行GrADS绘图软件包

一、引言 1.绘图工具的选择 1)实用 2)方便 3)美观 4)高效 5)取长补短;不同的软件可相互补充使用。2.气象常用绘图软件 MICAPS Excel------1D形 Grapher----1D GrADS----1D和2D平面图 Surfer-----2D平面图和3D曲面 NCL----1D、2D平面图和3D曲面

Vis5D----1D、2D平面图和3D曲面 MatLab---1D、2D平面图和3D曲面 3.学习GrADS软件的目的和要求 1)侧重于画图及图形美观,为毕业论文做准备。 2)熟悉基本概念及基本绘图指令,学会简单编程。 4.为什么选择GrADS软件 1)专门为从事大气海洋研究的科研和业务人员设计(COLA的Brian Doty)。 2)完全免费的软件。 GrADS主页https://www.wendangku.net/doc/507400575.html,/grads/ 中文讨论区:LASG动力论坛(中文手册下载、讨论)

3)需要读取的数据文件是无格式数据文件,体积小,运算速度快。 4)可以在目前流行的操作系统下安装,如PC 的Windows系列, Linux, 和工作站下的 UNIX. 5、实用文档 1)GrADS绘图基础教程马红云等 2)LASG编《GrADS适用手册》 3)GrADS reference card---绘图命令和函数查 询 放在手边,随时查找命令。

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绘图软件安装及入门

GrADS绘图软件安装于入门

目录 第一章GrADS绘图软件概述 1.GrADS绘图软件简介 2.GrADS绘图软件的安装(windows环境) 3.1在windows环境下安装GrADS软件包第二章GrADS绘图模板 1.GrADS示例演示 启动GrADS 退出GrADS 示例演示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资源 GrADS在Internet上的主页 GrADS主页地址:从GrADS主页上可以找到预编译好了的适合于windows环境下的GrADS软件包, windows环境下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下任意方向垂直剖面分布的实现 缪明何宏让 (解放军理工大学气象学院大气科学系) 余清平廖德敏 (93966部队气象室) 摘要在三维数值模拟研究中,常常要分析某一模式预报变量沿某一方向的垂直剖面分布,在GrADS下,用户可很方便地实现某一模式预报变量的经纬向垂直剖面分布的分析,但如何实现非经纬向的垂直剖面分布的分析?本文针对困扰一般GrADS用户的这个问题,提出了在GrADS下如何实现某一模式预报变量沿某一方向(经纬向和非经纬向)的垂直剖面分布的分析。试验表明,该法简单、易行、可靠,在实际中有较强的应用价值。 关键词:GrADS,垂直剖面分布 Abstract The vertical cross-section distribution of model prognostic variable often is needed to be analyzed in three dimensional numerical simulation. The user of GrADS easily realizes the distribution of meridional or zonal vertical cross-section, but how to realize the distribution of non-meridinal or non-zonal vertical cross-section is the problem which puzzles the users of GrADS. In this paper, a simple and reliable method is provided to resolve the problem. The experiments show that the method is applicable and practicable for user of GrADS to analyze the distribution of vertical cross-section in the research. . Key words: GrADS, distribution of vertical cross-section. 引言 GrADS(Grid Analysis and Display System)是当前气象学中应用最为广泛的图形图像处理软件之一,它功能强大,使用方便而深受用户的欢迎。利用它可直接实现图像的动画显示,在三维数值模拟研究中,在固定模式高度的情况下,可较为方便地显示某一模式预报量在该层次上的水平分布;在固定经(纬)度的情况下,还可方便地显示某一模式预报量沿该经(纬)度的经(纬)向垂直剖面分布。但在实际问题的三维数值模拟研究中,用户关心的不仅仅是模式预报量沿某一经纬向的垂直剖面分布,更多的时候用户关心的是沿某一方向的垂直剖面分布,但在GrADS下如何实现这一功能,这可能是困扰一般的GrADS用户的问题。其实,GrADS除了强大的图形图象的分析处理能力外,还有较强的数据处理能力,我们可利用GrADS的交互性和数据处理的特点,利用GrADS脚本语言的编程技术,按GrADS的数据格式,通过提取所要分析的模式预报量沿某一方向上的值(ascII码形式),然后再将提取ascII 码值转换成GrADS支持的二进制格式,并为转化后的数据编写相应的数据描述文件(ctl文件),在GrADS下打开它就可实现某一模式预报量沿该方向的垂直剖面分布的分析。 一、实现的思想和步骤 在介绍实现的思想和gs编程(GrADS Script programing)之前先说明GrADS下某些基本的常识和某些基本命令的含义和功能。

GrADS 精致绘图说

GrADS 精致绘图说

【转】GrADS 精致绘图说(一) 分类:技术文摘 2007.2.13 21:37 作者:步行者| 评论:0 | 阅读:2872 [程序见GrADS Script Library] 1. basemap.gs: basemap L | O | U 在低分辨率海岸廓线范围内用颜色覆盖陆地/海洋。适用于各种投影方式,需lpoly.asc, lpoly_hires.asc, lpoly_US.asc, opoly.asc, opoly_hires.asc文件。 其中:L(l):覆盖陆地,O(o):覆盖海洋, U(u):覆盖20N-50N的墨西哥和加拿大领土(低分辨率,适用美国), fill_color:填充色号,缺省为15,out_color:廓线的颜色号,缺省为15, hi/lo:高分辨率('set mpdset hires',仅对15N-53N, 130W-60W区域)/低分辨率。 2. cbar.gs、cbarn.gs、cbarc.gs、cbar_l.gs和cbar_line.gs: cbarn sf vert xmid ymid cbarc center_x center_y back_color 绘制'set gxout shaded'图形的填色标尺。sf:色标尺寸,1为全尺寸,0.5为半尺寸;vert:0为水平,1为垂直;xmid,ymid:色标中心点的位置。 cbar_l -x X -y Y -n number -t text -p cbar_line -x X -y Y -c color -m mark -l linestyle -t text -p 加'set gxout line'的图例说明。其中:-x,-y:图中x和y的位置,-n:线条的数目(最多可为10条),-t:文字说明的内容(最多10条,需双引号括起),-c:线和标记的颜色,-m:定义标记;-l:定义线型,-p:用户可在图中点击给定图例的放置位置。 3. colors.gs: 为雪盖(颜色序号40~45)、降水(颜色序号50~59)及温度(颜色序号64~85)资料的shaded图设置填充色。 【转】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 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绘图软件使用手册

GrADS绘图软件实用手册 2002年1月

目录 第一章GrADS绘图软件概述 1.GrADS绘图软件简介 2.Internet上的GrADS资源 2.1GrADS在Internet上的主页 2.2windows环境下GrADS资源 3.GrADS绘图软件的安装(windows环境) 3.1在windows环境下安装GrADS软件包 X server 的安装 第二章GrADS绘图模板 1.GrADS示例演示 1.1 启动GrADS 1.2 退出GrADS 1.3 示例演示GrADS命令的使用 2.GrADS绘图模板 3.GrADS模板的高级应用 GrADS描述语言 GrADS高级模板的应用 第三章GrADS数据格式 1.格点数据描述文件 1.1 数据描述文件各项解释 1.2 生成model.le.dat和model.le.ctl文件的程序代码片段 2.站点数据的格式 附录 1.如何精确控制图形输出的尺寸—Landscape纸型 2.台站资料的显示 3.Linux环境下的安装

第二章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主页地址:https://www.wendangku.net/doc/507400575.html,/grads 从GrADS主页上可以找到预编译好了的适合于windows环境下的 GrADS软件包,和适合于各种UNIX环境下的GrADS软件包。关于 GrADS在UNIX环境下的资源请参考附录。 2.2 windows环境下GrADS资源 ●GrADS1.8sl8.win32.exe——GrADS软件包安装执行程序。目前在 windows环境下最新的版本为GrADS第1.8版。 ●下载GrADS演示数据: 从ftp://https://www.wendangku.net/doc/507400575.html,/grads/sprite/tutorial下载: model.le.dat 和model.le.ctl文件; 或者GRIB码格式的数据: model.grb、model.gmp和model.ctl 3GrADS绘图软件的安装(windows环境) 在windows下运行GrADS的条件: ●安装GrADS软件包 ●安装X SERVER软件包 3.1在windows环境下安装GrADS软件包 运行上述可执行文件(GrADS1.8sl8.win32.exe)进入第一个画面:

大气所的GrADS手册

中国科学院大气物理研究所 大气科学和地球流体力学数值模拟国家重点实验室
National Key Laboratory of Numerical Modelling for Atmospheric Sciences and Geophysical Fluid Dynamics ( LASG ) Institute of Atmospheric Physics, Chinese Academy of Sciences
Technical Report
GrADS使用手册
LASG 编
中国科学院大气物理研究所
大气科学和地球流体力学数值模拟国家重点实验室
( LASG )
https://www.wendangku.net/doc/507400575.html,

关于本手册
本手册是在 1995 年张洪编写的《GrADS 气象图形系统使用方法》及其它相关文档的基础上 汇编而成。主要介绍了 GrADS 的基本用法、使用技巧、及与 GrADS 相关的绘图技术。本 手册将根据软件发展不定期进行修订。
版权
本手册版权属中国科学院大气物理研究所大气科学和地球流体力学数值模拟国家重点实验 室(LASG) 。本手册可免费下载及使用。
本手册的维护与更新
本手册由王军负责维护与更新,如果有什么意见和建议,请与他联系,或在论坛上讨论。 Email : wjun@https://www.wendangku.net/doc/507400575.html,
有用的链接
GrADS Homepage : GrADS Script Library: 本手册下载: GrADS 中文讨论区: https://www.wendangku.net/doc/507400575.html,/grads/ https://www.wendangku.net/doc/507400575.html,/grads/gadoc/library.html https://www.wendangku.net/doc/507400575.html,/atmos/gadoc/library.html (本地) https://www.wendangku.net/doc/507400575.html,/grads/index.html https://www.wendangku.net/doc/507400575.html,/cgi-bin/forum/forums.cgi?forum=3
致谢
感谢张洪编译了《GrADS 气象图形系统使用方法》 。 感谢 funny 对本手册耐心细致的修订工作,以及在论坛上给予大家的热情帮助。

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)文件中的时间要严格一致。

WRFtoGrads使用说明

WRFtoGrads使用说明 wrf_to_grads 是一个把wrf的netcdf输出转换成grads文件。这个程序使用 fortran90编写的。 To build the code, first edit the makefile to specify the approriate paths for the netcdf libraries. Then, type "make" to build the converter. 首先编译源码,先要编辑makefile,指定netcdf函数库的路径,然后只需要使用命令make Compiler options are only provided for Alpha, Linux, Sun and SGI. If you are compiling this program on another computer, you need to modify the compiler options in Makefile. 编译选项只提供了 Alpha, Linux, Sun and SGI这三种机器系统,如果你是其他的机器,则要修改makefile 命令为:make linux (假设使用linux系统) To run the code, first edit the ascii input file "control_file" specifying: 然后修改control_file run the converter -> wrf_to_grads control_file grads_output_file This will create a "grads_output_file.ctl" and a "grads_output_file.dat" 运行程序: wrf_to_grads control_file grads_output_file grads_output_file:这是输出的文件名,可以自己命名。

相关文档