《GrADS绘图实习.doc》由会员分享,可在线阅读,更多相关《GrADS绘图实习.doc(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、.实习一 数据文件的转换及数据描述文件的建立一、实习资料:现在“data”文件夹下有ASCII码数据资料文件:月平均风场 (u200.dat、u850.dat、v200.dat、v850.dat)、月平均高度场 (hgt500.dat),2002.1-2005.12共48个月,资料的水平网格范围是MN个网格点(M=37,N=17),分辨率为2.52.5,自西向东经度60-150E,由南至北纬度0-40N。二、 实习要求:编写出将ASCII码数据资料文件:月平均风场和月平均高度场分别转换成二进制无格式直接存取(GrADS数据格式)文件(uv.grd和hgt.grd文件)的Fortran程序,给出
2、相应的数据描述文件(uv.ctl和hgt.ctl文件),并利用GrADS基本操作命令显示该地区850hPa和200hpa uv风场,最后保存图形。三、实习目的:通过编写该程序,进一步熟悉数据GrADS的数据格式,熟练编写将ASCII码数据转换为二进制格式的Fortran程序以及建立相应的CTL文件。四、实习步骤:4.1 利用“写字板”程序打开*.dat数据文件,熟悉该数据资料;4.2 按要求编写Fortran程序,将所给的ASCII码数据资料文件转换成二进制无格式直接存取文件,结果保存为mhy.grd;4.3 通过“写字板”或“记事本”程序编写相应的数据描述文件,保存为mhy.ctl;4.4
3、画出2002年1月850hpa风场图,与图1比较验证数据正确性;4.5 利用GrADS基本操作命令(open,display,print等)显示2002年7月850hpa和200hpa uv风场图形;4.5 完成实习报告1)说明所用资料 资料名称:月平均风场 (u200.dat、u850.dat、v200.dat、v850.dat);月平均高度场 (hgt500.dat)范围:60150E,040N.层次:风场,850 hPa、200hPa;高度场,500hPa;时段:2002.12005.12共48个月。变量名:u v hgt分辨率:2.5*2.5,格点数:37*17资料读取文件:data.
4、f902)给出所编写的Fortran程序: parameter(nx=37,ny=17,nz=1,nt=48)dimension u1(nx,ny,nz,nt),v1(nx,ny,nz,nt),u2(nx,ny,nz,nt),v2(nx,ny,nz,nt),hgt(nx,ny,nz,nt)open(1,file=u200.dat)open(2,file=v200.dat)open(3,file=u850.dat)open(4,file=v850.dat)open(11,file=hgt500.dat)open(12,file=uv.grd,form=binary) open(13,file=h
5、gt500.grd,form=binary)do 100 it=1,nt do 50 iz=1,nz read(1,*) (u1(i,j,iz,it),i=1,nx),j=1,ny) read(3,*) (u2(i,j,iz,it),i=1,nx),j=1,ny) 50 continue do 51 iz=1,nz read(2,*) (v1(i,j,iz,it),i=1,nx),j=1,ny) read(4,*) (v2(i,j,iz,it),i=1,nx),j=1,ny) 51 continue do 52 iz=1,nz read(11,*) (hgt(i,j,iz,it),i=1,nx
6、),j=1,ny) 52 continue100 continuedo 200 it=1,nt do 30 iz=1,nz write(12) (u2(i,j,iz,it),i=1,nx),j=1,ny) write(12) (u1(i,j,iz,it),i=1,nx),j=1,ny) 30 Continue do 31 iz=1,nz write(12) (v2(i,j,iz,it),i=1,nx),j=1,ny) write(12) (v1(i,j,iz,it),i=1,nx),j=1,ny) 31 continue do 55 iz=1,nz write(13) (hgt(i,j,iz,
7、it),i=1,nx),j=1,ny) 55 continue200 continueCLOSE(1)CLOSE(2)CLOSE(3)CLOSE(4)CLOSE(11)CLOSE(12)CLOSE (13)end3)给出所编写的数据描述文件uv.ctl:dset C:GrADS19uv.grdundef -9.99E+13title two levels air dataxdef 37 linear 60.0 2.5ydef 17 linear 0.0 2.5zdef 2 levels 850 200tdef 48 linear JAN2002 1movars 2u 2 99 u wind(m
8、/s)v 2 99 v wind(m/s)endvarshgt.ctldset C:GrADS19hgt.grdundef -9.99E+13title the attitude of 500hpaxdef 37 linear 60.0 2.5ydef 17 linear 0.0 2.5zdef 1 levels 500tdef 48 linear JAN2002 1movars 1h 0 99 attitudeendvars.文件*.GSreinitopen c:datauv.ctl *ctl路径set grid offset grads offset lat 0 40set lon 60
9、150 set time jul2002set lev 850set gxout vectord u;vdraw title Air data in 200201 850printim c:imagesuv8.png whitecset lev 200set gxout vectord u;vdraw title Air data in 200201 200printim c:imagesuv2.png white4)给出所绘制的图形2002年1月850hpa高度的风场图2002年7月850hpa 高度的风场图2002年7月200hpa高度的风场图:实习二 基本命令的上机使用(2小时)1实习资
10、料:现在“data”文件夹下有GrADS数据格式的二进制资料文件model.le.dat(一组模式输出的全球5天数值预报结果,包括了多个要素、多层,按经纬度网格存放的数据),以及对应的数据描述文件model.le.ctl。2实习要求:利用所提供的数据文件,使用基本命令编辑gs文件绘制图形一维单线图,和两维平面图。3. 实习目的:熟悉GrADS的工作环境及使用流程,掌握基本操作命令,练习编写和使用gs文件。4. 实习步骤:4.1熟悉GrADS绘图软件操作界面命令窗口和图形显示窗口。利用所提供的数据文件model.le.dat及相应的数据描述文件model.le.ctl,在命令窗口输入基本绘图指令
11、,在图形显示窗口观察相应图形例如:在文本窗口输入下列命令open model.le.ctlset lat 40set lon -180 0set lev 500set t 1d z则在图形显示窗口出现如下图形4.2 练习编写和使用gs文件。利用文本编辑器(如记事本,或者写字板)将所需要的基本命令编辑成gs文件,然后使用run命令运行该文件;Model.le.ctl:open c:datamodel.le.ctlset lat 40set lon -180 0set lev 500set t 1d zprintim c:imagesim40500.png white;4.3 根据所学过的图形要素
12、设置命令“set”, 编辑gs文件绘制北半球200hPa纬向风一维单线图(经度固定于120E)和500hPa高度场平面图,并用“enable print”命令将所画图形分别存放。Gs:reinitopen c:datamodel.le.ctlenable print c:imagesmodel2.gmfset grid offset grads offset lon 120set lat 0 90set lev 200set t 1set xyrev ond uprintcresetset grid offset clip 0 11 2 6set lat 0 90set lev 500set
13、t 1set grads offd zprintdisable print;实习三 set命令的使用练习(2小时)1实习资料:现在“data”文件夹下有二进制资料文件uv.grd、hgt.grd以及对应的数据描述文件uv.ctl、hgt.ctl。2实习要求:1)利用所提供的数据文件,绘制出第7时刻500hPa高度场图,要求设置等值线间隔单位为40位势米,颜色,标记方式,并且给出相应标题(请包含姓名拼音与学号),最终将图形保存。所有命令编写于.gs文件中。2)利用所提供的数据文件,绘制出第7时刻850hPa风场图,要求以三种方式显示风场,并将三幅图上下排列于同一图形窗口,并最终将图形保存。所有命
14、令编写于.gs文件中。3. 实习目的:熟练使用set命令的各类参数设置,掌握.gs文件的编写格式和运行,学会保存图形文件。4. 实习步骤:4.1 在写字板或记事本程序中按要求编写*.gs文件,注意文件编写格式;4.2 启动GrADS绘图软件,运行*.gs文件;4.3完成实习报告:1)说明所用资料;资料名称:月平均风场 (uv.grd);月平均高度场 (hgt.grdt)范围:60150E,040N.层次:风场,850 hPa、200hPa;高度场,500hPa;时段:2002.12005.12共48个月。变量名:u v h分辨率:2.5*2.5,格点数:37*172)给出所编写的*.gs文件;
15、第7时刻500hPa高度场图的gs文件hgt7.gsreinitopen c:datahgt.ctlset grid offset grads offset xlopts 3 5 0.18set ylopts 3 5 0.18set parea 1 10.2 0.8 7.5set t 7set lev 500hgt=h/10set cint 4d hgtset annot 5 8draw title dingxiaoli 20081331001printim c:imageshgt7.png white;第7时刻850hPa风场图的gs文件gxout.gs:3)给出所绘图形:reinitope
16、n c:datauv.ctlset t 7set lev 850set grid offset vpage 0 8.5 0 3.6set parea 0.3 8.5 0.3 3.5set gxout vectorset grads offd u;vset vpage 0 8.5 3.6 7.2set grads offset gxout barbd u;vset vpage 0 8.5 7.2 11set grads offset gxout STREAMd u;vprintim c:imagesgxout3uv850.png white;第7时刻500hPa高度场图第7时刻850hPa风场图
17、(三种输出形式): 从上到下依次为:grid、barb、vector实习四 各类参数设置综合练习 (2小时)1实习资料:现在“data”文件夹下有二进制资料文件uv.grd、dxgd.grd以及对应的数据描述文件uv.ctl、dxgd.ctl。2实习要求:利用所提供的数据文件,绘制出2003年7月60-150E、0-40N区域内850hPa流线图,且地形高度场超过3000米以上用黑色阴影显示,并且给出相应标题(请包含姓名拼音与学号),最终将图形保存。所有命令编写于.gs文件中。3. 实习目的:掌握阴影图形与等值线图形的叠加画图方法,同时练习基础绘图指令draw命令的使用。4. 实习步骤:4.1
18、 在写字板或记事本程序中按要求编写*.gs文件,注意文件编写格式4.2 启动GrADS绘图软件,运行*.gs文件4.3完成实习报告1)说明所用资料 资料名称:1、月平均风场 (uv.grd);范围:60150E,040N.层次:风场,850 hPa、200hPa;时段:2002.12005.12共48个月。变量名:u v hgt分辨率:2.5*2.5,格点数:37*172、高度场(dxgd.grd);范围: 经向0360;纬向:-90S90N层次:一个层次 地面层时段:2002.1共1个月变量名:h分辨率:2.5*2.52)给出所编写的(uv073000.gs)文件reinitopen c:d
19、atadxgd.ctlopen c:datauv.ctlset grid offset grads offset map 3 1 5set xlopts 3 5 0.18set ylopts 3 5 0.18set parea 0.7 10.4 0.6 7.8set t 1set lon 60 150set lat 0 40 set gxout shadedset rbcols 1 1 1 1 1 1 1set cmin 3000d hset gxout streamset time jul2003set grads offset lev 850d u.2;v.2set annot 5 8dr
20、aw title DingXiaoli 20081331001printim c:imagesuv200307850.png white;3)给出所绘图形实习五 各类参数设置综合练习 (2小时)1实习资料:现在“data”文件夹下有二进制资料文件uv.grd以及对应的数据描述文件uv.ctl。2实习要求:利用所提供的数据文件,画出2002年1-12月120 E、 0-40N 200hPa纬向风的纬度-时间剖面图。图型要求:(1)纬向风为西风时填色,东风绘制等值线,给出色标,0值线加粗;(2)X轴标注为“time”,Y轴标注为“lat”,标题标注为“u 100-120E”。(3)最终将图形保存为
21、gmf格式。所有命令编写于.gs文件中。3. 实习目的:掌握特殊图形处理方法,掌握阴影图形画图方法,同时学会处理特别等值线与特殊字符的方法。4. 实习步骤:4.1 在写字板或记事本程序中按要求编写*.gs文件,注意文件编写格式4.2 启动GrADS绘图软件,运行*.gs文件4.3完成实习报告1)说明所用资料月平均风场 (uv.grd);范围:60150E,040N.层次:风场,850 hPa、200hPa;时段:2002.12005.12共48个月。变量名:u v hgt分辨率:2.5*2.5,格点数:37*172)给出所编写的*.gs文件reinitopen c:datauv.ctlset
22、grid offset grads offset xlopts 3 5 0.16set ylopts 3 5 0.16set parea 1 10.4 1.2 7.9set lon 120set lat 0 40set lev 200set t 1 12set annot 5 8enable print c:imagesuv200.gmfset xyrev onset gxout shadedset cmin 0d ucbarn 1 0 5.5 0.3set grads offset gxout contourset cmax 0set grads offd uset clevs 0set c
23、color 2set cthick 10set grads offd udraw xlab timedraw ylab latdraw title u 100-120Eprintdisable print;3)给出所绘图形实习六 练习描述语言的使用(2小时)1实习资料:现在“data”文件夹下有全球海表温度资料sst.mnmean.nc。2实习要求:1)根据所提供的数据资料,利用fwrite命令将该范围内(纬度:-20-60N,经度:90E-200E,时间:1971年1月至2000年12月)海温场资料写入名为sst.grd的二进制数据文件中。注意确定写出数据的格点数。2)根据所得数据资料,利用
24、Fortran程序将sst.grd文件转换为十进制数据文件sst.txt。3)根据所得sst.grd数据文件,编写相应的数据描述文件sst.ctl,并绘制图形。请将所绘图形与使用原来sst.mnmean.nc资料在相同维数环境下所画图形进行比较,看是否一致。3. 实习目的:掌握GrADS软件数据提取方法,学会资料处理。4. 实习步骤:4.1 在写字板或记事本程序中按要求1)编写*.gs文件,进行数据资料的提取;reinitsdfopen c:datasst.mnmean.ncset fwrite c:datasst.grdset gxout fwriteset time jan1971 dec
25、2000set lat -20 60set lon 90 200d sstdisable fwrite;4.2 根据实习要求2),利用Fortran程序进行二进制与十进制数据文件的转换,并查看sst.txt的数据信息;Fortran程序:parameter(nx=56,ny=41,nz=1,nt=360)dimension sst(nx,ny,nz,nt)open(15,file=sst.grd,form=binary)open(16,file=sst.txt)do it=1,nt do iz=1,nz read(15) (sst(i,j,iz,it),i=1,nx),j=1,ny) endd
26、oenddodo it=1,nt do iz=1,nz write(16,*) (sst(i,j,iz,it),i=1,nx),j=1,ny)enddoenddoclose(15)close(16)end4.3 在写字板或记事本程序中编写数据描述文件sst.ctl,并保存;Ctl:dset C:datasst.grdundef -9.99E+33title sea surface tempturexdef 56 linear 90 2ydef 41 linear -20 2tdef 360 linear jan1971 1mozdef 1 levels 0vars 1sst 0 99 surf
27、ace sea temptureendvars4.4 利用sst.grd和sst.ctl文件画图,完成实习内容。实习七 变量与函数的设置(2小时)1实习资料:现在“data”文件夹下有全球海表温度资料sst.mnmean.nc。2实习要求:1)根据所提供的数据资料,计算1-12月多年平均(1971年-2000年)海温场,并绘出1月海温多年平均图。2)进一步计算1971年至2000年1月海温距平场,绘制1998年1月和1999年1月海温距平场,海温正距平区填色,画色标,并分别写标题Jan1998和Jan1999。要求设置虚页,将两幅图并排放在一起。,最终将图形保存。所有命令编写于.gs文件中。3
28、. 实习目的:掌握函数的使用,进一步练习阴影图形与等值线图形的叠加画图方法。4. 实习步骤:4.1 在写字板或记事本程序中按要求编写*.gs文件;4.2启动GrADS绘图软件,运行*.gs文件4.3完成实习报告1)说明所用资料:sst.mnmean.nc文件:名称:全球海表月平均温度资料时间:1854年1月2009年9月,各月数据共1869个时间序列经度:0 36 纬度:88S 88N分辨率:2*2变量:timebnds 1层 sst 1层(海表温度)2)给出所编写的*.gs文件reinitsdfopen c:datasst.mnmean.ncset grid offset grads off
29、set map 1 1 5set annot 5 8set xlopts 3 5 0.16set ylopts 3 5 0.16set xlint 20set ylint 20set parea 0.6 10.6 0.6 8.0set t 1 12asst=ave(sst,t+1404,t=1764,12)modify asst seasonalset t 1d asstdraw title January aveage sstprintim c:imagesavesstjanuary.png whitecset map 1 1 5set xlopts 3 5 0.14set ylopts 3
30、 5 0.14set xlint 40set ylint 20set grid offset grads offset parea 0.6 5.5 0.6 8.0set t 1405 1764nasst=sst-asstset time JAN1998set gxout shadedset cmin 0d nasstcbarn 0.5 0 3.0 2.1set grads offset gxout contourd nasstdraw title JAN1998set grads offset parea 6.1 10.8 0.6 8.0set time jan1999set gxout sh
31、adedset cmin 0d nasstcbarn 0.5 0 8.4 2.1set grads offset gxout contourd nasstdraw title JAN1999printim c:imagesansstJAN1998with1999.png white;3)给出所绘图形实习八 描述语言的使用(2小时)1实习资料:现在“data”文件夹下有全球海表温度资料sst.mnmean.nc。2实习要求:根据所提供的数据资料,计算夏季海温距平场,并循环绘出1971年至2000年夏季海温距平图。要求海温正距平区填色,画色标,并将年份作为标题。最终将图形保存。所有命令编写于.gs
32、文件中。3. 实习目的:掌握循环的使用,进一步练习函数的使用。4. 实习步骤:4.1 在写字板或记事本程序中按要求编写*.gs文件;4.2启动GrADS绘图软件,运行*.gs文件4.3完成实习报告1)说明所用资料sst.mnmean.nc文件:名称:全球海表月平均温度资料时间:1854年1月2009年9月,各月数据共1869个时间序列经度:0 36 纬度:88S 88N分辨率:2*2变量:timebnds 1层 sst 1层(海表温度)2)给出所编写的*.gs文件reinitsdfopen c:datasst.mnmean.ncenable print c:imagesasrsst30.gmf
33、*分别求6、7、8月份的30年平均值放入a1中set map 1 1 5set annot 5 8set xlopts 3 5 0.16set ylopts 3 5 0.16set parea 0.6 10.6 0.6 8.0set t 1 3a1=ave(sst,t+1409,t=1772,12)*求30年季的平均值aaset t 1aa=ave(a1,t+0,t=3)*循环30次每次求1年夏季的距平值,同时作图。asrt只保留一年的夏季全球海温距平值i=1409while(i=1757)j=i+3set gxout shadedset xlint 20set ylint 15set grid offset grads off*求19712000年每年夏季的还问平均值asrt,一次求1个,下次循环即被替换set t 1asrt=ave(sst,t+i,t=j,1)*求对应年的夏季海温距平值,求出即画图annst=asrt-aa(t=1)set cmin 0d annstcbarn 1 0* k中为年份19712000,用于标题循环注释年份k=(i-1409)/12+1971draw title %k%printci=i+12endwhiledisable print;3)给出所绘图形(1997年夏季)
限制150内