《变量和函数精选PPT.ppt》由会员分享,可在线阅读,更多相关《变量和函数精选PPT.ppt(64页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、变量和函数第1页,此课件共64页哦6.1 6.1 变量名变量名 1.完全的变量名形式完全的变量名形式abbrev.file#(dimexpr,dimexpr,)其中,其中,abbrev:是数据描述文件中给出的:是数据描述文件中给出的变量名缩写;变量名缩写;file#:为包含此变量的已打:为包含此变量的已打开的文件序号。开的文件序号。第2页,此课件共64页哦例如:ga-opend:model.ctlopend:model.le.ctl 上例中,上例中,model.ctl文件的序列号为文件的序列号为1,model.le.ctl文件的序列号为文件的序列号为2。序列号。序列号1为缺为缺省情况,可以省略
2、。省情况,可以省略。第3页,此课件共64页哦 括号内的括号内的dimexpr:是对当前维数环境:是对当前维数环境进行的局域维数设置表达式,该表达式仅进行的局域维数设置表达式,该表达式仅对该变量的维数环境进行局域修正,因而对该变量的维数环境进行局域修正,因而仅对固定的维有效。仅对固定的维有效。第4页,此课件共64页哦设置形式可以采用以下两种方式:设置形式可以采用以下两种方式:绝对维数表达式为:绝对维数表达式为:X|Y|Z|T|LON|LAT|LEV|TIME=value(value为绝对维数值);为绝对维数值);相对维数表达式为:相对维数表达式为:X|Y|Z|T|LON|LAT|LEV|TIME
3、+/-offset(offset为相对于当前维数环境设置的偏差维为相对于当前维数环境设置的偏差维数值)。数值)。第5页,此课件共64页哦例如例如:z.3(lev=500)tv.1(time-12hr)rh缺省的当前文件中的变量缺省的当前文件中的变量rhq.2(t-1,lev=850)2号文件中相对于当前时刻的前号文件中相对于当前时刻的前一时刻,高度为一时刻,高度为850hPa等压面等压面上的变量上的变量q表示文件表示文件3中高度为中高度为 500hPa 等压面上的变量等压面上的变量Z相对于当前时刻之前相对于当前时刻之前12小时时刻小时时刻的的1号文件中的变量号文件中的变量tv第6页,此课件共6
4、4页哦ndset model.le.dat noptions little_endian cray_32bit_ieeenUNDEF -2.56E33 nTITLE 5 Days of Sample Model OutputnXDEF 72 LINEAR 0.0 5.0 nYDEF 46 LINEAR -90.0 4.0 nZDEF 7 LEVELS 1000 850 700 500 300 200 100nTDEF 5 LINEAR 02JAN1987 1DY nvars 8 nps 0 99 Surface Pressurenu 7 99 U Windsnv 7 99 V Windsnz
5、7 99 Geopotential Heightsnt 7 99 Temperaturenq 5 99 Specific Humiditynts 0 99 Surface Temperaturenp 0 99 PrecipitationnENDVARS 2.举例说明举例说明第7页,此课件共64页哦ndset model.grbntitle Sample Model Data for lats4d Tutorialnundef 1e+20ndtype gribnindex model.gmpnxdef 72 linear 0.000000 5.000000nydef 46 linear-90.0
6、00000 4.000000nzdef 7 levels 1000 850 700 500 300 200 100 ntdef 5 linear 0Z1jan1987 1dynvars 8nps 0 1,1,0,0 Surface pressure hPanua 7 33,100 Eastward wind m/snva 7 34,100 Northward wind m/snzg 7 7,100 Geopotential height mnta 7 11,100 Air Temperature Knhus 7 51,100 Specific humidity kg/kgnts 0 11,10
7、5,2 Surface(2m)air temperature Knpr 0 59,1,0,0 Total precipitation rate kg/(m2*s)nendvars第8页,此课件共64页哦ga-opend:model.ctlopend:model.le.ctlsett1将时间维数固定在第将时间维数固定在第1个时次个时次dz.2(lev=500)setz3设置垂直高度层次为第设置垂直高度层次为第3个层次个层次,即即700hPadz(z+1)同时打开两个文件同时打开两个文件:model.ctl文件序列号为文件序列号为1,model.le.ctl 文件序列号为文件序列号为2.显示显示2
8、号文件中号文件中500hPa等压面等压面 上的变量上的变量z(绝对维数绝对维数)显示显示1号文件中相对于第号文件中相对于第3个层次的后一个层个层次的后一个层次,即次,即500hPa面上的变量面上的变量z(相对维数)(相对维数)第9页,此课件共64页哦6.2 6.2 表达式表达式1 1、表达式的构成、表达式的构成n运算符:运算符:+加,加,-减,减,*乘,乘,/除;除;n运算域:运算域:变量变量,函数和常数;函数和常数;n括号:用于控制运算的次序。括号:用于控制运算的次序。第10页,此课件共64页哦2.2.运算规则运算规则n对相同网格点上的不同变量进行运算时,对相同网格点上的不同变量进行运算时,
9、只要有一个变量在某格点的值为缺测,则只要有一个变量在某格点的值为缺测,则该网格点的运算结果为缺测值;当被该网格点的运算结果为缺测值;当被0 0除除时的结果也设为缺测。时的结果也设为缺测。n对多个数据文件的数据做运算时,两种数对多个数据文件的数据做运算时,两种数据网格要一致,即运算对象的维数变化范据网格要一致,即运算对象的维数变化范围要一致。围要一致。n如某一格点的变动维数多于其他格点,则如某一格点的变动维数多于其他格点,则具有较少变动维数的格点其维数环境将被具有较少变动维数的格点其维数环境将被拓展,以便于运算操作。拓展,以便于运算操作。第11页,此课件共64页哦例如:例如:z-z(t-1)t(
10、lev=200)-t(lev=850)ave(z,t=1,t=5)z-ave(z,lon=0,lon=360,-b)变量变量Z的时间变化的时间变化200hPa与与850hPa等压面上等压面上的变量的变量t的变化的变化变量变量Z从第从第1时次到第时次到第5时次的平均时次的平均变量变量Z 的纬向偏差的纬向偏差第12页,此课件共64页哦6.3 6.3 函数函数1、调用方式、调用方式 采用直接引用方式,形式如:采用直接引用方式,形式如:函数名函数名(参数参数1,参数参数2,)第13页,此课件共64页哦2.2.常用函数常用函数(1)ave函数函数n格式:格式:ave(expr,dexpr1,dexpr2
11、,tincr)n功能:通用的求平均函数。功能:通用的求平均函数。n说明:说明:expr是由是由dexpr1和和dexpr2定义的维数定义的维数范围内求平均的量。范围内求平均的量。第14页,此课件共64页哦例如:ga-openmodel.ctlsetlev500dave(z,t=1,t=5)显示显示500hPa等压面上从第等压面上从第1时次到第时次到第5时次时次变量变量z的平均量的平均量第15页,此课件共64页哦set parea 1 8 1 6set grid offset grads offset xlint 20set xlopts 1 2 0.18set ylopts 1 2 0.18s
12、etlon60180setlat060setlev200sett1definea=ave(v,t=7,t=660,12)daprintc第16页,此课件共64页哦例如:例如:求纬向平均:求纬向平均:如果如果ave(expr,lon=0,lon=360)在端点求在端点求了两次平均;了两次平均;如若使终端点取半数权重,可用:如若使终端点取半数权重,可用:ave(expr,lon=0,lon=360,-b)。第17页,此课件共64页哦set xyrev onset lev 500set t 1set lat 0 90 setx1definea=ave(v,lon=0,lon=360,-b)d ase
13、t cmark 0set ccolor 2dconst(a,0)第18页,此课件共64页哦(2)const函数函数n格式:格式:const(expr,constant)n功能:设置部分网格点的值取为常数功能:设置部分网格点的值取为常数constantn说明:所有非缺测格点处的说明:所有非缺测格点处的expr值取为常数,值取为常数,flag为选项为选项,如果加上选项,如果加上选项-a,则所有网格点,则所有网格点值均设定为指定的常数,值均设定为指定的常数,如果加上选项如果加上选项-u,则,则只把只把缺测格点处缺测格点处的的expr值设定为常数。值设定为常数。n该函数对格点和台站资料均适用。该函数对
14、格点和台站资料均适用。第19页,此课件共64页哦(3)aave函数函数n格式:格式:aave(expr,xdim1,xdim2,ydim1,ydim2)n功能:求面积平均。功能:求面积平均。n说明:说明:expr:任何表达式任何表达式xdim1:X维数方向的起始维数表达式维数方向的起始维数表达式xdim2:X维数方向的终止维数表达式维数方向的终止维数表达式ydim1:Y维数方向的起始维数表达式维数方向的起始维数表达式ydim2:Y维数方向的终止维数表达式维数方向的终止维数表达式第20页,此课件共64页哦set lev 850set t 1 48set x 1set y 1define a=aa
15、ve(v,lon=100,lon=120,lat=30,lat=40)d a第21页,此课件共64页哦(4)mag函数函数n格式:格式:mag(aexpr,bexpr)n功能:计算功能:计算n说明:说明:aexpr表示表示a变量,变量,bexpr表示表示b变量,变量,该函数对格点和台站资料均适合。该函数对格点和台站资料均适合。第22页,此课件共64页哦setlon60200setlat-2080dmag(u.1,v.2)第23页,此课件共64页哦(5)hcurl函数函数n格式:格式:hcurl(uexpr,vexpr)n功能:计算功能:计算垂直涡度垂直涡度。n说明:说明:uexpr表示表示U风
16、速分量,风速分量,vexpr表示表示V风速分风速分量,风速单位用量,风速单位用m/s。边界上的涡度值设定。边界上的涡度值设定为缺测。为缺测。set lon 60 200set lat-20 80 d hcurl(u,v)第24页,此课件共64页哦第25页,此课件共64页哦(6)hdivg函数函数n格式:格式:hdivg(uexpr,vexpr)n功能:计算功能:计算水平散度水平散度。n说明:说明:uexpr表示表示U风速分量,风速分量,vexpr表示表示V风速分风速分量,风速单位用量,风速单位用m/s。setlon60200setlat-2080dhdivg(u,v)第26页,此课件共64页哦
17、第27页,此课件共64页哦(7)skip函数函数n格式:格式:skip(expr,skipx,skipy)n功能:设定样本的取样密度。功能:设定样本的取样密度。n说明:说明:skipx,skipy数值决定数值决定X和和Y方向的取方向的取样密度(取值样密度(取值1可以省略不给)可以省略不给)*该函数主要用于对该函数主要用于对矢量场的稀疏化矢量场的稀疏化显示。显示。第28页,此课件共64页哦du.1;v.2d skip(u.1,2,2);skip(v.2,2,2)第29页,此课件共64页哦(8)cdiff函数n格式:格式:cdiff(expr,dim)n功能:中央差分函数n说明:expr表示进行差
18、分运算的量,dim表示进行差分运算的维数方向,为X,Y,Z中的任一个字符。边界格点的运算值设为缺测。边界格点的运算值设为缺测。第30页,此课件共64页哦n例如:计算温度平流definedtx=cdiff(t,x)definedty=cdiff(t,y)definedx=cdiff(lon,x)*3.1416/180definedy=cdiff(lat,y)*3.1416/180d-1*(u*dtx)/(cos(lat*3.1416/180)*dx)+v*dty/dy)/6.37e6第31页,此课件共64页哦(9 9)smth9smth9函数函数格式:格式:smth9(expr)smth9(ex
19、pr)功能:功能:9 9点平滑函数点平滑函数说明:说明:exprexpr表示须平滑的表达式。表示须平滑的表达式。该函数主要用于改善图形的输出质量,该函数主要用于改善图形的输出质量,使其更加美观。使其更加美观。当格点资料为当格点资料为1 1维时,维时,9 9点平滑退化为点平滑退化为3 3点平滑。点平滑。第32页,此课件共64页哦d smth9(b1)第33页,此课件共64页哦(11)vint函数n格式:vint(psexpr,expr,top)n功能:质量加权垂直积分函数n说明:psexpr表示地面气压变量,expr表示被积变量,top表示积分上限(须为常数,hPa)本函数要求定义水平维数环境。
20、Vint(psexpr,expr,top)=f/g*sum(expr*Delta(level)f=100,g=9.8,sum是求和的意思是求和的意思第34页,此课件共64页哦n例如:计算整层水汽通量fuq;fvq。open e:bsuq.ctlopen e:bspres.ctlset gxout fwriteset fwrite e:bsmonzuq.grdi=1while(i=660)set t i set x 1 144set y 1 73set z 1define fuq=vint(v.2(z=1)/100,v,300)set t iset x 1 144set y 1 73set z
21、1d fuqi=i+1 endwhiledisable fwritereinit第35页,此课件共64页哦1998年夏季整层水汽通量矢量(箭头)、水汽通量值(阴影)和水汽路径(黑色曲线)第36页,此课件共64页哦站点画图站点画图(1)写成)写成站点格式站点格式grd数据;数据;(2)生成)生成map文件文件;(3)建立)建立格点文件格点文件(建立后可以继续使用);(建立后可以继续使用);(4)将站点资料通过)将站点资料通过插值函数插值函数插值到格点文件插值到格点文件上,然后再画图。上,然后再画图。第37页,此课件共64页哦文件的时间一定要与站点数据时间一致文件的时间一定要与站点数据时间一致。范
22、围:范围:lat:1555Nlon:70140E格距:格距:1*1ngrid.grd文件的每个点上均赋值为文件的每个点上均赋值为1格点文件grid.grd:第二章数据处理中第二章数据处理中70-73页写出的格点数据页写出的格点数据grid.grd,对应对应ctl为为grid.ctl第38页,此课件共64页哦与该格点文件相对应的数据描述文件grid.ctl如下:dsetd:datagrid.grdundef-999.0titleSampleGRIDDataxdef71linear701ydef41linear151zdef1linear5001tdef1linearjul19511movars1
23、g099griddataendvars有了这个格点文件及与其相对应的数据描述文件后,就可以通过有了这个格点文件及与其相对应的数据描述文件后,就可以通过GrADS插值函数将站点资料插值到该格点文件上然后使用了。插值函数将站点资料插值到该格点文件上然后使用了。第39页,此课件共64页哦(12)oacres函数函数n格式:格式:oacres(gexpr,sexpr)n功能:功能:cressman 插值函数插值函数n说明:说明:常用于常用于站点资料插值为格点资料。站点资料插值为格点资料。gexpr大于站点数据范围的格点数据变量名大于站点数据范围的格点数据变量名sexpr站点数据变量名站点数据变量名ra
24、dii影响半径,影响半径,默认值为默认值为:10,7,4,2,1n为避免插值出现虚假结果为避免插值出现虚假结果,参考网格的间参考网格的间隔与站点间距相近为好隔与站点间距相近为好将站点资料通过插值函数将站点资料通过插值函数插值插值到到某个格点文件某个格点文件上,上,然后再使用。然后再使用。第40页,此课件共64页哦与该格点文件相对应的数据描述文件grid.ctl如下:dsetd:datagrid.grdundef-999.0titleSampleGRIDDataxdef71linear701ydef41linear151zdef1linear5001tdef1linearjul19511mova
25、rs1g099griddataendvarsdefinea=oacres(g,rain.2)站点数据变量名站点数据变量名opend:datagrid.ctlopend:datarain7.ctl第41页,此课件共64页哦(13)maskout函数函数n格式:格式:maskout(expr,mask)n功能:功能:标记函数。当标记函数。当mask所在的网格点值取为负值时,所在的网格点值取为负值时,对应格点上的对应格点上的expr的值设为缺测值,不参与运算或的值设为缺测值,不参与运算或画图。画图。即:只画出即:只画出mark大于大于0的的expr。n说明:说明:expr需要处理的变量名需要处理的变
26、量名mask标记变量名标记变量名常用于输出常用于输出mask代表的陆地区或海洋区;代表的陆地区或海洋区;也常用于我国站点资料绘图。也常用于我国站点资料绘图。第42页,此课件共64页哦opend:datagrid.ctlopend:datar7.qht.ctlsetgradsoffenableprintd:datarain7.qht.gmfsetmpdsethirescnworldsetlon73135setlat1555definea=oacres(g(t=1),p.2,1.5)(“oacres”为插值函数)为插值函数)definea1=maskout(a,g-0.5)(“maskout”为标
27、记函数)为标记函数)defineaa=smth9(a1)(“smth9”9点平滑函数)点平滑函数)setgridoffsetgxoutshadedsetblack-0.29760.2976daasetgxoutcontoursetcint0.1daa一般将格点数据作为第一个打开的文件,一般将格点数据作为第一个打开的文件,在当前在当前缺省文件为格点数据缺省文件为格点数据时时,可以用可以用define命令将站点数据的客观分析结果保命令将站点数据的客观分析结果保存到变量中。存到变量中。printdisableprintreinit;第43页,此课件共64页哦第44页,此课件共64页哦open e:d
28、atagrid.ctlopen e:datat.ctlset lon 70 140set lat 15 55define aa=oacres(g.1,t1.2,50,40,30,20,10,5,2)define aaa=maskout(aa,g.1-0.5)set gxout shadedd aaaset gxout contourd aaaprintim e:datasample.png whitereinit;第45页,此课件共64页哦n地形高度资料:dxgd.ctl 变量名:hn700h Pa上,地形大于3000米以上的区域是没有风场的,所以可以利用maskout函数将该地区风场不绘制出
29、来reinitopenE:bsmonu.ctlopenE:bsmonv.ctlopene:dxgd.ctlenableprintE:uv.gmfsetlev700sett1setlon70140setlat1060dmaskout(v,3000-h.3(z=1,t=1);maskout(v.2,3000-h.3(z=1,t=1)printdisableprintreinit;dsete:dxgd.grdundef-9.99E+33xdef144linear02.5ydef73linear-902.5zdef1linear11tdef1linear01jan19511movars1h199hen
30、dvars第46页,此课件共64页哦第47页,此课件共64页哦sett1setlon70140setlat1060setgxoutshadedsetclevs3000setccols01dh.3(z=1)setlev700sett1setlon70140setlat1060setgxoutvectordv;v.2printdisableprintreinit;第48页,此课件共64页哦其他函数n数学函数数学函数第49页,此课件共64页哦 统计函数:统计函数:第50页,此课件共64页哦 网格处理函数n常数 const(expr,const,|-u|-a )n剔除 maskout(expr,mas
31、k_expr)n跳点skip(expr,skip_x,skip_y)n加权9点平滑点平滑 smth9(expr)1-D 3点平滑点平滑n中央差分 cdiff(expr,dim)第51页,此课件共64页哦物理量计算函数虚温,相对湿度求比湿相对湿度求比湿-虚温,相对湿度求温度相对湿度求温度-垂直涡度-中央差求水平散度-全风速-tvrh2q(tv_expr,rh_expr)tvrh2q(tv_expr,rh_expr)gtvrh2t(tv_expr,rh_expr)gtvrh2t(tv_expr,rh_expr)hcurl(u_expr,v_expr)hcurl(u_expr,v_expr)hdiv
32、g(expr1,expr2)hdivg(expr1,expr2)mag(u_expr,v_expr)mag(u_expr,v_expr)第52页,此课件共64页哦6.4 6.4 定义变量定义变量1、定义形式、定义形式definevarname=expr其中,其中,varname为新变量名,为新变量名,expr为表达为表达式。所定义的新变量可以用于随后的表达式。所定义的新变量可以用于随后的表达式中。式中。define命令命令只只适用于适用于格点数据格点数据第53页,此课件共64页哦2.存储形式存储形式 新定义的变量新定义的变量varname只存在于内存中,只存在于内存中,所以建议不要定义过大的维
33、数范围。所以建议不要定义过大的维数范围。第54页,此课件共64页哦3.3.维数环境的设置维数环境的设置n用户定义的变量可以有用户定义的变量可以有04个变化的维数。个变化的维数。假设定义一个假设定义一个4维的变量,在维的变量,在“define”命令执行后,记住改变维数环境,使之变命令执行后,记住改变维数环境,使之变化的维数小于化的维数小于4。n当当4个个维数同时变化时,维数同时变化时,“define”命令命令是是GrADS中所有命令中中所有命令中唯一唯一可行的命令。命令。第55页,此课件共64页哦opene:uv.ctlsetlon60150setlat040setlev850200sett14
34、8definetemp=mag(u,v)sett5setlev200dtempcreinit定义后使用时改变其维数环境定义后使用时改变其维数环境定义数组维数环境(定义数组维数环境(4维)维)此时显示的变量此时显示的变量temp,其时间和层次维是固定的,其时间和层次维是固定的定义数组定义数组第56页,此课件共64页哦n如果定义的变量具有某些固定的维数,随如果定义的变量具有某些固定的维数,随后使用这个变量,无论维数环境如何改变,后使用这个变量,无论维数环境如何改变,此变量在固定维数上保持不变。此变量在固定维数上保持不变。setlon-1800setlat090setlev500sett1defin
35、ezave=ave(z,t=1,t=5)X、Y维度不固定Z、t维度固定sett5setlev200dzave 显示的是显示的是500hPa,1-5时刻平均时刻平均的值的值第57页,此课件共64页哦n当定义的变量具有某些变化的维数环境,当定义的变量具有某些变化的维数环境,然后再将这些维数固定起来,这时所得然后再将这些维数固定起来,这时所得的变量将被固定在该维数上。的变量将被固定在该维数上。setlon0180setlat-9090setlev500sett5definetemp=zsetlat40dtempY维固定为40N,显示的只能是40N 的值setlon200setlat40dtemp超出
36、定义范围,超出定义范围,显示为缺测显示为缺测第58页,此课件共64页哦n用户也可以使用局地维数环境。用户也可以使用局地维数环境。n如果局地环境是在定义变量时变化的如果局地环境是在定义变量时变化的维数维数环境内环境内,则,则显示显示局地维数环境下的局地维数环境下的变量值变量值。n如果这个维数在定义变量时是如果这个维数在定义变量时是固定的固定的,则,则局地维数环境将局地维数环境将失效失效。第59页,此课件共64页哦setlon0180setlat-9090setlev500sett5definetemp=zdtemp(lat=50)lat=50的局地维数环境的设置有效,图形将显示变量的局地维数环境
37、的设置有效,图形将显示变量temp在在500N上的资料。上的资料。变量变量temp在定义时在定义时X、Y维数是变化的维数是变化的dtemp(t=4)变量变量temp在定义时在定义时T维数是固定的,因此维数是固定的,因此t=4的局地维的局地维数环境将失效。数环境将失效。第60页,此课件共64页哦openc:pcgradsmodelmodel.le.ctlsetgradsoffsetlon-1800setlat30setlev500sett1definezv=ave(z/9.8,lat=20,lat=40)setgxoutlinefillsetlfcols47dz/9.8;zv(定义(定义zv代表
38、代表20-40N纬带间的平均位势高度)纬带间的平均位势高度)在两条曲线间填色,当在两条曲线间填色,当z/9.8zv时用时用7号颜色填充号颜色填充第61页,此课件共64页哦第62页,此课件共64页哦站点绘图一般原则n1、把台站资料、把台站资料r.dat写成二进制文件写成二进制文件r.grdiflag=1ilev=1time=0.0doist=1,nmwrite(41)id(ist),alat(ist),alon(ist),time,ilev,iflag,rain(ist,it)enddoilev=0write(41)id(nm),alat(nm),alon(nm),time,ilev,iflag
39、n2、编写、编写r.grd数据的数据说明文件数据的数据说明文件r.ctldtypestationstnmapd:datarain.maptdef55linearJUl19511yr仅有时间维定义,无仅有时间维定义,无xyz维定义维定义第63页,此课件共64页哦n3、用、用r.ctl生成生成r.map文件文件ga-stnmap-iD:/rain/rain7.ctln4、生成插值用的背景格点文件、生成插值用的背景格点文件grid.grd(见第二章(见第二章PPT)n5、编写、编写grid.grd的的.ctl文件:文件:grid.ctlgrid.grd对应的对应的ctl文件的时间一定要与站点数据时间一致文件的时间一定要与站点数据时间一致n6、把、把r.grd插值到插值到grid.grd的网格点上的网格点上definea=oacres(g(t=1),r.2,1.5);definea1=maskout(a,g-0.5)n7、画图、画图第64页,此课件共64页哦
限制150内