爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 9178|回复: 16

[分享资料] GrADS使用中的实用技巧之一 修改描述文件格式达到简化操作的目的

[复制链接]

新浪微博达人勋

发表于 2014-9-26 20:06:20 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 river 于 2014-11-15 20:47 编辑

其实很多人都已经分享过类似的技巧,知道的略过,不知道可以仔细看看。对于解决一些问题还是很方便的。   
grads的描述文件包以下几项:
1) 被描述的数据文件(dset);
2 )该数据说明文件的标题(title);
3) 数据类型、格式和选项(dtype、option);
4) 时间、空间维数环境设置(xdef、ydef、zdef、tdef);
5) 变量定义(vars、endvars)。

实际使用中我们可以灵活地定义数据的时间或变量,甚至可以把维数设置的几项互换,只要在最后出图还原就可以了,这样可以方便我们的使用。

比如一个全球月平均位势高度场的格点资料,数据文件名为hgt.grd,水平维数为144*73(即2.5*2.5的经纬距) ,垂直方向为17层(即从1000hPa~10hPa),时间为1958年至1997年1月至12月共480个月,变量为hgt。这样一个数据在GrADS中的描述文件一般为:


dset  hgt.grd
title Mounthly mean  Geopotential height NCEP  Reanalysis
dtype grid
undef -9.99e+8
xdef 144 linear 0 2.5
ydef 73 linear 0 2.5
zdef 17 levels 1000 925 850 700 600 500 400 300 250 200 150 100 70 50 30 20 10
tdef 480 linear Jan1958 1mo
vars 1
hgt 17 99 Geopotential height(gpm)
endvars

实际应用中我们可能只需要研究其中某个月,或者只研究冬季(12~2月)的。如果需要计算或者需要提取某个月的资料话就需要用到循环,比如我们想提取所有年份12月的资料,就需要类似这样的步骤:
i=1
while(i<=40)
j=(i-1)*12+12
'set t 'j''
·······

这样步骤繁琐容易出错,而且影响速度,还不好找到错误的地方。其实我们可以把ctl改造一下,写成下面这样就方便处理多了:


dset  hgt.grd
title Mounthly mean  Geopotential height NCEP  Reanalysis
dtype grid
undef -9.99e+8
xdef 144 linear 0 2.5
ydef 73 linear 0 2.5
zdef 17 levels 1000 925 850 700 600 500 400 300 250 200 150 100 70 50 30 20 10
tdef 40 linear Jan1958 1yr
vars 12
hgt1 17 99 Geopotential height(gpm)
hgt2 17 99 Geopotential height(gpm)
hgt3 17 99 Geopotential height(gpm)
hgt4 17 99 Geopotential height(gpm)
hgt5 17 99 Geopotential height(gpm)
hgt6 17 99 Geopotential height(gpm)
hgt7 17 99 Geopotential height(gpm)
hgt8 17 99 Geopotential height(gpm)
hgt9 17 99 Geopotential height(gpm)
hgt10 17 99 Geopotential height(gpm)
hgt11 17 99 Geopotential height(gpm)
hgt12 17 99 Geopotential height(gpm)
endvars


   由于GrADS数据所要求的存放形式是水平格点———垂直维数———变量———时间(循环由内到外)。所以在这个新的描述文件中,我们把变量设为12个,相当于将原来的一个变量从1958 年1月至12 月,1959 年1 月至12 月·······存放的数据文件,在不改变存放次序的情况下变为先放1958 年1月、2月、······共12个变量之后再存放1959 年的12 个变量······ 其实就是换了一个角度去理解GrADS资料的排列。
   这样在原数据文件不改变的情况下,只将其用另一种形式描述,使得我们使用起来便简单多了。如分析北半球12月,只需直接对变量hgt12进行即可。这在使用过程中大大节省了工作量,免去在使用中为了达到同样的效果,把原数据文提取成为12个子数据文件,每个数据文件均需带一个独立的描述文件的麻烦。







来自群组: 龙王山皇家气象学院

评分

参与人数 1金钱 +20 贡献 +5 收起 理由
尽头的尽头 + 20 + 5

查看全部评分

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-9-26 21:22:14 | 显示全部楼层
江江就是厉害~~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-10-16 15:03:16 | 显示全部楼层

就你一个人来回复了这个帖子
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-10-16 17:34:24 | 显示全部楼层
不错不错
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2014-10-16 17:51:29 | 显示全部楼层
赞一个~~~
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2014-10-17 10:41:47 | 显示全部楼层

这个必须要支持
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-10-17 10:45:19 | 显示全部楼层
瓦屋!太赞了!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-10-17 11:13:25 | 显示全部楼层
楼主很聪明啊
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-10-17 11:16:02 | 显示全部楼层

说句实在话我不聪明,这别人早就发现了,只是别人没说出来而已
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-10-21 14:33:35 | 显示全部楼层
{:5_213:}{:5_213:}支持楼主
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表