[转载]GRADS画图

原文地址:GRADS画图 作者:fengying5457

作业要求:

作图内容是(选作两个,并简单文字分析):
            全球海平面气压(1月、7月)气候平均(1971-2000年平均)
            500hPa 位势高度场(1月、7月)气候平均
            850hPa 风矢量场(u;v) (1月、7月)气候平均
            1000hPa温度场    (1月、7月)气候平均
            200hPa 纬向风场u  (1月、7月)气候平均
            SST (1月、7月)气候平均
            OLR (1月、7月)气候平均
            CMAP降水(1月、7月)气候平均
NCEP再分析资料下载地址:ftp://ftp.cdc.noaa.gov/Datasets   或  http://www.esrl.noaa.gov/psd/data/gridded/data.ncep.reanalysis.derived.html

FTP下:海平面气压资料在目录ncep.reanalysis.derived/surface下,多层资料在ncep.reanalysis.derived/pressure下
       SST资料在noaa.oisst.v2/sst.ltm.1971-2000.nc   OLR资料在interp_OLR/olr.mon.mean.nc   降水资料在cmap/enh/下

总结的画图流程:

     作业需要画的图是从1971年至2000年这30年中任取两个量(可以是气压,可以是海平面温度,可以是olr等等,这些都是变量名,变量名对应的数据文件下载地址:ftp://ftp.cdc.noaa.gov/Datasets   或  http://www.esrl.noaa.gov/psd/data/gridded/data.ncep.reanalysis.derived.html
)的一月份和七月份的平均值的等值线图。所以最后应该画出四张图。

下载的数据如果没有注明是从1971年开始,那就可能是从更早年份开始,数据需要自己做处理,不能直接来画图。

准备工作:

(1)安装grads

(2)下载资料:部分资料(文件大小较小)的名称:olr.mon.mean.nc,sst.ltm.1971-2000.nc

说明:mon.mean.nc和mon.ltm.nc的区别:mon.mean里的数据是从某一年(未必是1971年)开始,1月至12月的月平均值逐年依次排列下来的数据;mon.ltm是从某一年开始到某一年结束这几十年的每年一月至12月分别平均后的12个平均值。也就是mon.ltm是由mon.mean处理得来的。

绘制部分:

(1)最好将下载的数据放在C:或f:这样比较直接的目录下,路径里最好不要有中文。

(2)打开grads,终端显示:“是否显示绘图框”的询问,输入y

(3)终端绘制

分别以sst.ltm.1971-2000.nc 和olr.mon.mean.nc为例:

(I)sst.ltm.1971-2000.nc

Sdfopen  f:sst.ltm.1971-2000.nc   (打开f盘的sst.ltm.1971-2000.nc)

q file  (查询资料信息)

可以看到,x360格,y180格,z一层,时间t有12个时次(即12个月),变量是sst

q dims  查看当前各维度变量值

set  t 1   取第一个时次,即表示画1月份的图

绘制填色图

set gxout shaded  输出形式为填色图

set cint 5   间隔值为5

d sst    绘图

cbarn   绘色标

绘制窗口的结果:

  清除图像

绘制等值线图(等值线没色标) 

set gxout contour   输出形式为等值线图

set cint 5   间隔值为5

d sst   绘图

绘制窗口的结果:

printim  sst01.png white    sst01为所保存的图片名,png为图片格式(可以改为gif/jpg之类),sst01之前不添加路径的话,默认存在grads文件中的data目录下,white 表示背景为白色。指定位置输出则写为:printim   e:sst07.png

c 清除图片

(II)olr.mon.mean.nc

reinit    (清空缓存,关闭之前打开的资料)

打开方式和查询资料信息类似(I)

注意到,olr资料始于1974.6.01.00,因此,无法画出1971-2000三十年平均的,调整一下,就画1974-2003三十年平均。

以等值线图为例(填色图画法类似)

set  time  00z01jul1974     时间次设为1974.7.01.00

d ave(olr,t+0,t+359,12)      ave表示求平均,olr 为变量, t+0表示起始点为当前时次,即00z01jul1974;t+359表示终止时次为当前时次后推359个时次,即00z01jul2003;12表示每12个时次取一次数据;需要注意,这里函数ave实际是返回了一个变量。因此,还可以写为

define olrave= ave(olr,t+0,t+359,12)

d olrave

绘制窗口的结果:

q dims           查询当前各维度信息

(手工计算一下当前的t+359,此情况时是361)

set  t 361

q dims           查询当前各维度信息,这样可以看看时间是否加对了

可以看出,刚好加到2004年6月,恰好1974-2003,30个七月的平均。

printim  f:olr07.png white

quite  退出grads

(4).gs文件批量绘制

可以发现,用终端得不断地输入,作为练习或尝试比较好,但是已经能完成绘制后,开始大量处理绘图时却很不方便。于是,可以把刚才在终端的输入整理好,写在文本文件里,然后把.txt,改呈.gs,直接用grads运行.gs文件。

例如sst七月平均的.gs文件可写为sst.gs,内容如下(汉字部分为注释,写.gs时不要写;这个.gs的示例是图片格式,还是请手动输入编写一下.gs文件)

终端输入部分:

绘制窗口的输出:

更多的入门和进阶练习:

参考【GrADS绘图软件使用手册】(网上可以下载到),将model.ctl中的链接model.dat的路径设订对,就可以在终端下运行open model.ctl即可,里面有较多的模版和绘图练习。

其他

此流程主要适合.nc格式的数据,第一次作业的站点数据以及模式计算生成的格点的画法与此处的.nc格式数据不同,需要写.ctl文件,具体请查看grads的指导手册。

 

老师的建议:

1)我一般是双击grads后,直接就sdfopen *.nc   没有什么opengrads和输入yes(不知道你们用的什么版本),查看数据用“q file"
2)假设t=277是1971年1月, 那么set t 277等价于set time 00z01jan1971;  d ave(pres,t=277,t=277+359,12)等价于d ave(pres,t+0,t+359,12)
3)图像输出我是用"enable print **.gmf" 回车 “print" 回车 "disable print"  即是用gmf格式,用GV方式打开(GRADS自带)
4)重新打开一个文件 一种是"reinit"表示重新初始化就是不保存前面第一个nc文件 还有种“c" ,那么后面一个变量名要变为'prec.2'
5)如果画图更美观,如“set grads off" "set xlopts  ..."  "set ylopts ..."  "set clopts ..." 还可以尝试设成填色图“set gxout shaded"

  • 6
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值