爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
楼主: 提米苏拉

[求助] 怎样处理逐日ncep温度数据来计算冷空气频次

[复制链接]

新浪微博达人勋

发表于 2013-4-22 19:11:43 | 显示全部楼层

批量处理就是在一个ctl里描述所有的资料,时间的设置就是从第一个资料的起始时间开始到最后一个资料的最后一个时次,所以不需要判断什么闰年
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-4-22 19:14:33 | 显示全部楼层
river 发表于 2013-4-22 19:11
批量处理就是在一个ctl里描述所有的资料,时间的设置就是从第一个资料的起始时间开始到最后一个资料的最后 ...

那我批量描述后,就可以直接打开该ctl,再直接写成grd的文件啦?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-4-22 19:46:28 | 显示全部楼层
river 发表于 2013-4-22 19:11
批量处理就是在一个ctl里描述所有的资料,时间的设置就是从第一个资料的起始时间开始到最后一个资料的最后 ...

dset  e:\coldair\daily\%y4.nc
undef 1e+15

options template
title nc data
dtype netcdf
xdef 53 linear 30 2.5
ydef 29 linear 10 2.5
zdef 1 linear  1 1
tdef 23742 linear 01jan1948 1dy
vars 1
air 1 99 temperature            

                  
endvars

'reinit'
'open e:\coldair\air.ctl'
'set gxout fwrite'
'set fwrite e:\coldair\1948-

2012.grd'
'set lat 10 80'
'set lon 30 160'
'set z 1'
'set t 1 23742'
'd air'
'disable fwrite'
'reinit'
;
为什么提示错误呢
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-4-22 20:16:59 | 显示全部楼层
提米苏拉 发表于 2013-4-22 19:46
dset  e:\coldair\daily\%y4.nc
undef 1e+15

你写完ctl可不可以先在grads里面打开,看看能不能出图,出来的图是不是正确的,然后再进行下一步啊。而且你的air的资料是有一层吗?
air 1 99 temperature 注意红色的部分,他代表的意思是该变量有多少个层次,你写1,难道air的nc资料只有一层吗?一般的都是17层。还有这个资料的缺测值你是怎么判断出来是1e+15,有验证过吗?还有你的这个nc资料只是从东经30度开始到162.5度?纬度只是从北纬10度到北纬41.5吗?一般不都是全球的吗?

上面这些问题不经过确认,那你的ctl很可能完全就是错误的,更别说下一步的东西了。难道没有一个完整的思路吗,一步一步都得经过验证,才能进行下一步。不然的话就是一步错,步步错
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-4-22 20:29:13 | 显示全部楼层
river 发表于 2013-4-22 20:16
你写完ctl可不可以先在grads里面打开,看看能不能出图,出来的图是不是正确的,然后再进行下一步啊。而且 ...

好吧,一直觉得自己逻辑感不强,被程序弄的我头昏脑胀的。我再改改吧。还有上次的grd经人指点终于整出来了,原因在于应该打开一个文件关一个文件,否则会一直读取第一年的数据。在最后一个endwhile前面加一个‘close 1’就好了。还要特别感谢river,不厌其烦的帮助我。我以后会尽量改掉这些毛病,否则我未来的两年会很痛苦。。。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-4-22 20:32:13 | 显示全部楼层
river 发表于 2013-4-22 20:16
你写完ctl可不可以先在grads里面打开,看看能不能出图,出来的图是不是正确的,然后再进行下一步啊。而且 ...

还有我这个是sig995层温度资料,只有一层,nc资料的缺测值我是看别的帖子得到的。我也不知道怎么得到nc资料的缺测值。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-4-22 20:41:39 | 显示全部楼层
river 发表于 2013-4-22 20:16
你写完ctl可不可以先在grads里面打开,看看能不能出图,出来的图是不是正确的,然后再进行下一步啊。而且 ...

我知道了,应该 q ctlinfo 来得知nc资料的一些具体信息
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-4-22 21:58:55 | 显示全部楼层
提米苏拉 发表于 2013-4-22 20:41
我知道了,应该 q ctlinfo 来得知nc资料的一些具体信息

只有一层啊,那挺好的。自己试试吧,我今天没有午休,暴躁的很,我要疯啦快。赶紧睡觉去了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-4-23 19:19:32 | 显示全部楼层
本帖最后由 river 于 2013-5-16 09:08 编辑
提米苏拉 发表于 2013-4-22 20:41
我知道了,应该 q ctlinfo 来得知nc资料的一些具体信息

好像搞定了哦,写成下面那样就能提取成一个grd了。注意改路径啊
  1. 'reinit'
  2. 'set gxout fwrite'
  3. 'set fwrite  1948-2012.grd'

  4. yy=1948
  5. while(yy<=2000)
  6. 'sdfopen   'yy'.nc'
  7. 'set lat 30 160'
  8. 'set lon 10 80'
  9. if (math_mod(yy,4)=0|math_mod(yy,400)=0)
  10. tt=1
  11. while(tt<=366)
  12. 'set t 'tt''
  13. 'set z 1'
  14. 'd air'
  15. tt=tt+1
  16. endwhile
  17. else
  18. tt=1
  19. while(tt<=365)
  20. 'set t 'tt''
  21. 'set z 1'
  22. 'd air'
  23. tt=tt+1
  24. endwhile
  25. endif
复制代码
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-4-23 21:07:03 | 显示全部楼层
river 发表于 2013-4-23 19:19
好像搞定了哦,写成下面那样就能提取成一个grd了。注意改路径啊

每打开一个文件还要关一个文件,即在最后一个endwhile前加一个‘close 1’才行,否则会一直读取第一年的资料哈,不过还是谢谢你给了这么好的思路。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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