- 积分
- 18776
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2011-6-21
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
以前介绍过maskout方法以及maskout文件的制作,但当时只是提到了对单个时次的数据文件进行插值和maskout。实际上气象数据通常都是多时次的,这就涉及到对多时次数据进行maskout的问题。之前的帖子里强调过,maskout文件的时间描述必须跟数据文件一致,但是,maskout是一个单时次文件,怎么跟多时次的数据文件对应呢?笨笨在这里给大家提供一个解决方案,仅供参考。
假设你的maskout文件是maskout.dat,对应的描述文件是maskout.ctl;数据文件是data.dat,数据文件的描述文件是data.ctl,时间描述是:tdef 5 linear 01jan1961 1mo。
下面介绍解决步骤:
1、对maskout.dat建立多个描述文件,描述文件个数与数据文件的时间维度一致,如这里是5个,笨笨分别命名为1.ctl、2.ctl、3.ctl、4.ctl、5.ctl,然后将其时间设置分别设置成数据文件的第一个时次、第二个时次。。。。。第五个时次,具体如下:
描述文件 时间设置
1.ctl tdef 1 linear 01jan1961 1mo
2.ctl tdef 1 linear 01FEB1961 1mo
3.ctl tdef 1 linear 01MAR1961 1mo
4.ctl tdef 1 linear 01APR1961 1mo
5.ctl tdef 1 linear 01MAY1961 1mo
2、绘图。由于maskout是单个时次的而数据文件是多个时次的,因此不能同时打开两个文件后再设定绘图时次,而是要分别设定时次。问题来了,grads里总是以后一次设定的时次为准的,这就是笨笨为什么要介绍这个解决方案的原因了。其实解决方法也不负责,就是先打开一个文件,设定时次后将其变量存在内存中,然后打开另一个文件,设定时次,文字是描述不清楚的,绘图语句如下(以绘制第3个时次的图为准,示例的数据是站点资料):
'open d:/3.ctl'
'define a=mask' *mask是maskout文件的变量名
'open d:/data.ctl'
'set t 3'
'define b=oacres(a,var.2,50,20) *var是data文件的变量名
'd maskout(b,a)'
3、完了。
|
评分
-
查看全部评分
|