第九章Grads函数.docx
- 文档编号:25519556
- 上传时间:2023-06-09
- 格式:DOCX
- 页数:20
- 大小:781.89KB
第九章Grads函数.docx
《第九章Grads函数.docx》由会员分享,可在线阅读,更多相关《第九章Grads函数.docx(20页珍藏版)》请在冰豆网上搜索。
第九章Grads函数
GRADS(GridAnalysisandDisplaySystem)
讲义(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,表示对每个网格点取同样的权重求平均,包括终端点。
例如:
求纬向平均
Setx1
Sett148
Setlev200
setlat040
Uave=ave(u,lon=0,lon=360,-b)。
求时间平均:
sett1
setlon60150
setlat040
setz1
a=ave(u,t=1,t=48)
da
注意:
mean函数用法同上,但不加权
2、aave函数
1)格式:
aave(expr,xdim1,xdim2,ydim1,ydim2)
2)功能:
求面积平均。
3)说明:
expr:
任何表达式
xdim1:
X维数方向的起始维数表达式
xdim2:
X维数方向的终止维数表达式
ydim1:
Y维数方向的起始维数表达式
ydim2:
Y维数方向的终止维数表达式
注意:
1)aave函数采用地球坐标进行运算,运算时考虑了不同纬度的权重。
例如:
Sett148
Setz1
Setx1;sety1
a=aave(u,lon=110,lon=150,lat=0,lat=40)
da
2)amean()函数用法用上,不加权。
3、tmave()高级篇
4、asum()和asumg
对指定区域求和(二维求和)
5、sum()和sumg()
一维求和函数
6、max()/min()(高版本)
返回指定表达式的最大/最小值
maxloc/minloc()
返回指定表达式的最大/最小值的维数值(格点)系列
使用这个命令后,括号内的维数自动固定.
例如:
设定t/z/固定,看每个纬带上沿x方向的最大值
dmax(u,x=1,x=37)
dmaxloc(u,x=1,x=37)
7、vint函数
1)格式:
vint(psexpr,expr,top)
2)功能:
质量加权垂直积分函数,计算
。
3)说明:
psexpr表示地面气压变量,expr表示被积变量,top表示积分上限(须为常数,单位hPa),本函数要求定义水平维数环境。
如:
vint(ps,u,100)表示对u变量从ps到100hPa进行质量加权垂直积分。
4)gint(expr,dim1,dim2)普通积分函数(慎用)
8、scorr()
求空间相关系数
注意:
两个场的空间相关系数是一个值,scorr函数之前的x/y维的设置没多大作用,函数会自动固定x/y维,但如果设时间维变动,得到的是相关系数时间序列。
*时间序列
‘setx1’;’sety1’
‘setz1’
‘sett148’
‘dtloop(scoor(u,v,x=1,x=37,y=1,y=17))
剖面z-t:
‘setx1’;’sety1’
‘setz12’
‘sett148’
‘a=tloop(scoor(u,v,x=1,x=37,y=1,y=17))
‘da’
9、tcorr()
求时间相关函数
10、空间回归/时间回归
reinit'
'opene:
\liugd\data'
'setz1'
'sett1'
‘setx1’
‘sety1’
'corr=sregr(u,v,x=1,x=37,y=1,y=17)'
'dcorr'----求回归系数,一个数值
;
'c'
'uave=aave(u,x=1,x=37,y=1,y=17)'
'vave=aave(v,x=1,x=37,y=1,y=17)'
'dcorr*(u-uave)+vave'----回归场值
;
------------
'reinit'
'opene:
\liugd\data'
'setz1'
*'sett1'
'setz12'
'sett148'
'setx1'
'sety1'
*'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))'
'dcorr'
;
'c'
'setx137'
'sety117'
'uave=aave(u,x=1,x=37,y=1,y=17)'
'vave=aave(v,x=1,x=37,y=1,y=17)'
'b=corr*(u-uave)+vave'
'setz1'
'db'
;
'reinit'
'opene:
\liugd\data'
'setz1'
'sett148'
'setx1'
'sety1'
'a=aave(u,x=1,x=37,y=1,y=17)'
'sett1'
'setx137'
'sety117'
'*dtregr(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)'
'dcorr*(a-aave1)+uave'-----回归值
;
四、网格处理/平滑/差分函数
1、const函数
1)格式:
const(expr,constant<,flag>)
2)功能:
设置部分网格点的值取为常数constant。
所有非缺测格点处的expr值取为常数,
3)flag说明:
-a:
所有网格点值均设定为指定的常数
-u:
把缺测格点处的expr值设定为常数。
该函数对格点和台站资料均适用。
如:
displayconst(p,0,-u)将变量p在缺测格点处的值设为常数0。
又如:
在linefill图形类型的输出中,若须将其中的一条线设为水平直线:
setlon-90
setlat-9090
setgxoutlinefill
setlev500
displayconst(t,-20);t-273.16
2、maskout函数
1)格式:
maskout(expr,mask)
2)功能:
标记函数。
当mask所在的网格点值取为负值时,对应格点上的expr的值设定为缺测值;
当mask所在的网格点值取为正值时,对应格点上的expr值不变。
3)说明:
该函数对格点和台站资料均适合。
例如:
file1中的tsfc表示全球地表温度(在海洋上为SST)资料,file2中的mask表示海陆标记(海洋上为0,陆地上为1)资料,若需显示SST的分布,则可:
maskout(tsfc,0.5-mask.2)
3、skip函数
1)格式:
skip(expr,skipx,skipy)
2)功能:
设定样本的取样密度。
3)说明:
displayskip(u,2)表示在x,y方向上对变量u隔一个网格点取一次值构成要显示的场,
displayskip(u,1,3);v`表示在y方向隔二个点取一次值,而x方向取所有的格点进行显示操作。
该函数主要用于对矢量场的稀疏化显示。
5、cdiff函数
1)格式:
cdiff(expr,dim)
2)功能:
中央差分函数
3)说明:
expr表示进行差分运算的量,
dim表示进行差分运算的维数方向,为X,Y,Z中的任一个字符。
边界格点的运算值设为缺测。
例如,以下运算是计算水平涡度,其效果与hcurl函数完全一样:
definedv=cdiff(v,x)
definedx=cdiff(lon,x)*3.1416/180
definedu=cdiff(u*cos(lat*3.1416/180),y)
definedy=cdiff(lat,y)*3.1416/180
display
(dv/dx-du/dy)/(6.37e6*cos(lat*3.1416/180))
以下运算是计算温度平流:
definedtx=cdiff(t,x)
definedty=cdiff(t,y)
definedx=cdiff(lon,x)*3.1416/180
definedy=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)说明:
典型用法是求面积平均的时间序列,由于aave函数要求时间维固定,这时必须通过tloop函数才能实现这一目的,见下例:
setx1
sety1
setz3
sett131
dtloop(aave(ts,lon=0,lon=360,lat=-90,lat=90))
Sett148
Setz1
Setx1;sety1
a=aave(u,lon=110,lon=150,lat=0,lat=40)
da
为求ts变量的全球面积平均的时间序列,须用前四行语句来设定维数环境,即固定x,y,z,而让时间t变化,再用tloop函数,让aave在求面积平均时固定时间维,并逐时刻循环求值。
8、寻找特征值
五、物理量计算/站点
函数
1、gr2stn函数
1)格式:
gr2stn(grid_expr,stn_expr)
2)功能:
将格点值回插至台站值。
3)说明:
grid_expr为代表格点资料的表达式,内插将采用该格点资料进行,stn_expr为代表台站资料的表达式,内插结果将放至其中。
例如:
为检验客观分析资料的质量,可将客观分析后得到的格点资料回插到原来台站,看其与原始台站资料之间的差值大小,即:
dt.3-gr2stn(t.1,t.3)
其中file1为格点资料,file3为台站资料。
2、Coll2gr()
3、hcurl函数
1)格式:
hcurl(uexpr,vexpr)
2)功能:
计算垂直涡度。
3)说明:
uexpr表示U分量,vexpr表示V分量,风速单位用m/s。
边界上的涡度值设定为缺测。
如:
dhcurl(u,v)
4、hdivg函数
1)格式:
hdivg(uexpr,vexpr)
2)功能:
计算水平散度。
3)说明:
uexpr表示U分量,vexpr表示V分量,风速单位用m/s。
5、tvrh2q函数
1)格式:
tvrh2q(tvexpr,rhexpr)
2)功能:
由虚温tvexpr和相对湿度rhexpr计算比湿。
3)说明:
tvexpr的单位为0K,rhexpr的单位为百分比(取值范围0~100),运算结果的单位为g/g。
该函数仅适合用格点资料。
6、tvrh2t函数
1)格式:
tvrh2t(tvexpr,rhexpr)
2)功能:
由虚温tvexpr和相对湿度rhexpr计算温度。
3)说明:
运算结果的单位为0K,其余说明参见tvrh2q函数。
7、oacres函数
1)格式:
oacres(grid_expr,stn_expr<,radii>)
2)功能:
Cressman内插函数,将台站资料插至格点上。
3)说明:
grid_expr表示格点资料表达式,stn_expr表示台站资料表达式,选项radii表示影响半径,一般采用多个影响半径,它们之间用逗号分开,如:
10,7,4,2,1(省缺值)。
例如:
oacres(ts,ts.2),oacres(ts,ts.2,12,8,5,4,3,2,1)
8、stnave函数
1)格式:
stnave(expr,dexpr1,dexpr2<,-mcnt>)
2)功能:
台站资料时间平均函数。
3)说明:
expr表示欲平均的台站资料表达式,
dexpr1表示起始时间,
dexpr2表示结束时间,
选项-mcnt为质量控制项,表示参与平均运算的台站资料样本数最小不得少于cnt,否则运算结果设定为缺测。
cnt的省缺值为1。
如:
stnave(ts,t=1,t=20,-m10)表示对头20个时刻的ts进行平均,若样本数少于10,则平均的结果为缺测。
9、stnmin函数
1)格式:
stnmin(expr,dexpr1,dexpr2<,-mcnt>)
2)功能:
时段内台站资料最小值。
3)说明:
参看stnave函数的说明。
10、stnmax函数
1)格式:
stnmax(expr,dexpr1,dexpr2<,-mcnt>)
2)功能:
时段内台站资料最大值。
3)说明:
参看stnave函数的说明。
11、oabin
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第九 Grads 函数