爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
楼主: linikiku

[分享资料] 用ctl把几个nc的月平均数据合并来计算多年5月的平均结果有问题

[复制链接]

新浪微博达人勋

 楼主| 发表于 2013-11-17 22:06:39 | 显示全部楼层
本帖最后由 linikiku 于 2013-11-17 22:11 编辑

图的顺序自己变了。上图是34年的,下图是10年的。34年的图的等值线的标值是负的位势涡度值,明显不对。下图的值是正确的,符合的。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-11-18 08:05:51 | 显示全部楼层
linikiku 发表于 2013-11-17 22:04
Y和Z轴都是反向的,应该没错,我检验过了。我做的是位涡的5月份34年平均的气候值,青藏高原区域的,300 ...

你先检查一下是不是ctl 的问题。你先不要求平均什么的,你就直接利用sdfopen打开原始资料直接画某一时刻的pv图,然后再xdfopen你的ctl   画和上面一样时刻的图,看看是不是一致的,不一致说明是你的ctl 有问题
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-11-18 09:41:26 | 显示全部楼层
river 发表于 2013-11-18 08:05
你先检查一下是不是ctl 的问题。你先不要求平均什么的,你就直接利用sdfopen打开原始资料直接画某一时刻的 ...

先再次感谢帮助。

按你说的,不做平均。用sdfopen打来原始资料,用xdfopen打开我写的ctl,进行对比。同一时刻,同一高度。随机的。检验了几十个时次的。没问题。之前也做了类似的检验。

但是,在我写的ctl下,用ave,在时间增量为12个月的情况下,求平均就不对了。主要出错在对第2,3,4个文件所处的时间段的资料求平均时。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-11-18 12:30:17 | 显示全部楼层
linikiku 发表于 2013-11-18 09:41
先再次感谢帮助。

按你说的,不做平均。用sdfopen打来原始资料,用xdfopen打开我写的ctl,进行对比。同 ...

我找不到问题了,你回复一下mofangbao来帮你看看吧
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-11-18 13:51:57 | 显示全部楼层
river 发表于 2013-11-18 12:30
我找不到问题了,你回复一下mofangbao来帮你看看吧

谢谢。我又在网上搜了一下。以前,在动力论坛上也有人问过同样的问题。但是那位版主的回答我没看明白。
  1. GrADS 中ave函数出现问题?!!!!
  2. 'reinit'
  3. *
  4. 'sdfopen E:\\hgt.2008.nc'
  5. 'enable print E:\mh.gmf'
  6. *
  7. 'set lev 850'
  8. 'set lon 0 180'
  9. 'set lat 0 90'
  10. 'set t 1'
  11. *
  12. 'define mmh=ave(hgt,t=1,t=31)'
  13. *
  14. 'd mmh'
  15. 'draw title mmh on 850hPa'
  16. 'print'
  17. 'c'
  18. *
  19. 'define mh1=ave(hgt,t=1,t=10)'
  20. 'define mh2=ave(hgt,t=11,t=20)'
  21. 'define mh3=ave(hgt,t=21,t=31)'
  22. 'define mh=(mh1+mh2+mh3)/3.0'
  23. 'd mh'
  24. 'draw title mmh on 850hPa'
  25. 'print'
  26. 'c'
  27. *
  28. 'disable'
  29. *'reinit'
  30. 得到的图中mmh与mh不一样?
  31. 为什么呢,敬请高手指点!!!!

  32. :em01:[code]GrADS 中ave函数出现问题?!!!!
  33. 当然不一样, 每天的权重不同了嘛, 你自己仔细数数日子看就知道了
复制代码
[/code]
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-11-18 16:31:20 | 显示全部楼层
linikiku 发表于 2013-11-18 13:51
谢谢。我又在网上搜了一下。以前,在动力论坛上也有人问过同样的问题。但是那位版主的回答我没看明白。[/ ...

那就得看官方文档给出的函数用法了http://grads.iges.org/grads/gadoc/gadocindex.html。但是我觉得这个问题应该和这个不同。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-11-18 23:15:01 | 显示全部楼层
本帖最后由 linikiku 于 2013-11-18 23:32 编辑
river 发表于 2013-11-18 16:31
那就得看官方文档给出的函数用法了http://grads.iges.org/grads/gadoc/gadocindex.html。但是我觉得这个问 ...

我的问题还是没有解决。只好用笨方法计算了。把4个原始文件同时打开,分别计算多年的5月平均值。然后再相加除4。附图是正确的结果,同其它资料计算的结果是一致的。代码如下:
  1. 'reinit'
  2. 'open h:/data/pentad/TOPO/GEOROP/OROG12.CTL'
  3. 'sdfopen ../pv_mon_1979-1988.nc'
  4. 'sdfopen ../pv_mon_1989-1998.nc'
  5. 'sdfopen ../pv_mon_1999-2008.nc'
  6. 'sdfopen ../pv_mon_2009-2012.nc'
  7. 'set display greyscale white'
  8. 'c'
  9. 'set lon 50 120'
  10. 'set lat 0 40'

  11. *'set parea 1. 8. 6.8 8.5'
  12. levs=300

  13. 'set grads off'
  14. 'set grid on 4 1'
  15. *'set map 1 1 4'
  16. 'set xlint 30'
  17. 'set ylint 10'
  18. *
  19. 'set dfile 1'
  20. 'set t 1'
  21. 'set z 4'
  22. 'set gxout shaded'
  23. 'set cmax 0.9'
  24. 'set rbcols 4 4'
  25. 'd orog'

  26. 'set dfile 2'
  27. 'set lev 'levs
  28. 'set t 5'

  29. 'clm1=ave(pv,t=5,t=120,12)*1e6'
  30. *
  31. 'set dfile 3'
  32. 'set lev 'levs
  33. 'set t 5'
  34. 'clm2=ave(pv,t=5,t=120,12)*1e6'

  35. 'set dfile 4'
  36. 'set lev 'levs
  37. 'set t 5'
  38. 'clm3=ave(pv,t=5,t=120,12)*1e6'
  39. *
  40. 'set dfile 5'
  41. 'set lev 'levs
  42. 'set t 5'
  43. 'clm4=ave(pv,t=5,t=48,12)*1e6'

  44. 'set gxout contour'
  45. 'set cint 0.1'
  46. 'd (clm1+clm2+clm3+clm4)/4.'
复制代码
pv_1979-2012May.gif
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-11-18 23:30:28 | 显示全部楼层
在气象家园学到了很多的东西。在此表示感谢。并把我的问题总结一下,也算是对家园的一点报恩。

用一个ctl文件把多个nc文件合并(其中使用了chsub描述,见我1楼的ctl)的情况下,使用ave函数求时间平均时会出现计算错误。我不敢说一定是Grads的bug,但我怀疑有这个可能。另外,也许是我的ctl写的不对,但是我还没看出错在哪里。希望各位同仁指正。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-11-19 09:15:55 | 显示全部楼层
linikiku 发表于 2013-11-18 23:15
我的问题还是没有解决。只好用笨方法计算了。把4个原始文件同时打开,分别计算多年的5月平均值。然后再相 ...

这也是好方法,怎么能说是笨办法呢。赞一个!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-2-20 14:40:16 | 显示全部楼层
想请问一下楼主,我也是这讲多个nc文件写到一个ctl里面去读取,但是我如果用open打开,ctl能打开,但是出的图全是缺省值,用sdfopen或者xdfopen都打不开ctl,请问这是怎么回事啊?
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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