爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 31496|回复: 32

[脚本编辑] Grads同时打开不同时间维度数据和不同分辨率数据画图的一种处理方法

[复制链接]

新浪微博达人勋

发表于 2015-4-18 14:41:14 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 ouc129 于 2015-4-18 14:41 编辑

    Grads同时打开不同时间维度数据和不同分辨率数据画图的一种处理方法
    由于之前一直都是用的同一套资料,没使用过不同资料组合分析画图的情况,最近有人遇到问题,所以想分享一下自己的一点点拙见。如果各位网友有更好的办法亦或我的方法有漏洞或者可以改进的地方,请坚决指出,谢谢。
    1)先解决多个数据,时间序列长度不一的情况:
    Grads在打开一个NC或者DAT文件时,不需要考虑数据时间序列长度的问题。但是如果同时打开多个数据文件,想要将不同的变量叠加绘出在同一张图上边,这个时候就要尤其注意了。这里以同时打开两个.NC格式数据为例(两个以上以及dat数据同理),如果两个NC数据同属一套资料集,比如都是ncep2.5经度的资料,一个温度,一个位势高度,那么脚本自然很简单,只需要打开后,绘图时以air.1 和hgt.2区分就可,这里注意,两个NC数据一般要求具有相同的时间起始时刻,否则在普通的命令脚本里可能会出现错误。当然,还有一种解决办法:“set dfile ##”,即打开第一个数据时,set dfile 1 绘制完毕第一个数据后,再打开第二个数据,set dfile 2,再绘制第二个数据,这样两个数据的属性就不会在grads里冲突,因此就可以打开不同时间起止的数据了。
    给个示例,我们使用ncep2.5的数据,一个为位势高度数据,高度层包含400hPa,500hPa,600hPa三层,时间跨度为2015.1.5-1.20。变量名为hgt,文件名为hgt.2015.1.5_1.20.nc;  另外一个数据为近地表温度(sig995),高度层仅为一层,即sig995(近地表),时间跨度为2015.1.1-1.31。变量名为air,文件名为air.995.2015.1.1_1.31.nc

    如果我们采用 以下的方式打开,
   'sdfopen  E:\test\air.995.2015.1.1_1.31.nc'
   'sdfopen  E:\test\hgt.2015.1.5_1.20.nc'
   然后用   'd air.1-273.13'和   'd hgt.2'的方式去绘图,那么只能绘制出温度的二维分布场,位势高度的等值线绘制不出来。并且grads会报错,大体意思就是数据的坐标纬度信息不一致,如下图:
1.jpg 2.jpg

   那么,这个时候我们就要采用'set defile **'这个命令来巧妙的将一个gs脚本中的两个数据屏蔽开来,以免两个数据的描述信息起冲突。
  即:
   'sdfopen  E:\test\air.995.2015.1.1_1.31.nc'
   'set dfile 1'
    ... ...
    此处省略若干行
   'sdfopen  E:\test\hgt.2015.1.5_1.20.nc'
   'set dfile 2'
    ... ...
    此处省略若干行
   这样就可以分别在两个相互独立的板块中定义不同的时间和高度层。
  当然前后可以嵌套循环,以达到将多个时间时刻的图绘制在同一个gmf文件或者输出多个png格式的图。
绘制的图如下:
3.jpg
温度和高度场就可以同时出现在一张图上,并且注意到温度和位势高度数据的起始和结束时刻以及高度层数也是不一致的。
我们在脚本中分别对时刻和高度场进行了定义,由于set defile 命令的存在,使得两个数据间的信息被成功的隔离。

当然,对于两个以上的数据,原理相同,大家有兴趣或者有需要的就可以试一下。dat文件由于还有ctl描述文件,如果打开不同时间维度绘图,其原理应该和上述方法相同,我没有试验,有需要的童鞋也可以试一下。

附件附了对应的gs文件和两个nc数据,以及绘制出的gmf图文件,欢迎补充指正,谢谢。
hgt_air.gs (1.58 KB, 下载次数: 137)

评分

参与人数 1金钱 +10 贡献 +2 收起 理由
lqouc + 10 + 2 赞一个!

查看全部评分

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

新浪微博达人勋

发表于 2015-4-18 15:12:04 | 显示全部楼层
学习了!!!
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2015-4-18 16:58:28 | 显示全部楼层
感谢分享经验,很实用
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-4-19 11:26:37 | 显示全部楼层
yeah!!哈哈哈,很好啊。。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2015-4-20 11:41:37 | 显示全部楼层
自己顶自己 嘿嘿
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-4-21 22:58:43 | 显示全部楼层
非常好谢了。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-4-22 09:59:13 | 显示全部楼层
求助大神,使用sdfopen命令没有打开nc文件,这种是怎么修改呢,是不是在这个Grads界面里面直接输入命令吗?
1231.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-4-25 22:28:49 | 显示全部楼层
虎牙犀牛 发表于 2015-4-22 09:59
求助大神,使用sdfopen命令没有打开nc文件,这种是怎么修改呢,是不是在这个Grads界面里面直接输入命令吗?

不是所有的nc资料都能用grads打开
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-4-26 09:57:07 | 显示全部楼层
夏天很美 发表于 2015-4-25 22:28
不是所有的nc资料都能用grads打开

多谢,不知道为什么使用了sdfopen现在又可以打开了,
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-9-18 20:00:08 | 显示全部楼层
如果要用两个nc文件计算一个变量,再打开一个ctl文件叠加画图呢?
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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