求CF 不能用sin klatexfomulaa,只能用两条式的方法来算 急求

豆丁微信公众号
君,已阅读到文档的结尾了呢~~
物理光学与应用光学习题和解答,物理光学与应用光学,应用光学,物理光学,西安应用光学研究所,物理光学知识点,大学物理光学课件,高等物理光学,应用光学 视频,大学物理光学
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
物理光学与应用光学习题和解答
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='http://www.docin.com/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口物理光学与应用光学习题选解_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
物理光学与应用光学习题选解
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩27页未读,
定制HR最喜欢的简历
你可能喜欢扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
下载作业帮安装包
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
(2014o重庆模拟)某校同学设计一个如图所示的“蝴蝶形图案(阴影区域)”,其中AC、BD是过抛物线Γ焦点F的两条弦,且其焦点F(0,1),,点E为y轴上一点,记∠EFA=α,其中α为锐角.①求抛物线Γ方程;②如果使“蝴蝶形图案”的面积最小,求α的大小?
作业帮用户
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
①由抛物线Γ焦点F(0,1)得,抛物线Γ方程为x2=4y;②设AF=m,则点A(-msinα,mcosα+1),∴(-msinα)2=4(1+mcosα),即m2sin2α-4mcosα-4=0.解得:2α=2(cosα±1)sin2α,∵m>0,∴2α.同理:2α,2α,2α,2α.“蝴蝶形图案”的面积△AFB+S△CFD=12AFoBF+12CFoDF=2.令,∴.则2=4(1t-12)2-1,∴时,即时“蝴蝶形图案”的面积最小为8.
为您推荐:
①直接由抛物线的焦点坐标得到抛物线的标准方程;②由题意结合图形,把A、B、C、D四点的坐标分别用|AF|、|BF|、|CF|、|DF|和α表示,代入抛物线方程后最终求得|AF|、|BF|、|CF|、|DF|,代入两个三角形面积后作和,换元后利用配方法求面积的最小值.
本题考点:
直线与圆锥曲线的综合问题.
考点点评:
本题考查抛物线方程的求法,考查直线与抛物线的位置关系的应用,关键是把A、B、C、D四点的坐标分别用|AF|、|BF|、|CF|、|DF|和α表示,代入抛物线方程后最终求得|AF|、|BF|、|CF|、|DF|,考查了学生的运算推理的能力和计算能力,是高考试卷中的压轴题.
扫描下载二维码常用的COMSOL操作符和数学函数
f对x方向的微分
使用d算符来计算一个变量对另一个变量的导数,如:d(T,x)指变量T对x求导,而d(u^2,u)=2*u等;
如果模型中含有任何独立变量,建模中使用d算符会使模型变为非线性;
在解的后处理上使用d算符,可以使用一些预置的变量,如:uxx,d(ux,x),d(d(u,x),x)都是等效的;
pd算符与d算符类似,但对独立变量不使用链式法则;
d(E,TIME)求解表达式E的时间导数;
dtang算符可以计算表达式在边界上的切向微分(d算符无法计算),在求解域上使用dtang等价于d,dtang只求解对坐标变量的微分,但需要注意的是并不是所有的量都有切向微分。
f对x方向的微分
pd和d的区别:
d(u+x,x)=ux+1,d(u,t)=ut,u和x,t等有关
pd(u+x,x)=1,pd(u,t)=0,u是独立的和x,t无关
dtang(f,x)
边界上f对x的切向微分
在边界上d(u,x)不能定义,但是可以使用dtang(u,x),dtang付出基本的微分法则,如乘积法则和链式法则,但是需要指出的是,dtang(x,x)不一定等于1。
test(expr)
用于方程弱形式的算符,test(F(u,&u))等价于:
var(expr,fieldname1,
fieldname2, ...)
用于弱形式,它和test算符功能相同,但是仅用于某些特定的场中;
如var(F(u,&u, v,&v),a),变量u是a场的变量,而v不是。
试函数之只作用于变量u。
nojac(expr)
对Jacobian矩阵没有贡献
将表达式排除在Jacobian计算外,这对那些对Jacobian贡献不大,但是计算消耗很大的变量是否有效;
湍流模型就是利用 nojac算符来提高计算性能的例子。
上邻近估算表达式
up,down,mean算符只能用在边界上,对于一个表达式或变量在边界处两边不连续,COMSOL通常显示边界的平均值,使用up,down可计算某个方向上的值。
down(expr)
下邻近估算表达式
mean(expr)
邻近边界上的平均值
depends(expr)
查看某个表达式是否依赖于求解结果
isdefined(variable)
变量是否定义
dest(expr)
在目标端计算积分耦合表达式
dest算符强制将source points上的表达式用在destination points上。
例如:u/((dest(x)-x)^2+(dest(y)-y)^2)
if(cond,expr1,expr2)
条件表达式
例如:if(x==0,1,sin(x)/x)
isinf(expr)
表达式的值是否是无穷大
islinear(expr)
解是否是线性函数
isnan(expr)
表达式是否是非数
调用某个解
例如with(3,u^2)指调用解3的u^2用于本次求解;
with只能用于解的后处理,不能用于建模;
调用解的某个时间
例如:at(12.5,u)
表达式的时间积分
timeint(t1,t2,expr,tol,minlen),t1,t2需要是实数,expr是表达式,tol是容差,默认大小为1e-8,minlen设置积分的最短路径,它需要是正数,默认长度为1e-6。
timeint只能用于解的后处理,不能用于建模;
表达式的时间积分平均值
timeavg(t1,t2,expr,tol,minlen)
调用线性化点
计算在线性化点的表达式
当解存储了一个线性化点,那么表达式在线性化点上先线性化,然后用当前的解来计算;
特别的:当f线性依赖于解,那么lindev(f)=f,如果不依赖则lindev(f)=0;
如果解没有线性化点,那么会报错;
调用线性化点的和和线性扰动
lintotalavg
在各相中计算平均lintotal
lintotalrms
在各相中计算lintotal的RMS
lintotalrms(f)=sqrt(lintotalavg(abs(f)^2))
lintotalpeak
在各相中计算lintotal的最大值
调用标准解,如linpoint或lintotal
计算表达式的根
标记一个荷载项用于线性扰动求解器
精确的派生修复
用polynomial-preserving
recovery计算表达式中所有用lagrange形函数差分的变量,如
ppr(e^2)=(ppr(ux)+ppr(vy))^2
在各求解域群中精确派生修复
用这些操作符来计算梯度计算中的离散误差
ux-pprint(ux)
反应力和反应流的精确积分
用于表面积分,如在结构力学中,u,v与x,y位移有关,用reacf(u),reaf(v)计算x,y方向上的反应力;
reacf在弱贡献中无效;
用伴随灵敏度计算表达式
fsens(expr)
用函数灵敏度计算表达式
sens(expr,i)
用第二个参数向前灵敏度计算表达式
&u/&q=sens(u,q)
realdot(a,b)
两个复数的点积
realdot(a,b),
real(a*conj(b))
shapeorder(variable)
差分一个变量使用的单元级数
prev(expr,i)
在i步前计算表达式
向后Euler法:
(u-prev(u,1))/timestep
bdf(expr,i)
应用级数为i的向后差分公式
bdf(u,1) =
(u-prev(u,1))/timestep
subst(expr,
expr1_orig, ,
expr1_subst,...)
用其他变量或表达式替换一个表达式
subst(hmnf.nutildeinit,p,pin_stat)
circint(r,expr),
circavg(r,expr),
diskint(r,expr),
diskavg(r,expr),
sphint(r,expr),
sphavg(r,expr),
ballint(r,expr),
ballavg(r,expr)
计算在一个特殊的形状,曲率为r时的表达式积分或平均值
scope.ati(coordinate
exprs,expr)
计算表达式在i维下的表达式coordinate exprs值
root.mod1.at1(0,y,dom)在2D的一条边的点(0,y)上计算dom
反双曲余弦 (in
反余切 (in
反双曲余切 (in
反余割 (in
反双曲余割 (in
反正割 (in
反双曲正割 (in
反正弦 (in
反双曲正弦(in
反正切 (in
四象限反正切 (in
atan2(y,x)
反双曲正切 (in
一类Bessel函数
besselj(a,x)
二类Bessel函数
bessely(a,x)
一类改性Bessel函数
besseli(a,x)
二类改性Bessel函数
besselk(a,x)
自然对数 ln
对数,底数为10
对数,底数为2
Psi函数和它的衍生物
建立一个数列
range(a,step,b)
预置的变量
Eigenvalues
r, X, Y, Z, R
Edge/surface parameters
Edge/surface normals
n, nx, ny,
t1z, t2x, t2y, t2z
Edge/surface upward normals
uny, unz,参考方向的左边
Edge/surface downward normals
dny, dnz,参考方向的右边
eps, i, j,
information
meshtype, meshelement, dvol, qual, reldetjac,
reldetjacmin
range函数的用法
a,(b-a)/(n-1),b)
10^range(-3,3)
产生:10-3,
10-2, …, 103
1^range(1,10)
产生 10个1
其他的平滑函数
y=flsmhs(x,scale)
在阶跃的两端都存在连续过冲的平滑Heaviside函数。
在-scale &
x & scale处,flsmhs和flsmsign为7阶多项式,因此它的2阶导数仍然连续;它满足理想Heaviside函数,因此存在一定量的过冲。
flsmsign(x,scale)
近似于符号函数y=sign(x)在-scale & x &
scale处平滑过渡
不含过冲的一阶连续导数的平滑Heaviside函数,导数fldc1hs
不含过冲的二阶连续导数的平滑Heaviside函数,导数fldc2hs
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。当前位置: >>
Grads使用手册
中国科学院大气物理研究所 大气科学和地球流体力学数值模拟国家重点实验室National Key Laboratory of Numerical Modelling for Atmospheric Sciences and Geophysical Fluid Dynamics ( LASG ) Institute of Atmospheric Physics, Chinese Academy of SciencesTechnical ReportGrADS使用手册LASG 编中国科学院大气物理研究所大气科学和地球流体力学数值模拟国家重点实验室( LASG )http://www.lasg.ac.cn 关于本手册本手册是在 1995 年张洪编写的《GrADS 气象图形系统使用方法》及其它相关文档的基础上 汇编而成。主要介绍了 GrADS 的基本用法、使用技巧、及与 GrADS 相关的绘图技术。本 手册将根据软件发展不定期进行修订。版权本手册版权属中国科学院大气物理研究所大气科学和地球流体力学数值模拟国家重点实验 室(LASG) 。本手册可免费下载及使用。本手册的维护与更新本手册由王军负责维护与更新,如果有什么意见和建议,请与他联系,或在论坛上讨论。 Email : wjun@lasg.iap.ac.cn有用的链接GrADS Homepage : GrADS Script Library: 本手册下载: GrADS 中文讨论区: http://grads.iges.org/grads/ http://grads.iges.org/grads/gadoc/library.html http://www.lasg.ac.cn/atmos/gadoc/library.html (本地) http://web.lasg.ac.cn/grads/index.html http://www.lasg.ac.cn/cgi-bin/forum/forums.cgi?forum=3致谢感谢张洪编译了《GrADS 气象图形系统使用方法》 。 感谢 funny 对本手册耐心细致的修订工作,以及在论坛上给予大家的热情帮助。 GrADS 使用手册第一章 基本概念与基本操作§1.1 GrADS 简介 GrADS(Grid Analysis and Display System)提供一个全 32 位的交互操作的气象格点数 据和站点数据的分析和显示环境。该系统具有气象数据分析功能强、地图投影坐标丰富、高 级编程语言使用容易、图形显示快速,并具有彩色动画功能等特点,因此迅速成为国外气象 数据显示的标准平台之一。 GrADS 当前版本为 1.8s11, 可用于如下平台: DEC、 Intel/LINUX、 SUN、 Macintosh OSX、 SGI、IBM/AIX、MS Windows。 GrADS 软件包所包含的文件:gradsc gradsdods gradsnc gradshdf gribmap gribscan gxps gxeps gxtran stnmap wgrib GrADS Classic - readline, printim only GrADS with readline, printim, LATS, read/write NetCDF, DODS GrADS with readline, printim, LATS, read/write NetCDF GrADS with readline, printim, LATS, read/write HDF, read NetCDF &Maps& a GRIB data set to a GrADS descriptor file Extracts grid and variable info from a GRIB data set Converts GrADS metafiles to Postscript (older version) Converts GrADS metafiles to Postscript (Level 1 or Level 2) Displays metafiles Maps station data See http://wesley.wwb.noaa.gov/wgrib.htmlGrADS 英文主页:http://grads.iges.org/grads/ §1.2 基本概念 按磁盘文件记录格式,GrADS 软件包的文件分为如下几类: (1) .dat 二进制无格式记录的原始气象数据文件,其数据既可以是格点数据,也可以是站 点数据。它们是从其它气象数据(如站点气象报、格点气象报、模式格点输出结果)转 换生成的。对格点数据而言,其格式为二进制无格式直接或顺序记录格式。总之对格点 数据,整个数据集是一个大的五维数据场,包括三维物理空间、一维物理变量、一维时 间变量,存放时以二维数组片的形式按水平、垂直、物理变量、时间序列的顺序排放, 详情参见§4。 (2) .ctl 原始数据描述文件。该文件为纯 ASCII 文件,用以描述原始数据集的基本信息,包 括数据集文件名、数据类型、数据结构、变量描述等等,详见§4。在 GrADS 环境中至 少得首先打开(open)一个数据描述文件,以便后续的操作有数据对象。 (3) .gs GrADS 控制文件,用 GrADS 命令 run 执行之。这也是一个纯文本文件,内含用描 述语言(script language)写成的批处理 GrADS 系统设置和命令,可集成处理 GrADS 命1 http://www.lasg.ac.cn令。详见§6。 (4) .exe 系统命令文件, GrADS 系统在 DOS 环境下的各执行文件。 grads.exe 为 GrADS 是 如 图形分析和显示命令;dos4gw.exe 为 DOS 的扩展环境;gxps.exe、gxpsc.exe、gxpscw.exe 都是图元文件转换为 postscript 文件的执行文件;gxtran.exe 是图元文件转换到显示器上 显示的执行文件; gx.exe 是将图元文件转换为各种不带 ps 解释器的打印机输出的执行文 件。详见§1.3。 (5) .gmf(.met) GrADS 系统图元输出文件,格式由 GrADS 内定,文件名随用户自定, 其内容为屏幕显示图形的二进制图元数据,用于产生图形的硬拷贝输出。在 windows平台, gv.exe 或 gv32.exe 可以查看此图元文件, 用 并可将其另存为.wmf 格式 的图形文件。详见§1.3,§5。(6) .ps Postscript 格式文件,其内容为 ASCII 码形式的 Postscript 语言格式的图形数据, 它是图元文件*.gmf(*.met)经 gx.exe、gxpsc、gxpscw 转换生成的,可用于 ps 打印机 的直接硬拷贝输出,也可被其它应用软件调用,只要该软件识别 ps 格式数据。详见附 录二“PS 文件详解” 。 (7) .exc 直接执行批处理文件,其内容为 GrADS 交互环境下所打命令的直接集成,按记录 存放在一个 ASCII 码文件中,在 GrADS 环境下用 exec 命令执行之。 启动 GrADS 后首先需打开至少一个数据描述文件,按打开文件的次序系统自动给打开 文件编号,第一个打开的文件为 1 号文件,以后顺排。以后的维数环境设置和图形操作都是 针对当时的缺省文件进行的,除非变量名下标标出文件编号,自动的缺省文件为 1 号文件, 改变当前缺省文件序号用 set dfile # 命令来设定第#号文件为当前缺省文件。 维数环境是 GrADS 的一个重要概念,GrADS 视每一个物理变量场为一个四维数据集 (4D data set) 包括空间三维和时间一维, 。 也可固定其中的一维或几维以获得实际的低于四 维的数据子集。GrADS 中设置维数用以说明或指定随后的分析或图形操作时参加操作的原 始数据集的维数范围,即通过设定工作数据的起止点数、取点频度(间隔)来设定最后工作 数据场的数组成份。该工作数据集可以是整个原始数据场,也可以是原始数据场的一部分, 详见§2,§6。所谓维数环境是对格点数据而言的。维数环境的定义可在两种空间坐标上进 行。一种是地球坐标(world coordinate) ,以经纬度为度量单位;另一种是格点坐标(grid coordinate) 以网格点数为度量单位。 , 二者一般对应于同一个绘图坐标, 都对应到网格点上。 在维数环境表达式中 x,y,z,t 与 lon,lat,lev,time 是分别对应于两套坐标的专用维数变 量,含义固定,如 x 与 lon 都指西到东指向的(缺省方向)水平坐标,y 与 lat 都指南到北指 向的(缺省方向)水平坐标,z 与 lev 都指从地面到高空的(缺省方向)垂直坐标,t 与 time 都是时序坐标,不过 t 用的是格点时次序号,而 time 用的是格林威治标准时的 GrADS 绝对 表达格式。详见§2,§4。 当所有维数都固定时,得到的是一个单值数据点;如果只有一维变化,得到的时一维数 据线,屏幕显示时为一条曲线;二维发生变化时对应于二维切片(slice) ,屏幕显示时缺省 表达为二维平面图,也可显示为一维曲线的动画序列;三维发生变化时 GrADS 解释为一个 二维切片的序列,屏幕显示时须设定一维作为动画维,以动画方式显示;四维变化就须指定 两维为固定或用动画方式才能显示。总之图形输出只能以二维或一维方式表达多维变量。 GrADS 定义的绘图区域为横放或竖放两种矩形区域(缺省为横放) ,它们缺省的硬拷贝 输出区域大小分别为 11x8.5 和 8.5x11 英寸。所谓横放即所谓风景画形式(Landscape) ,简2 GrADS 使用手册称 L,竖放即所谓肖像画形式(Portrait) ,简称 P,两者都是通常的 A4 纸大小,所以我们在 计算机屏幕上使用的工作窗口最好也按上述长宽比例设置。GrADS 启动时首先提示用横放 还是竖放形式,缺省为横放,如想竖放则键入 no 后回车,随后窗口工作区就从原先的字符 窗口状态进入图形窗口状态。 需要说明的是现在键盘输入显示和执行后的回应信息显示在字 符窗口,而图形显示在图形窗口,两者未分离,而是重叠显示。不过通过 print 命令产生的 图形硬拷贝文件中不包含所有字符窗口的信息。GrADS 的命令提示符为“ga&” 。可以利用 frame.gs 或 stack.gs 来半自动分离字符和图形窗口。 GrADS 的绘图工作区分三个层次,一层是实际页(real page) ,即硬拷贝的 A4 纸大小, 单位为英寸(注意横放或竖放) ;一层是虚拟页(virtual page) ,单位也是英寸,缺省时虚页 等同于实页;第三层是在虚页中指定绘图区域,其单位用的虚页中的虚英寸,即缺省时等同 于实际英寸,当设置虚页后按比例度量。注意第三层所定义的区域只包含图形,不包括坐标 轴、标题等附属信息的位置,即要预留出附属信息的区域。 §1.3 基本操作 新版本的 GrADS 交互环境中可以使用上下左右箭头键对曾经使用的命令进行调用和编 辑,但仅限于本次启动 GrADS 交互环境后所使用的命令。 在 DOS 或 Unix shell 环境下的命令: grads 启动 GrADS 系统,在交互式方式或批处理方式下分析或显示气象数据,并可生成硬拷贝图 元文件。其语法为: grads [ -lpbc &run 描述文件名& ] 其中 l 表示横放,p 表示竖放,输入该选项后启动 GrADS 时系统将不再提示选择方向,b 表 示批处理,屏幕不再显示图形结果,直接完成全部操作,c 表示进入 GrADS 环境后首先执 行随后跟在 run 命令后的描述文件,该文件由用户设定,类型为*.gs。几个选项可组合使用, 也可键入 grads 直接交互操作。 gxps,gxpsc,gxpscw 将 GrADS 内 print 命令产生的图元文件分别转换为单色(灰度) 、彩色以及反白(即白底) 彩色的 postscript 格式文件,用于硬拷贝输出。语法为: gxps -i 图元文件名 -o ps 文件名 gxpsc -i 图元文件名 -o ps 文件名 gxpscw -i 图元文件名 -o ps 文件名 也可交互使用。 stnmap 用于将观测站点数据与图形显示时的站点图建立链接以加速显示。语法为: stnmap -i 站点数据描述文件 也可直接键入 stnmap 交互式操作。 gs -sDevice=vga ps 文件名3 http://www.lasg.ac.cn用于显式或打印 ps 文件。 gribmap 形成 GRIB 数据文件的 index 文件(*.idx) ,用法: ~ [-i fname.ctl] [-v] [-t0] [-0] [-fhr] [-sxxx] [-hxxx] -v:详细输出信息, -0:跳过预报记录,仅取诊断记录, -t0:仅取基准时间与*.ctl 文件中初始时刻一致的记录(如 0,12,24,…,72hr 的预报结果) -fhr:仅取预报时效为 hr 的记录, -sxxx:搜索'GRIB'字符串的有效字节长度为 xxx, -hxxx:跳过 xxx 字节开始搜索,对 NMC 格式的 GRIB 数据,用-hnmc。 gribscan 抽取 GRIB 数据文件的格点信息,用法: ~ [-i ifname] [-o ofname] [-file options] [-processing options] [-display options] ifname:输入的 GRIB 文件, ofname:无后缀的输出数据文件名, file options:输出文件格式, -og:GRIB, -oa:ASCII(%8g), -of:32-bit(64-bit CRAY)流式实数格式, processing options: -snnn:文件 GRIB 信息的最大字节数,缺省为 500, -spnnn:选择第 nnn 号要素, -slnnn:选择第 nnn(hPa)层的要素场, -stnnn:选择τ=nnn 的要素场, -hnnn:固定文件头长度 nnn,NMC 为-h81。 display options: -q:快速输出 gribmap 所需信息, -q1:1 行的快速输出, -d:逗号分隔模式, -v:诊断用详细输出, -bd:Binary 数据块信息, -gv:使用 NMC GRIB 要素表输出要素代号,标题和单位, -gd:由 grid defn sec 输出信息, -S:无标准输出。 gxtran 显示 GRADS 输出图形文件(单祯或动画) ,用法: ~ [ -airg &infile& ] -i fname:GRADS 图形文件名, -a:无需用户击回车键,自动放映文件中的各祯图, -r:反转背景色, -g geom:设置 X window 的尺寸 geom(WWW×HHH+X+Y) 。 ncdump 在屏幕上输出指定 netCDF 文件的描述,用法: ~ [-c] [-h] [-v var1,...] [-b lang] [-f lang] [-l len] [-n name] [-d f_digits[,d_digits]] file ncgen 生成 netCDF 文件,用法:4 GrADS 使用手册~ [-b] [-c] [-f] [-n] [-o output_file] input_file-b:生成(binary) netCDF 文件,文件名后缀为.nc, -c:在屏幕上输出生成 netCDF 文件的 C 语言代码, -f:在屏幕上输出生成 netCDF 文件的 Fortran 语言代码, -o outputfile:指定输出的 netCDF 文件名(暗示使用了-b 项) , -n:同-b,输出文件使用废弃的.cdf 后缀,本选项支持向上的兼容性。 gxgif [-i *.gmf] [-o *.gif],将 GrADS 输出的图形文件转换成 gif 图形格式。§1.4 在 GrADS 环境内的基本命令(在 ga&提示符后输入) : open 数据描述文件名 打开数据文件。 set 各类选项 设置各种环境参数。 display(或 d) 表达式 对表达式处理后进行屏幕图形显示。 clear(或 c) 清屏命令,清除字符窗口和图形窗口的内容。 quit 退出 GrADS 环境,回到 DOS shell 或 Unix shell。 query(或 q) 系统环境设置的查询命令。 define 临时变量名=表达式 在交互方式下定义临时变量场,用于随后的操作。 modify 临时变量名 时间序列类型 对自定义的临时变量声明为气候型的,用于时次代换。 draw 选项 低级绘图指令,直接进行所指定图形元素操作,如绘一些字符串、线条、各种标记等。 enable print 磁盘图元文件名 打开磁盘文件(没有时创建,已存在时刷新) ,用于存放随后 print 命令转换生成的当前屏幕 图形的图元数据。 print5 http://www.lasg.ac.cn将当前图形窗口重的图形转化为图元数据,存放在先前 enable 命令指定的磁盘文件中,每 执行一次 print 即向该文件中附加一幅窗口图形。 disable print 关闭图形硬拷贝输出转换。 exec 批处理命令集文件名&变量 0,变量 1,…& 在 GrADS 环境中集中执行文件名(形式为*.exe)中定义的操作。变量 0……9 用于参量替 换。 run 命令描述文件名 执行文件名(形式为*.gs)中定义的操作。 swap on|off 打开双缓冲区,在动画显示时用于文件交换。 collect cnum expr 采集站点或时间序列数据作为资料阵列用于绘剖面图。与 coll2gr 函数联合使用。其中: cnum:采集资料序号(0~31), expr:任意表达式,设为'free'表示空阵列并释放内存。 printim filename options 在 GrADS v1.8 以上版本有效,可在批处理文件中使用。其中: filename:输出的目标文件名,若已经存在,则将覆盖; options 有多个选项时可以任意次序排列。选项如下: gif:输出 GIF 格式文件(缺省为 PNG 格式), black:采用黑色背景(缺省为当前的 display 设置), white:采用白色背景(缺省为当前的 display 设置), xNNN:水平尺寸为 NNN 个象素, yNNN:垂直尺寸为 NNN 个象素。 例: 输出
的 PNG 图象: printim out.png x 输出 800x600 白色背景的 GIF 图象: printim gifimage.out gif x800 y600 white wi filename.fmt 将 GrADS 绘图窗口中的图形直接存成文件,批处理模式下不可用。注意使用本命令时 图形窗口上不应有其它窗口迭放。fmt 代表图形文件的格式,可为多种: AVS,BIE,BMP,BMP24,CGM,CMYK,DCX,DIB,EPS,EPS2,EPSF,EPSI, FAX, , FIG FITS, , , FPX GIF GIF87, GRAY, GRADATION, GRANITE, HDF, HISTOGRAM, HTML,JBIG,JPEG,ICO,LABEL,MAP,MIFF,MNG,MONO,MPEG,MTV, NETSCAPE,NULL,PBM,PCD,PCL,PCX,PDF,PGM,PICT,PLASMA,PNG, PNM,PPM,PS,PS2,RAD,RGB,RGBA,RLA,RLE,SGI, SUN,SHTML, TEXT, TGA, TIFF, TIFF24, TILE, , UIL VICAR, , VID VIFF, , , X XC XBM, XPM, XWD, …… outxwd filename 将 GrADS 绘图窗口中的图形直接存成 xwd (X window dump)文件,批处理模式下不可 用。xwd 格式与 GIF 格式更为匹配,用 ImageMagick 转换更快且效果更佳。注意使用本命6 GrADS 使用手册令时图形窗口上不应有其它窗口迭放。 gui *.gui 在 GrADS 环境中运行 gui 文件。 在 GrADS 环境中还可以直接调用 DOS Shell 或 Unix shell 命令,格式为: ga&!dir *.ctl7 http://www.lasg.ac.cn第二章 系统运行环境的参数设置和功能定义§2.1 维数环境设置 在数据描述文件中给出了各物理变量数组的时空维数范围,但在 GrADS 运行环境中 还需设定全数据集中参与操作的部分或全部数据集的维数情况,以供以后的表达式、显示 命令等使用。 换言之, 系统的各种操作都是对缺省的当前设定的维数环境的数据进行操作。 维数说明分为两类: set lon|lat|lev|time val1 &val2& set x | y | z | t val1 &val2& 说明: “|”符号表示前后各项是可互换的任选项, “& &”表示任选项,不一定出现, 以后同。 两者对应于同一组数据,只是前者为地球坐标,后者是网格坐标。地球坐标的单位分 别为:水平空间单位用“度” 。经度方向缺省为由西向东,东经为正,西经为负或用大于 180 度表示;纬度方向缺省为由南向北,南纬负,北纬为正。垂直方向由下向上,单位为 “百帕” 。时间用绝对时间格式,格点坐标用网格点数直接表示。val1 表起始坐标,val2 表示终止坐标,不出现 val2 时表示该维数方向是固定维数,规定 val1&val2,两种坐标可以 混用,其内部对应于同一数组维数环境。 例:set lon C180 0 (设定经度变化从西经 180 度至 0 度) set lat 0 90 (设定纬度变化从赤道至北纬 90 度) set lev 500 (设定高度维数固定为 500hPa 等压面) set t 1 (设定时次固定为数据集中第一个时次) 可在数据控制文件中用 format 或 options 选项设定原始数据读出时的顺序,以改变纬 度方向为北到南,垂直方向为由上到下。详见§4。 §2.2 图形类型设置 当维数环境确定后,缺省情况下,一维变量输出的图形为单线图,二维变量为等值线 图,改变缺省图形输出类型,键入命令: set gxout graphics-type 其中的 graphics-type 是用户选择的图形类型。 对格点数据: contour: shaded: grid: vector: stream: barb: bar: line: fgrid: grfill:二维等值线绘图(缺省) 二维填色等值线绘图 二维场不绘图,以网格形式在各网格点中央标出该场点数值 矢量箭头形式绘二维风场(缺省) 流线形式绘二维风场 风向杆形式绘二维风场 对一维场不绘单线图,而绘直方图 对一维场绘直线图(缺省) 对二维场不绘等值线图,只将特定值的格点用指定颜色填充该格,与命令 set fgval value color value color…… 一起使用。 二维填色,与 shaded 的区别在于 shaded 有对网格的平滑,而 grfill 是按网 格填色。8 GrADS 使用手册对站点数据: value: barb: wxsys: findstn: model:在各站点标值(缺省) 在站点绘风向标(缺省) 绘 wx 天气符号 搜索最近的站点 以天气填图形式将天气观测各分量添放在站点四周以上两种数据如果图中要作矢量、流线或风向杆绘图时要求显示命令后给出用分号“;”分 隔的两个分量场,前者理解为 u 分量,后者为 v 分量。 例: w 分量值) (显示 u、v 风场的合成矢量图) (第三个变量给定矢量或流线图的色彩分布,彩色值代表第三用站点数据做站点填图或绘图时先设定图形输出类型为站点模型 set gxout model,然 后作站点绘图,形式为: vis 其中 u,v 是风场分量,t、d、slp 和 delta 是绘在站点四周的数字,分别表示温度、露点、 地面气压和变压,样式为: t wx d slp deltavisOcld 为站点模型中央的符号的值,1 到 9 是标记类型(圆圈、方框或叉号) ,20 到 25 是云量 值:20 clear(晴) 、21 scattered(少云) 、22 broken(中云) 、23 overcast(多云) 、24 obscured (阴) 、25 missing(缺测,绘 M 符号) ,wx 是 wx 天气符号,vis 是能见度(实形数) 。 set stnopts &dig3& &nodig3& 在 slp(地面气压)处以三位数形式写地面气压(后三位) 。 §2.3 图形要素设置 对图形类型为等值线(gxout=conter)起作用的设置: set ccolor color 设置等值线颜色,颜色号 color 为 0 黑、1 白、2 红、3 绿、4 兰、5 青、6 紫、7 黄、8 桔 黄、9 灰。clear 或 display 即重新设定颜色。 set ccolor rainbow 设置等值线用七彩序列表示。 set ccolor revrain 设置等值线为反序的七彩色。9 http://www.lasg.ac.cnset cstyle style 设置等值线线形 style: 实线, 长虚线, 短虚线, 长短虚线, 点线。 1 2 3 4 5 clear 或 display 即重新设置。 set cthick thckns 设置等值线线宽 thckns,取值 1-10 之间的整数,屏幕上一般取小于 6,缺省值为 4,主要 用于控制硬拷贝输出。 set cterp on|off 设置样条插值光滑开关,再定义后才重新设置。填色的等值线图没有样条光滑,但可用 csmooth 选项来准确地将等值线与填色图边缘重合。 set clab on|off|forced|string|auto 控制等值线标记方式。一直持续作用到重新再设置。 on 快速等值线标记,标记在等值线的水平处(缺省) ; off 不标记; forced 强迫所有线都标记,不论长短; string 用字符串 string 替换等值线标示数字; auto 回到缺省方式。 set clskip number 表示规定间隔几条等值线标示数值。 对图形类型为等值线或填色等值线(gxout=contour 或 shaded)起作用的设置: set cint value 设置等值线间隔。clear 或 display 命令即重新设置或回到内部自动的缺省设置。 set clevs lev1 lev2 …… 设置特定的等值线值,只画 lev1 lev2 ……值所在的等值线,用于不等间隔绘图,c 或 d 即 重新设置。 set ccols col1 col2…… 设置对应于 set clevs 命令设定的特定等值线的颜色。c 或 d 即重新设置。缺省七彩序列彩 色号位 9,14,4,11,5,13,3,10,7,12,8,2,6。 set csmooth on|off 如取 on 在绘等值线图前用三次插值将现网格值插到更精细网格上, 重新设置才改变本次设 置,该插值可造成负值光滑或失真,如负降水。 set cmin value 不画低于此 value 值的等值线,c 或 d 即重新设置。 set cmax value10 GrADS 使用手册不画高于此 value 值的等值线,c 或 d 即重新设置。 set black val1 val2 不画值介于 val1 和 val2 之间的等值线,c 或 d 即重新设置。 对图形类型为等值线、填色等值线图、矢量图、流线图(gxout=contour、shaded、vector、 stream)起作用的设置: set rbcols color1 color2 &color3&…… 设置新的七彩颜色序列,颜色号 color1,color2…… 可以用 set rgb 命令定义新的颜色号, 该新的七彩序列在随后的七彩颜色调用中取代原缺省的七彩序列。重新设置后才改变原设 置。 set rbcols auto 启用内定的七彩序列。 set rbrange low high 设置七彩序列对应的等值线的取值范围,缺省时最低值和最高值对应取为变量场的最小和 最大值。c 命令即重新设置。 set strmdcn value 设置流线密度,值 value 为 1 到 10,缺省为 5。 对图形类型为单线图(gxout=line)起作用的设置: set ccolor color 设置单线的颜色号 color,c 和 d 重新设置。 set cstyle style 设置线性 style,c 和 d 重新设置。 set cmark marker 设置线上的标记符号 marker: 0:无标记;1:叉号;2:空心圆;3:实心圆; 4:空心方框;5:实心方框;c 或 d 重新设置; 6 X,7 菱形,8 三角形,9 无,10 空心圈加竖线,11 空心椭圆。 set missconn on|off on 用线连接各散点(缺省) ,off 直接绘散点,不连接。 set axlim val1 val2 设置坐标轴标尺的取值范围,所指坐标轴通常指 y 轴。C 命令即重新设置。 set vrange y1 y211 http://www.lasg.ac.cn规定 y 轴的范围。 set vrange2 规定 x 轴范围。 x1 x2对 gxout=bar 即直方图起作用的设置: set bargap val val 取值 0 到 100,以百分比值设定直方条之间的间隔。Val 取 100 时直方图退化为垂直线 条直方图,val 取 0 时无间隔。 set barbase val|bottom|top 如给出 val 值,则各直方条从该值处起画(向上和向下) ,所画直方条取值于 y 坐标尺度之 内;如给 bottom,各直方条从图框的底边向上绘出;如给 top,直方条从图框顶边(y 轴上 限)向下绘出。 对 gxout=grid 即网格填值绘图起作用的设置: set dignum number 设置小数点后位数为 number 值。 set digsize size 设置数字字符的大小 size,单位为英寸,通常取值 0.1~0.15,以上两设置保持到重新设置。 对 gxout=vector 即矢量绘图起作用的设置: set arrscl size &magnitude& 设置矢量箭头的长度为 size 英寸(虚页英寸) ,选项 magnitude 的值设定矢量箭头的大小, 缺省时所有矢量同长,c 或 d 命令重新设置。 set arrowhead size 设置箭头大小,缺省为 0.05,如取为 0 不画头,如取为负与矢量值成比例。 对 gxout=fgrid 即网格填色绘图起作用的设置: set fgvals value color &value color& &value color&…… 对取值为 value 的网格点用颜色为 color 的色块标记该网格, 每个格点的值取法是四舍五入。 要绘出的值点须逐个举出,未列出的值不绘图。 对站点模型(gxout=model)起作用的设置: vis 其中 u,v 为风分量,风向杆表示其值;t、d、slp、delta 为画在站点四周的观测量的值; cld 是云量,用符号表示,1 到 9 为标记值,20~25 为云量;wx 为天气状况符号;vis 是能12 GrADS 使用手册见度(实形数) 。 §2.4 字符属性设置 set line color &style& &thickness& 设置线条属性,包括: 颜色号 color:0 黑,1 白,2 红,3 绿,4 兰,5 青,6 洋红,7 黄,8 桔黄,15 灰; 线型号 style:1 实线,2 长虚线,3 短虚线,4 长短虚线,5 点线,6 点虚线,7 点点虚线; 线宽 thickness:值为 1 到 6。 set string color &justification& &thickness& &rotation& 设置字符串属性,其中颜色号 color,线宽值 thickness 同上,整版值 justification 分别为 tl 上左,tc 上中,tr 上右余类推,表示字符串在 draw string 命令中坐标 x、y 相对于字符的方 位。示意如下: tl l bl tc c bc tr r brset strsiz hsiz &vsiz& 设置字符大小,hsiz 是字符的水平宽度值,单位为虚页英寸;vsiz 是字符高度值,如不给 出 vsiz 其缺省取值同 hsiz。 set rgb color-number red green blue 定义新的颜色号,颜色号 color-number 取值范围为 16~99(0~15 已被 GrADS 系统预定义 了) ,red、green 和 blue 表该颜色号所定义颜色的三原色分布,取值范围都是 0~255,例如: set rgb 50 255 255 255 表示 50 号颜色,彩色实际为白色。 §2.5 地图投影设置 set mproj proj 设置当前地图投影方式,proj 取值包括: latlon: 缺省设置,用固定的投影角进行 Lat/Lon 投影; scaled:用不固定的投影角进行 Lat/Lon 投影,投影区充满整个绘图区; nps: 北半球极地投影; sps: 南半球极地投影; off: 同 scaled 但不画出地图,坐标轴也不代表 Lat/Lon。 set mpvals lonmin lonmax latmin latmax 设置极地投影时的经度和纬度参考,缺省值取为当前维数环境。 set mpdset &lowres|mres|hires|nam& 设置地图数据集。lowres 为缺省的粗分辨率的全球地图;mres 和 hires 分别为中分辨和高 分辨率地图,同时含有国界和州界;nam 为北美洲地图。13 http://www.lasg.ac.cnset poli on|off 在 mres 或 hires 地图中开关选择是否选用行政边界。缺省为 on。 set map color style thickness 用定制的颜色,线型和线宽绘背景地图。 set mapdraw on|off off 不绘地图,但地图标尺仍然起作用。 §2.6 坐标要素控制 set zlog on|off 对 z 维数方向取对数尺度的开关,on 表 z 维方向取为对数尺度,重新设置后才改变。 只对下一次 display 命令起作用的坐标轴标记设置: set xaxis| yaxis start end &incr& 设置坐标轴 x 轴(xaxis)或 y 轴(yaxis)的坐标从给定的起始值 start 到给定的结束值 end, 并用给定的增量 incr 做为刻度间隔,标尺可与所给的数据场的值和维数无关,缺省时取为 当前维数环境。 set grid on|off|value|horizontal|vertical&style&&color& 控制是否绘网格线: on: 用缺省或指定的线型 style 和颜色 color 来绘出网格线。 缺省为绘网格线,用 15 号(灰)色,5 号(点)线; off: 不画网格; horizontal: 只画水平网线; vertical: 只画垂直网线。 set grads on|off 开关选择是否打印出 GrADS 标记。 标准图注设置: draw title string 在图形顶部写一串字符 string 作为图的标题,字符串中反斜杠表示起新行。 draw xlab string draw ylab string 分别在水平坐标轴下或垂直坐标轴左侧写字符串 string,作为 x 轴或 y 轴的说明,以上三 种图注都是以内部缺省方式居中写图注,字符串为纯 ASCII,不能写汉字,如须特别设计 字符串标记,可用其它命令,如 draw string。 set annot color &thickness&14 GrADS 使用手册设置上述图注所用的颜色和线宽。缺省为白色,线宽为 6。该命令同时设置了坐标轴线以 及刻度的颜色和线宽,坐标刻度和标尺的线宽为图注设置的线宽再减 1。 set xyrev on 交换水平和垂直坐标所代表的维数方向,即从 x-y 绘图转换为 y-x 绘图。 set xflip on 水平坐标轴的维数方向取反向。 set yflip on 垂直坐标轴的维数方向取反向。以上坐标标轴的设置当 set vpage 或 c 命令将重新设置。 set frame on|off|circle on: 在剪辑后的绘图区域外画一矩形方框; off: 不画矩形边框; circle: 表示对 Lat-Lon 投影时画矩形框,极地投影时在最外围纬度上画圆框(只用 于整个半球绘图情形) 。现在对极地投影还没有经度纬度标记,只有网格线。 set clopts color&thickness&size&& 设置等值线标记的颜色,-1 为缺省,表示采用等值线的颜色;thickness 为标记的线宽,-1 为缺省,表示采用等值线的线宽;size 为标记的大小,0.09 为缺省。 set xlopts color &thickness&size&& set ylopts color &thickness&size&& 其中 xlopts 控制 x 坐标轴,ylopts 控制 y 坐标轴。color 为坐标轴标尺的颜色号,缺省为 1; thickness 表示标尺的线宽,缺省为 4,size 为刻度的大小,缺省为 0.12。 set xlevs lab1 lab2 …… set ylevs lab1 lab2 …… 分别设置 x、y 坐标轴标尺上要标记的值。本设置不用于时间坐标轴。c 命令重新设置。 set xlint interval set ylint interval 定义坐标轴的标记间隔。set xlevs| ylevs 可再控制标记分布,c 命令重设。注意:标记总 是从 0 开始,即如设 interval 为 3 则实际标记为 0,3,6,9,……;如设 interval 为负值, 则表示从坐标轴起始值开始,例如开始值为 1,间隔-3 实际标记为 1,4,7,……。本设 置也不用于时间坐标轴。 set xlab on | off | auto | string set ylab on | off | auto | string 同 set clab 命令原理。 set clip xlo xhi ylo yhi 设置一块剪辑区用于绘制一些基础图形命令,如写一串字符,画线,符号等。执行 display15 http://www.lasg.ac.cn命令时,系统将剪辑区放到设定的 parea 区绘图,然后把剪辑区放到全页,xlo,xhi,ylo, yli 是实页上的坐标点(英寸) 。 §2.7 绘图区域设置 set vpage xmin xmax ymin ymax 通过定义在实页上一个或多个虚页来控制绘图的数目和大小。本命令在实页上用 xmin, xmax,ymin,ymax(英寸)设置了一个虚页,随后的所有图形都输出到这张虚页上(单位 为虚页英寸) ,直到下个 set vpage 命令出现。新的虚页清除全部物理页上的内容,包括任 何已画上的虚页。一当 GrADS 启动,系统即提示选择是用横放还是竖放模式,两者定义 的实页大小都是 11x8.5 或 8.5x11 英寸见方。 定义的虚页一定要适合实页的大小, 不能超出, 但可缩小。虚页命令定义的虚页单位仍用英寸(虚页英寸) 。各种图形命令所指的英寸大多 是虚页英寸,缺省时实页等同于虚页,虚页对应于实页上的位置,显示在屏幕上虚页仍是 满屏的,而区域 parea 对应于虚页上的位置。用虚页可在实页上一页多图。 set vpage off 回到缺省的实虚页相同的状态。 set parea xmin xmax ymin ymax 在虚页中定义了一块区域 parea 用于 GrADS 的绘图, 但该区域不包括 title, 坐标轴标记等。 设置的区域用于等值线绘图、地图绘图、单线绘图,该区域内以虚页英寸为单位。缺省时, 自动按图形类型设置绘图区域。 set parea off 回到缺省状态。 §2.8 基础绘图指令 draw string x y string 在 x、y 坐标处(单位用虚页英寸)写字符串 string,字符串属性用当前设置。 draw line x1 y1 x2 y2 从 x1、y1 点画一条直线至 x2、y2 点,用当前线段属性。 draw rec xlo ylo xhi yhi 以 xlo、ylo 和 xhi、yhi 为对角点画一不填色矩形。 draw recf xlo ylo xhi yhi 同上,绘填色矩形,颜色用当前画线的颜色。 draw mark marktype x y size 在 x、y 处绘一大小为 size 的标记类型为 marktype 的标记。标记类型值包括 1,十字叉;2, 空心圆;3,实心圆;4,空心方框;5,实心方框。 draw wxsym symbol x y size &color&thickness&&16 GrADS 使用手册用颜色为 color,大小为 size,线宽为 thickness 等属性,在指定的位置 x、y 画出指定的天 气符号 symbol,天气符号的取值定义见 wxsym.gs。 §2.9 动画显示设置 二维以上变量可设定一维为动画维,用动画显示其二维场图形,缺省时指对时间维作 动画。 set loopdim x| y| z| t 三维以下变量要用动画显示时需设置 set looping on| off 动画显示操作完成后需关闭动画 off。 §2.10 系统参数设置 reset 除了以下各项外重新初始化 GrADS 设置(即回到原缺省初始设置) 。 1) 不关闭打开的文件; 2) 不释放定义的对象; 3) 不改变 set display 命令设置的状态。 reinit 同 reset,但同时关闭所有打开的文件,并释放所有定义的对象,如临时定义变量等。 set display grey| greyscale| color&black| white& 设置显示状态,缺省为七彩色,black 表示荧光屏背景为黑色(缺省值) 。 set stid on| off 开关选择是否显示站点代码。 set gxout findstn 设置图形类型为匹配搜索最近站点模型,在随后的 display 命令中给出三个参数,第一个是 站点数据,第二个和第三个参数给出屏幕上的 x、y 坐标,GrADS 自动搜索距 x、y 点最近 的站点,并印出该站的代号、经纬度。 set dbuff on| off 双缓冲区开关,用以控制动画显示,自制动画。 swap 双缓冲区打开后用于交换文件缓冲区,通常的用法: set dbuff on loop ……& display something swap &…… endloop17 http://www.lasg.ac.cnset dbuff off18 GrADS 使用手册第三章 变量和函数的定义及功能§3.1 变量名 完全的变量名形式为: abbreb.file# (dimexpr, dimexpr, ……) 其中 abbrev 是数据描述文件中给出的变量名缩写; file#为包含此变量的已打开的文件序号, 缺省为 1 或是用 set dfile 命令定义的当前缺省文件; dimexpr 为当前维数环境进行的局地维 数设置表达式,其中绝对维数表达式为: x | y | z | t | lon | lat | lev | time = value value 为绝对维数值; 相对维数表达式为(相对于当前维数环境设置) : x | y | z | t | lon | lat | lev | time + | - offset offset 为相对偏差维数值。 例: z.3 (lev=500) 表示文件 3 中高度为 500mb 等压面上的变量 z tv.1 (time-12hr) 相对于当前时间之前 12 小时时刻的 1 号文件中的变量 tv rh 缺省的当前文件中的变量 rh q.2 (t-1, lev=850) 2 号文件中相对于当前时刻前一时刻, 高度为 500mb 面上的变量 q。 GrADS 还可定义全域描述变量,即该变量可将其值传出函数,变量命名形式要求以下 划线作为开头字符。 §3.2 表达式 GrADS 中的表达式与通常高级语言如 Fortran 一样也由运算符(operator) ,运算域 (operand)和括号(parenthese)组成。其中括号用于控制运算次序;运算符包括:+加, -减,*乘,/除;运算域包括常数、函数、变量。运算是指对相同网格点上的不同变量进行, 运算时只要有一个变量在某格点的值为缺省值则该格点的运算结果也为缺省值。另外不能 对不同维数尺度(即维数变动的范围不同)格点进行运算操作,即参加运算的变量的当前 网格维数环境须一致。 例: z-z (t-1) 高度 z 变量的时间变化 t (lev=500) Ct (lev=850) 500 到 850 毫巴等压面的温度 t 的变化 z-ave (z, lon=0, lon=360, -b) 高度 z 的纬向平均偏差。 §3.3 函数 函数的调用方式为通过函数名直接引用,函数的参数放在括号中用逗号分开。函数可 以嵌套,有一些函数在运算时改变维数环境。以下是一些函数: sin(expr) cos(expr) tan(expr) exp(expr) log(expr) 参数单位用弧度 同上 同上e exp rln exp r ,以 e 为底取对数19 http://www.lasg.ac.cnlog10(expr) abs(expr) pow(expr1,expr2) mag (expr1, expr2) hdivg (expr1, expr2)log 10 exp r ,以 10 为底取对数取绝对值exp r1exp r 2 ,幂指数(exp r1) 2 + (exp r 2) 2 ,求平方根? (exp r1) ? (exp r 2) + ,水平辐散(中央差) ?x ?yexpr1 表示 U 分量,expr2 表 V 分量,风速单位用 m/s。hcurl (expr1, expr2)? (exp r 2) ? (exp r1) ,相对涡度, ? ?x ?yexpr1 表示 U 分量,expr2 表 V 分量,风速单位用 m/s。vint (expr1, expr2, top)∫topexp r1( x , y )exp r 2( x, y, p )dp ,质量加权垂直积分,expr1 表示地面气压,expr2 表被积变量,top 常数取为 积分上限气压(常数) ,垂直坐标单位用 mb(毫巴) , 本 函数要求定义水平维数环境。 maskout (expr1, expr2) 标记函数,当 expr2 所在的网格点值取为负值时,对应格 点上的 expr1 的值设为缺值值。本函数常用于 expr2 为 陆 / 海 场 时 操 作 expr1 场 的 绘 图 特 性 。 例 如 : aave(maskout(p,mask),……)即表示计算全球降水平均, 并只输出 mask 代表的陆地区或海洋区。ave (expr, dimexpr1, dimexpr2, &time increment&, &flag&) 通用求平均函数,expr 是由 dimexpr1 和 dimexpr2 定义的维数范围内求平均的量;两 个维数表达式 dimexpr1 和 dimexpr2 都是同一维数方向,对非线性格点,求平均时加以适 当权重,缺值值不参加求平均;time increment 选项表示求和时取值间隔,其单位与维数表 达式 dimexpr1 和 dimexpr2 一样;选项 flag 给出时取为-b 要表示对每个网格点取同样的权 重求平均,包括终端点,例如如果想求纬向平均 ave(z, lon=0, lon=360),则终端点求了两次 平均,如若使终端点取半数权重可用 ave(z, lon=0, lon=360, -b)。注意,对于求平均函数, 其维数表达式通过缺省文件的维数尺度来给出。 例子: ave (z, t=1, t=20) 时间从 t=1 时次到 20 时次对变量 z 求时间平均。 ave (q, t=1, t=6, 12) 从时间 t=1 到 t=60 以间隔 12 求变量 q 的时间平均。 ave (mag(u,v), t-1, t+1) 对三个时次求变量 mag(u,v)的时间平均,该三时次为当前维数 环 境的相对值。 aave (expr, dimexpr1, dimexpr2, dimexpr3, dimexpr4)20 GrADS 使用手册以 dimexpr1,dimexpr2 为纬向或 x 方向,dimexpr3,dimexpr4 为经向或 y 方向的积分 上下限求面积平均。相当于嵌套求两次平均 ave,但前者较后者更准确。作为变动维数方 向本函数不能对 z 或 t 作为求平均方向求平均。如要求时间序列面积平均,需与 tloop 函数 合用。 tloop (expr) 通过循环时间维数逐个逐个局地固定时间维来求 expr 的值,即对 expr 固定其时间维 数求值,并在求值工程中对时间维进行逐个循环,用法见下例: set x 1 set y 1 set lev 500 set t 1 100 display tloop (aave (p, lon=0, lon=360, lat=-90, lat=90)) 求 p 变量时间序列的全球面积平均,为了先得到一个时间序列,固定 x,y,z 让时间变化, 再用 tloop 函数,让 aave 在求面积平均时固定时间维,并逐时刻循环求值,得出面积平均 的时间序列。 oacres (grid, stn, pass1, pass2, pass3……) cressman 分析函数,缺省的 pass 半径序列为 10,7,4,2,1 cdiff (expr, dim) skip 设定样本取样密度,如:display skip (u, 2) 表示在 x,y 方向上对变量 u 隔一个网格点 取一次值构成要显示的场。 display skip (u, 1, 3) 表示在 y 方向隔二个点取一次值,而 x 方 向取所有的格点进行显示操作。 const (expr, contant&, flag&) 设置部分网格点的值取为常数,所有非缺值值的 expr 的格点的值取为常数,如果加上 选项-a,所有网格值设为指定的常数值。如果选项为-u,只把缺值值的格点设为常数值。 例如:display const (p, 0, -u) 将降水变量 p 的缺值值的格点值设为常数 0。 asum(expr,xdim1,xdim2,ydim1,ydim2) 和 asumg(expr,xdim1,xdim2,ydim1,ydim2) 对指定的区域求和(二维求和) ,asumg 为不计任何权重求和。 对于全球(0~360°,-90~90°)范围可用以下方式表述: asum(expr,global)/asum(expr,g) coll2gr(cnum &,num&) 将 collect 命令形成的资料阵列形成格点场。其中: cnum:采集资料序号; num:结果格点场的垂直层次值,缺省为 10,若设为&-u&,则为所有采集的 站点数据层次的集合。 fndlvl (expr, expr_to_find, lev1, lev2)21中央差分函数 http://www.lasg.ac.cn在指定的层次范围 lev1 和 lev2 间寻找第一个 expr_to_find 表达式的值为 expr 的层 次值。示例如下: 1.本例返回有 240K 等温线的 P 层: d fndlvl (t, const(t,240), lev=1000,lev=100)2.本例返回对流层顶的 P 层值,'ttrop'为包含对流层顶温度的变量:d fndlvl (t, ttrop, lev=1000, lev=100)3.本例说明 fndlvl 的局限:返回等同于地面气压 psfc 的层次值(用内部变量 lev) :d fndlvl (lev, psfc, lev=1100, lev=100)本例等同于显示 psfc,除了 psfc 大于 1100 mb(lev 的最大值)处之外。 gr2stn(gridexpr,stnexpr) 或 gr2stn(gridexpr,lon,lat) 功能有所增强,可将格点值插到站点或固定经纬度上,以绘制剖面或时间序列。同时 对 X、Y、Z、T 分别变化时均可实现其功能。 max(expr, dim1, dim2 &,tinc&)/min(expr, dim1, dim2 &,tinc&) 返回指定表达式的最大/小值。其中: expr:任意有效的 GrADS 表达式; dim1:起始的维数表达式; dim2:终止的维数表达式; tinc: 时间步长, 当维数为时间时必须指定。 maxloc(expr, dim1, dim2 &,tinc&)/minloc(expr, dim1, dim2 &,tinc&) 返回指定表达式为最大/小值的维数值(位置)系列。其中: expr:任意有效的 GrADS 表达式; dim1:起始的维数表达式; dim2:终止的维数表达式; tinc: 时间步长, 当维数为时间时必须指定。 oabin (gexpr, sexpr &,-flag&) 根据站点的位置将观测资料放入单元格网中,若一个格网中有几个测站则取其平均以 获得分析值。其中: gexpr:有效的格点表达式; sexpr:有效的站点表达式。 Flag 选项可为两种值:-f 将值设为放入单元格网的第一个观测值,-c 输出每个 格网中的站点数。 sum(expr,dim1,dim2&,tincr&&,-b&)和 sumg(expr,dim1,dim2&,tincr&&,-b&) 一维的求和函数,sumg 为不计任何权重求和。其中, expr:GrADS 表达式, dim1,dim2:开始、结束的维数, tinc:对时间求和时,所取的样本步长, b:使用实际的边界。 注意:1、dim1,dim2,tincr 对应于缺省文件的网格,若为经纬度坐标,则转化为最近 的网格坐标; 2、若-b 标记不采用,则结束点使用正常权重;使用-b 标记则使用精确的 dim1 和 dim2,而非使用最近的网格点值; 3、对 Y 方向,如果维数超出极点,sum 允许出现这样的情况,并在计算时加适 当的权重,若不需使用任何权重,可采用 sumg 函数。 scorr(expr1, expr2, xdim1, xdim2, ydim1, ydim2) 计算两个表达式的相关值,返回一个数值。全球范围(0~360,-90~90)可用以下方式表22 GrADS 使用手册述: scorr(expr1, expr2, global)/scorr(expr1, expr2, g) 本函数可与 tloop()或 define 联合使用来形成时间序列或绘制时间―高度图。 scorr() 假 X 为经度 Y 为纬度ψ,对 Y 方向取Δsin(ψ)为权重,同时亦对不同的空间格点取 适当的权重。示例如下: 'set lat -10 10''set lon 120 280' 'd scorr(tsfc, lhtfl, lon=120, lon=280, lat=-10, lat=10)'tcorr (expr1, expr2, tdim1, tdim2) 给出时间序列 expr1 与空间场 expr2 相关系数的空间分布场,示例如下:set x 1 set y 1 set z 1 set t 1 100 define elnino = aave(ts,lon=-160,lon=-80,lat=-10,lat=10) set lon -180 180 set lat -90 90 set z 1 set t 1 d tcorr(elnino, slp, t=1, t=100)sregr(expr1, expr2, xdim1, xdim2, ydim1, ydim2) 计算表达式 expr1 和 expr2 的最小二乘回归, 返回一个数值。 全球范围(0~360,-90~90) 可用以下方式表述: sregr(expr1, expr2, global) /sregr(expr1, expr2, g) 其中:expr1 为独立变量,expr2 为非独立变量。回归系数与输入表达式的单位有关, 2 如 shtfl 的单位是 W/m , tsfc 的单位是 K,所以 shtfl 关于 tsfc 的回归系数单位是 2 W/(m K)。 sregr()可与 tloop()或 define 联合使用形成时间序列或绘制时间―高度 图。 Sregr()假定 X 为经度 Y 为纬度ψ,对 Y 方向取Δsin(ψ)为权重,同时亦对不同的空 间格点取适当的权重。最小二乘回归的结果往往以下式表达: Y = slope * X +intercept其中 X 是独立变量,Y 是非独立变量, slope 及 intercept 均由代数公式求得。 示例如下: 'set lon 120 250'; 'set lat 15 60';接着:'define ivar = 'define dvar = 'set z 1'; 'd sregr(ivar, 'define coefftsfc' /* 地面气温 shtfl' /* 感热通量 'set t 1 ' dvar, lon=120, lon=250, lat=15, lat=60)' = sregr(ivar, dvar, lon=120, lon=250, lat=15,lat=60)' 'define dvarave = aave(dvar, lon=120, lon=250, lat=15, lat=60)' 'define ivarave = aave(ivar, lon=120, lon=250, lat=15, lat=60)' 'd coeff * (ivar - ivarave) + dvarave'23 http://www.lasg.ac.cntregr (expr1, expr2, tdim1, tdim2) 用 tregr 函数来求算时间域上的回归,参考 sregr()函数。示例如下:set y 1 set z 1 set t 1 100 define elnino=aave(ts, lon=-160, lon=-80, lat=-20, lat=10) set lon 0 360 set lat -90 90 set z 1 set t 1 d tregr(elnino, slp, t=1, t=100) 另: 'define coeff = tregr(elnino, slp, t=1, t=100)'; 'define slpave = ave(slp, t=1, t=100)'; 'define ninoave = ave(elnino, t=1, t=100)'; 'd coeff * (elnino - ninoave) + slpave'tmave(maskexpr,expr,timexpr1,timexpr2) 求时间平均,本函数以指定的时间平均循环,并计算每个固定时刻的 maskexpr 值, maskexpr 需为单个的值, maskexpr 为缺失值, 若 该时刻 expr 不计入平均, maskexpr 若 不为缺失值, 便作为对 expr 求平均的权重系数。 tmave()函数相当于 ave()及 maskout() 函数连用,但更为有效。其中: maskexpr:标记表达式,当对固定时刻求值时,需为一个值; expr:被平均得表达式; timexpr1,2:时间域的上、下限。 示例如下:某时段中,对 SST 值大于某个值的区域,求 slp 的平均:'set x 1'; 'set y 1' 'set t 1 last' 'define sstmask = aave(sst,lon=-180,lon=-90,lat=-20,lat=20)' 'define sstmask = const(maskout(sstmask,sstmask-25.0),1)' 'set lon -180 C90’ 'set lat -20 20' 'set t 1' 'd tmave(sstmask,slp,t=1,t=last)'§3.4 临时定义变量 可在交互操作中定义一些新的临时变量以供以后的操作使用,定义方式如下: define varname=expression 新定义的变量 varname 只存在于内存中,所以不要定义过大的维数范围。例如:下面定义 了一个四维变量 temp: set lon -180 0 set lat 0 90 set lev
set t 1 10 define temp=rh24 GrADS 使用手册定义后可改变其维数环境 set t 5 set lev 500 d temp 得到的是显示只有两维(lon,lat)变化的场。现在,define 命令只在当前缺省文件(set define # 进行更改)为格点数据时才可用。因此,即便是要对站点数据进行 define,也须将当前缺 省文件设为某个格点场数据文件。 §3.5 系统内置函数(用于 gs 描述语言直接调用) substr (string, start, length) 执行后返回一个字符串 string 的字串 string, 其内容为位置起始于 start 点共有长度为 length。 如果串 string 太短,结果将取为 NULL。Start 和 length 为整型的字符串值。 subwrd (string, word) 执行结果返回字符串 string 的第 n 个(即 word 的值)字段的字符串,如果字符串 string 太 短,则返回结果为 NULL。Word 须取整型数。例:subwrd(string,3)。返回字符串 string 以 空格为间隔的第三字段的字符串为结果字符串。 sublin(string,line) 返回字符串第 n 行(即 line 的值)的全行字符串作为字符子串 string。同样,如果字符串 string 的行数太少则返回结果为 NULL。line 须用整型数。 read(name) 读入文件名为 name 的文件中的下一个记录,返回结果分为两行(但仍作为一个串) ,第一 行为返回码,第二行是读入的纪录,记录最大 80 个字符,可用 sublin 函数来分离返回值。 返回码:0 ok,1 open error,2 end of file,8 file open for write,9 I/O error。直到读入函数 所在的描述文件(*.gs)执行终结。这个因读入而打开的文件一直打开,其间所有的读操 作依记录顺序执行。 write(name, record&, append&) 将记录 record 写入文件 name 中,第一次写即打开该文件,以后一直打开,后面的写操作 将破坏该文件,除非加 append 选项使成为续接态。返回码:0 ok,1 open error,8 file open for read。 close(name) 关闭文件 name。当要从一个打开的写入文件读入记录时要先用 close 关闭它再调读入,也 即可实现反绕功能。返回码:0 ok,1 file not open。25 http://www.lasg.ac.cn第四章 输入数据格式§4.1 格点数据格式 GrADS 格点数据集为直接访问形式(direct access binary) 。一个网格点上(即一个确 定的经纬度,高度和时刻)可以有任意多个物理变量,GrADS 视这些数据为一个大数组, 其排放顺序为先 x(经度) 、y(纬度) 、z(高度层数) ,然后是各种物理变量,最后是 t(时 次) 。每个数据集由一个数据描述文件描述。举例来说: DSET ua.dat TITLE Upper Air Data DTYPE grid FORMAT yrev OPTIONS byteswapped UNDEF -9.99E33 XDEF 80 LINEAR -140.0 1.0 YDEF 50 LINEAR 20.0 1.0 ZDEF 10 LEVELS , 700, 500, 400, 300, 250, 200, 150, 100 TDEF 4 LINEAR 0Z10apr1991 12hr VARS 5 slp 0 0 Sea Level Pressure z 10 0 heights t 10 0 temps td 6 0 dewpoints u 10 0 winds v 10 0 v winds ENDVARS 数据描述文件为文本格式文件,每行记录的各项以空格分开,注释行在第一列打“*” , 注释行不能出现在变量列表中,每行记录不超过 80 个字符,每个描述文件包含以下几项: ① 二进制数据文件名(这里为 ua.dat) ② 本数据集说明标题(Upper Air Data) ③ 数据集的数据类型、格式和选项(dtype, format, options) ④ 时空维数环境设置 ⑤ 最后是变量定义 对某一层某一变量在某一时刻,x、y 数据点构成了一个水平网格,该网格严格对应于 FORTRAN 中的数组存放顺序,第一维总是从西变到东,第二维从南变到北。实际大数组 以二维数组片存放为: Time 1, Level ?, Variable slp Time 1, Level 1000, Variable z Time 1, Level 850, Variable z then levels 700, 500, 400, 300, 250, 200, then Time 1, Level 150, Variable z Time 1, Level 100, Variable z Time 1, Level 1000, Variable t26 GrADS 使用手册Time 1, Level 850, Variable t then levels 700,500,400,300,250,200,then Time 1, Level 150, Variable t Time 1, Level 100, Variable t Time 1, Level 1000, Variable td Time 1, Level 850, Variable td Time 1, Level 700, Variable td Time 1, Level 500, Variable td Time 1, Level 400, Variable td Time 1, Level 300, Variable td Time 1, Level 1000, Variable u Time 1, Level 850, Variable u then levels 700,500,400,300,250,200,then Time 1, Level 150, Variable u Time 1, Level 100, Variable u Time 1, Level 1000, Variable v Time 1, Level 850, Variable v then levels 700,500,400,300,250,200,then Time 1, Level 150, Variable v Time 1, Level 100, Variable v Time 2, Level ?, Variable slp Time 2, Level 1000, Variable z Time 2, Level 850, Variable z Time 2, Level 700, Variable z Time 2, Level 500, Variable z Time 2, Level 400, Variable z . . . etc 以下详细地说明数据描述文件中各记录 DSET data-set-name 给定二进制原始数据集的文件名(包括路径) 。如果该数据集与描述文件在相同路径下,可 用 缺 省 路 径 符 号 “ ^ ” 代 表 , 例 如 /data/wx/grads/sa.ctl 所 描 述 的 数 据 文 件 为 /data/wx/grads/sa.dat, 则既可定义为: DSET ^sa.dat 也可定义为 DSET /data/wx/grads/sa.dat。 TITLE string 用字符串 string 简略描述数据集内容,该标题将在 GrADS 的查询命令 QUERY 中出现。 UNDEF value 定义缺测值或缺值值,GrADS 在运算操作和图形操作时将忽略这些值点。27 http://www.lasg.ac.cnOPITION &keywords& 定义数据格式选项,keywords 有: &yrev&&zrev&&sequential&&byteswapped& &template&&big-endian&&titlee-endian& 分别用于表示: ① yrev y 维数方向反向; ② zrev z 维数方向反向; ③ sequential 原始数据输出格式为顺序记录格式,缺省时为 direct 直接记录格 式 ④ byteswapped 二进制数据的位存放顺序取反序; ⑤ big-endian、little-endian 用于自动改变二进制位存放顺序; ⑥ template 多个时间序列原始数据文件想用一个数据描述文件统一地描述这些 原始数据时采用的选项,这些数据文件的文件名形式由 dset 定义的形式命名文件名,提示 所含数据的时次。 例如一个逐小时的数据集每 24 小时数据放到一个文件中, 每个文件名形 式为: 1may92.dat 2may92.dat 通过 dset 设置告诉 GrADS 数据集文件名用代换模式格式如下: dset %d1%mc%y2.dat 然后通过选项 options template 定义时间范围和增量 tdef 72 linear 0Z1may1992 1hr 正确的替换为: %y2 两位数年 %y4 4 位数年 %m1 1 或 2 位数月 %m2 2 位数月(用 0 补齐 1 位数) %mc 3 字符月份缩写 %d1 1 或 2 位天 %d2 2 位天 %h1 1 或 2 位小时 %h2 2 位小时 XDEF number LINEAR start increment XDEF number LEVELS value-list 设置网格点值与经度的对应关系,其中 number 是 x 方向网格点书,用整型数,必须大于 等于 1;LINEAR 或 LEVELS 表明网格映射类型,取 LINEAR 时:网格点格距均匀,start 起始经度,或 x=1 的经度,用浮点数表示,负数表西经,increament 表 x 方向网格点之间 的格距,单位是度,用正值浮点数表示。对 LEVELS:网格点格距不均匀,用枚举法列出 各网格点对应的经度值,value-list 顺序列出各格点的经度值,可在下一行续行。至少有两 个以上格点时方可用 LEVELS。 YDEF number mapping start &increment& YDEF number mapping start &LEVELS value-list& 定义 y 方向格点与纬度的映象关系, 其中: number y 方向的格点数, 用整型数表示, mapping 映射方式,有如下几种:28 GrADS 使用手册LINEAR 线性映射 GAUSR15 高斯 R15 纬度 GAUSR20 高斯 R20 纬度 GAUSR30 高斯 R30 纬度 GAUSR40 高斯 R40 纬度 对线性映射 LINEAR,start 是起始纬度即 y=1 的纬度,以浮点数表示,负数表示南纬。对 GAUSRxx 映射,start 为第一个高斯网格数,1 表示最南端格点纬度。只当线性映射时 (LINEAR) ,定义 increment 为 y 方向网格点间距,一般格点增量为正浮点数表示,由南 向北。 对 LEVELS,value-list 表示一串 y 方向纬度值,即顺序枚举一系列网格点对应的纬度值, 该枚举记录长度可大于 80 个字符。 例如: YDEF 20 GAUSR40 15 表明共有 20 个 y 方向网格点,起始点为高斯 R40 网格 下的高斯纬度 15(即 64.10 南纬) ,实际这 20 个地球坐标网格点纬度值为: -64.10,-62.34,-60.58,-58.83,-57.07,-55.32,-53.56, -51.80,-50.05,-48.29,-46.54,-44.78,-43.02,-41.27, -39.51,-37.76,-36.00,-34.24,-32.49,-30.73 ZDEF number mapping &start increment& ZDEF number mapping &value-list& 设置气压面与垂直网格点的映射关系, 其中 number 为 z 方向的网格点数, 整型数, mapping 为映射类型,有如下几种: LINEAR 线性映射 LEVELS 任意气压面 start 当映射为线性时,start 为 z=1 时的值或起始值。Increment 为映射为线性时,表示 z 方 向的增量,或是从低到高,该增量可取负值。 例如: ZDEF 10 LINEAR
表示共 10 层等压面,其值各为 ,800, 700 等等。 value-list 为当映射为 LEVELS 时,顺序枚举给出全部对应的等压面。只有一层时须用 LINEAR 选项。 TDEF number LINEAR start-time increment 设置网格值与时间的映射关系。 其中: number 为数据集中的是次数, 整型数表示。 start-time 为起始日期/时间,用 GrADS 绝对时间表示法,其格式为: hh=mmZddmmmyyyy 其中 hh 为两位数的小时,mm 为两位数分钟,dd 为一或两位数的日期,mmm 为三个字符 的月份缩写,yyyy 为两位或四位数年份。不给出时,hh 缺省为 00 时,mm 缺省为 00 分, dd 缺省为 1 号,月年值不能缺省。整个时间串中不能有空格。 例如: 12Z1JANZ22JAN1987 JUN1960 increment 为时间增量,格式为 vvkk,其中 vv 表增量值, (整型数) ,一或两位,kk 为增量29 http://www.lasg.ac.cn类型,有如下几中,mn 表分钟,hr 表小时,dy 表天,mo 表月,yr 表年。 例如: 20mn 表增量为 20 分钟 1mo 表增量为 1 个月 例 TDEF 24 LINEAR 00Z01JUN1987 1hr 表示共有 24 个时次,起始时刻 1987 年 6 月 1 号 00Z 时,增量为 1 小时。 VARS number 表示变量描述开始,同时给出变量个数,其中 number 为数据集中变量数。每个变量描述 记录格式如下: abrev levs units description 其中 abrev 为 1 到 8 个字符组成的该变量的缩写名,用于 GrADS 中访问该变量。该名字要 求以字母(a-z)开头,字母和数字构成。levs 为整型数,表明该变量在本数据集中含有的 垂直层数。该数不可大于 ZDEF 中给出的垂直网格层数。0 表示该变量只有一层,并且不 对应于其它垂直层,如所谓地表变量。Units 暂时是为常数 99。Description 为一段说明该 变量的字符串,最多 40 个字符。最后一个变量罗列完后用 ENDVARS 表示数据描述文件 结束。 在原始数据的生成文件中,无论用工作站还是 PC 机,无论是用 FORTRAN 语言还是 用 C 语言,所生成的数据的格式都要求是流式“stream”记录格式,不允许在记录中加入 描述符, 如记录开始、 记录结束、 换行符等。 总之要用直接访问格式输入输出。 FORTRAN 在 中,举例如下,用的是 DEC 工作站 Fortran 编译器,各编译器可能有不同。 REAL Z(72,46,16) . . OPEN (8,FILE=’grads.dat’,FORM=’UNFORMATTED’, & ACCESS=’DIRECT’,RECL=72*46) . . IREC=1 DO 10 I=1,16 WRITE (8,REC=IREC)((Z(J,K,I),J=1,72),K=1,46) IREC=IREC+1 10 CONTINUE 这段程序产生了一个 16 层的一个变量的直接记录格式的原始数据文件。 相应的数据描述文 件 grads.ctl 的内容为: DSET grads.dat TITLE Test Data Set UNDEF C9.99E33 XDEF 72 LINEAR 1 1 YDEF 46 LINEAR 1 1 ZDEF 16 LINEAR 1 1 TDET 1 LINEAR JAN95 mo30 GrADS 使用手册VARS 1 z 16 99 Testing Data ENDVARS 启动 GrADS 后打开文件 grads.ctl,再设显示某层,例如: set z=2,再打显示命令 display z 即可显示该层上 z 值的分布。Some Tips Tips 1 用循环写 grads 的二进制数据,从内循环到外循环依次是: x(lon)-& y(lat)-&z(lev)-&vars(不同变量)-&time 任何一维可省略。 这是 GrADS 缺省的数据存放次序,读取和调用的效率最高。Tips 2 如果已有的数据格式不符合 Tip.1 的存放次序, 我们可以在 ctl 文件中告诉 GrADS (对 v1.5 以上版本适用) :如下的 ctl 文件,是我们通常使用的,它描述的数据 timedata.dat 符合 Tip.1 所推 荐的存储顺序: dset timedata.dat title time serial data xdef 144 linear 0 2.5 ydef 73 linear -90 1 zdef 12 levels
700 600 500 400 300 250 200 150 100 tdef 480 linear jan1958 1mo vars 5 h 12 99 geo. height. u 12 99 u-wind v 12 99 v-wind w 12 99 w-wind t 12 99 temp. Endvars 最关键的地方,是兰色表示出来的那一列“99”。一般,我们写 ctl 文件时被告之, 这个位置须填置“99”这个值,而不是其他。随 GrADS 版本的更新,这个位置也 可以被其他值所填充,用来表示特殊的数据存储次序或格式。如: 1、 -1,10,1 表示: x(lon)-& y(lat)-&var(不同变量)-&z(lev)-&time 如: h 12 -1,10,1 geo. Height u 12 -1,10,1 u-wind31的存储次序 http://www.lasg.ac.cnv 12 -1,10,1 v-wind w 12 -1,10,1 w-wind t 12 -1,10,1 temp 2、 -1,20 表示: x(lon)-& y(lat)-&z(lev)-&time-&var(不同变量) 的存储次序这个对于某些需要在 ctl 中 template 关键字的情况(即用同一个 ctl 文件描述一组 同类型的数据文件)非常有用哦。 3、 -1,30 表示: y(lat)-&x(lon)-& var(不同变量)-&z(lev)-&time 的存储次序先放纬度方向,再放经度方向。 4、 -1,40 这个不再表示存储次序,而是数据的类型! 采用“-1,40”这样的说明,表示你的数据是整形的: -1,40,1 = 1-byte unsigned chars (0-255) -1,40,2 = 2-byte unsigned integers -1,40,-2 = 2-byte signed integers -1,40,4 = 4-byte integers 这些跟在“-1,40”后面的数字“1”、 “2”、 “-2”、 “4”就表示数据的字节数。§4.2 站点数据格式 站点数据集同样是二进制形式按每个时次一个报告的顺序直接记录各站报告,每个时 次的站点报告组又分成两部分:地面报和高空报。站点报数据的排放顺序为: ① 提供站点经纬度的头记录 ② 地面报变量 ③ 高空报变量 ④ 一个时次完成后加上一个特殊头记录(没有数据组)表示本时次数据报结束,然 后是下一时次的数据报,如果某时次头记录后无报文随后出现,则表示本数据集 全部结束。 在头记录之后,顺序记录本时次的各报文,首先是一组数据表示全部地面变量(如果 有的话) ,所有的地面变量必须全部写出,缺测点用缺省值代替,因此每个地面变量组有相 同的数据量大小。地面变量写出时以浮点数形式,变量排列顺序每个报告中须相同,记录 顺序由数据描述文件给出。 在地面变量组后是依赖高度的报告组。组数在头记录中事先声明。同样每一层中依赖 高度的变量报告组须将所有变量写出,缺测点用缺省值给出。所以每层高度依赖组在各层 中和整个文件中的各时次报告中都有相同的数据量。依赖高度层的组写出顺序如下: ① level 浮点数值写出地球坐标系中 z 维数方向的值, ② variables 本层所有变量报告 当本时次的所有报告写完后,写出一个特别头记录,该记录没有数据组数,以表明一个时32 GrADS 使用手册间组的结束,即 nlev 取为 0。然后是下一时次组的纪录,同样是头记录,地面报、高空报。 如果一个时间组没有报告内容表示本数据集结束。 例子:有如下格式月降水资料 Year 80 80
. . . Month 1 1 1 1 2 2 2 2 Stid QQQ RRR SSS TTT QQQ RRR SSS TTT Lat 34.3 44.2 22.4 33.4 34.3 44.2 22.4 33.4 Lon -85.5 -84.5 -83.5 -82.5 -85.5 -84.5 -83.5 -82.5 Rainfall 123.3 87.1 412.8 23.3 145.1 871.4 223.1 45.5文件名为 rain.ch,FORTRAN 语言为: CHARACTER *8 STID C OPEN (8,NAME=’rain.ch’) OPEN (10,NAME=rain.dat’,FORM=’UNFORMATTED’, + RECORDTYPE=’STREAM’) IFLAG = 0 C C Read and Write C 10 READ (8,9000,END=90) IYEAR,IMONTH,STID,RLAT,RLON,RVAL 9000 FORMAT (I4,3X,I2,2X,A8,3F8.1) IF(IFLAG.EQ.0) THEN IFLAG = 1 IYROLD = IYEAR IMNOLD = IMONTH ENDIF C C If new time group, write time group terminator. C Assuming no empty time groups. C IF (IYROLD.NE.IYEAR.OR.IMNOLD.NE.IMONTH) THEN NLEV = 0 WRITE (10) STID,RLAT,RLON,TIM,NLEV,NFLAG ENDIF IYROLD = IYEAR IMNOLD = IMONTH33 http://www.lasg.ac.cnC C CWrite this report TIM = 0.0 NLEV = 1 NFLAG = 1 WRITE (10) STID,RLAT,RLON,TIM,NLEV,NFLAG WRITE (10) RVAL GO TO 10C C On end of file write last time group terminator. C 90 CONTINUE NLEV = 0 WRITE(10) STID,RLAT,RLON,TIM,NLEV,NFLAG STOP END 其中 STID 为站点标识,由 1 到 7 个字符组成,站点标识需是站点唯一的,其赋值可以是 人意的,可以是任意数字,也可以是字母。RLAT 为在地球坐标系中站点在 y 方向的位置, 一般为经度,RLON 为在地球坐标中站点在 x 方向的位置,一般为纬度。TIM 为本报的时 次,取相对于网格的单位,即不一定是准确时刻值,只是该时次的相对值。例如一组航线 地面报,以小时为间隔分组,如想准确按小时精确分组,可设 t=0.0,当一个报是 12.15pm 的而你想把它写入 12pm 组该报 t=0.25,显然 t 通常取值-0.50 到 0.5。NLEV 为头记录后的 数据组数,包括一个地面报组加上各高度层数。NLEV 取为 0 时标志着一个时次报文的结 束。NFLAG 取 0 表示头记录后的报文中没有地面观测变量,如取 1 则表示有地面变量。 C 语言的头的形式如下: struct rpthdr{ char id[8]; /* Character
/* Latitude /* Longitu /* Time in relative /* Number of level /* Level independent var set flag }; 对应的原始数据描述文件 dset rain.dat dtype station stnmap rain.map undcf -999.0 title monthly rainfall tdef 12 linear Jan1980 1mo var 134*/ */ */ */ */ */ GrADS 使用手册p 0 99 endvarsRainfall Data然后在 dos 环境下运行 stnmap 文件来创建站点映射文件(rain.map) ,再之后就可运行 GrADS 打开文件和显示操作了。 §4.3 GRIB 数据格式 GrADS 可直接读 GRIB 数据,特别是 NMC 产品。35 http://www.lasg.ac.cn第五章 输出图元文件之格式转换在 DOS 命令环境下或 Unix shell 环境下有几个命令可处理 GrADS 产生的图元文件, 也可生成站点数据的站点映像图以加速图形显示,这些命令可以交互式执行,也可直接打 出命令参数选项,自动执行: stnmap Ci descriptor-name 生成站点映像图,其中 descriptor-name 为站点原始数据描述文件(*.ctl) 。 gxps Ci meta-file-name Co ps-file-name 将 GrADS 生成的图元文件 meta-file-name *.met) ( 转换成 postscript 格式的文件 ps-file-name (*.ps) 。本命令生成的是黑白或灰度图形。 gxpsc Ci meta-file-name Co ps-file-name gxpscw Ci meta-file-name Co ps-file-name 转换生成彩色 ps 图形,前者为原屏幕上形式,输出到纸上为黑底白字,后者为将原形式背 景反白,输出到纸上为白底黑字。 gs CsDevice = vga ps-file-name 将 ps 文件(*.ps)显示到 VGA 彩色荧光屏上, gs CsDevice = printertype ps-file-name 将 ps 文件输出到打印机上,其中打印机类型 printertype 有如下几种:epson、eps9high、 deskjet、djet500、laserjet、ljet2p、ljet3。可根据打印机类型选择同名选项。ps 打印机可直 接输出 ps 文件。36 GrADS 使用手册第六章 高级操作方法及描述语言§6.1 批命令过程控制 GrADS 系统允许将交互环境下打入的命令罗列在一个文本文件中,然后通过 exec 命 令批处理执行,或者用描述语言(script language)编写具有复杂功能的 gs 命令集(*.gs) , 通过 run 命令执行。 后者可设计菜单式用户界面程序, 以自动完成全部 GrADS 操作。 另外, 这两个命令集都可通过 grads 命令的-c 选项在启动 GrADS 时首先执行某个批操作, 格式如 下: grads -c “run named.gs” 或 grads -c “exec named.exc” 其中的 name.gs 和 name.exc 分别为描述语言程序和批处理命令集,name 为用户自定义。 §6.2 EXEC 命令 直接把交互状态下输入的一系列 GrADS 环境内操作写到一个文件中,分行写,一个 操作写一行,文件以纯 ASCII 文本形式写,文件名可任意取,建议取形式*.exc,执行时在 GrADS 命令提示符号后键入 exec *.exc 即可批处理执行该文件中全部操作。 §6.3 描述语言 GrADS 提供了功能更强的批处理操作和界面设计语言―描述语言(script language) 。 该语言是一种解释型高级语言,解释器就是 GrADS 本身,语言的程序由 run 命令执行。描 述语言提供了变量、流控制、输入输出等高级语言功能。描述语言程序本身由纯 ASCII 码 文本形式书写,通过设计程序可提供诸如鼠标操作、闪烁动画提示、硬件自动查询后相关 执行、设计函数等功能。 描述语言的所有变量都是字符串型(string) 。变量的操作包括运算、流控制、循环等, 变量所含的字符串或表达式生成的结果字符串都可被 GrADS 当作命令执行,这些命令的 执行结果将返回给变量,并可用于进行进一步操作。 描述语言的程序由记录组成,每个记录由分号或行结束符来分辨,即命令可以分行罗 列,也可用分号相连写在一行上。描述语言的基本元素(谓词)有以下几种类型: Assignment 赋值语句 If/Else/Endif while/endwile/break/continue function header/return say/pull 如果程序中出现的不是上述谓词,则该记录是所谓声明记录(statement record) ,它包 含了一个表达式,表达式的值将作为 GrADS 的命令传给 GrADS 执行。表达式由运算符、 运算对象组成,运算对象包括变量、函数和常数。运算符包括算术的、逻辑的、连接的。 没有 goto 谓词。 变量(variables) 变量名由 1 到 8 个字符组成,第一个字符是字母,后面可用字母或数字,变量名区分37 http://www.lasg.ac.cn大小写,变量的内容总是一个字符串,对某些操作字符串可被解释为数字。未赋值前变量 的值即是其名字,result 和 re 两个变量系统已用,不能再定义。 运算符(operator) | 逻辑或 & 逻辑与 = 等于 |= 不等于 & 大于 &= 大于或等于 & 小于 &= 小于等于 % 连接 + 加 减 * 乘 / 除 ! 一元否 一元负 下面的运算符可用于数字对象的数字运算: =,!=,&,&=,&,&=,+,-,*,/ 下面运算符处理非数字对象操作,结果为错(伪) :+,-,*,/ 算术运算以浮点进行,如果结果为整型数,则结果字符串是整型的。 逻辑运算符取字符 0 表示结果为假(false) ,字符 1 表示结果为真(true) 。 表达式(Expressions) 表达式由运算符、运算对象、括弧组成,运算优先顺序如下: -,! /,* +,% =,!=,&,&=,&,&= & | 同优先级的运算,顺序从左到右。 运算对象可以是变量、字符串常数、函数调用。字符串常数用单或双引号括起来,数 字常数不用引号,但认为是字符串常数。例“This is a string”即是一个字符串常数。所有 全部表达式包括函数调用都将被 GrADS 执行并得到结果(返回码) 。 函数的调用形式: name(arg, arg, arg, ……),其命名规则同变量名,其参数 arg 可以是表达式。38 GrADS 使用手册IF 块 (IF Blocks) 流程控制可用 if/else/endif 结构,格式如下: if expression 必须单独做为一个记录 script record script record . . . else 可有可无 script record . . . endif 必须有 if 块的执行时的流程控制取决于表达式的结果,如果表达式的结果为字符 0,则 else 后的部分被执行,除此之外都执行 if 后的部分。 while 块(WHILE Block) while 结构格式如下: while expression script record script record . . . endwhile 单独一个记录一定要有当表达式 expression 结果为真时(即不绝对等于字符 0)时循环体将被执行,否则终 止循环;break 可立即终止循环,跳出循环体;continue 立即回到循环体的头,并对表达式 进行重新估值。 例子: t=1 while (t&10) ‘set t’ t ‘display z’ if (rc=0); t=t+1 endwhile 函数(Function) 函数包括两种,一种是用户自定义的只在本描述程序中有效的函数,另一种为 GrADS 提供的内置函数。现不支持跨程序函数调用,但其它文件可用 run 命令执行。函数被调用39 http://www.lasg.ac.cn时,估算其中的表达式,并返回一个单一的字符串作为结果。函数可用多个字符串参数。 函数调用形式为: name (arg, arg, arg, ……) 如果函数没有参数,仍必须写出一对空括号为 name()。 在描述语言程序中自定义函数可用函数定义记录: function name (variable, variable, ……) 从定义函数体返回调用时返回记录: return expression 其中 expression 是可选项,不给出,只返回一个 NULL 字符串。函数的结果用 return 命令 的 expression 表达式给出的结果。当函数被调用时,先估计参数之值,然后将流程控制权 交给函数,函数定义记录中列出的变量将用调用记录的参数来初值化,如果给出的参

我要回帖

更多关于 fomula e 的文章

 

随机推荐