爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 8185|回复: 9

[图形美化] 【求助】grads中关于多个sum函数的应用

[复制链接]

新浪微博达人勋

发表于 2020-9-12 19:38:17 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 Iree_Aurora 于 2020-9-12 19:46 编辑

请走过路过的大神们帮帮忙!grads小白对于这个问题想不明白了……
编写求位势高度场的多年平均场的gs文件时,因为所涉及的时间是没有规律的,所以就先sum,再平均,gs如下:
'reinit'
'xdfopen f:\ivf\annul_temp\hgt1961-2018\hgt.nc.1961-2018.ctl' *将1961-2018年的位势高度场合成一个ctl文件,便于下面根据不同时间求和

'set lev 850'
'set mpdset cnworld'
'define s=sum(hgt,t=700,t=708)+sum(hgt,t=731,t=737)+sum(hgt,t=2188,t=2212)+sum(hgt,t=5100,t=5106)+sum(hgt,t=5457,t=5471)+sum(hgt,t=5838,t=5845)+sum(hgt,t=5873,t=5879)+sum(hgt,t=6214,t=6221)+sum(hgt,t=6225,t=6233)+sum(hgt,t=8753,t=8767)+sum(hgt,t=15338,t=15344)+sum(hgt,t=16441,t=16447)+sum(hgt,t=17192,t=17202)+sum(hgt,t=18266,t=18275)+sum(hgt,t=18648,t=18654)+sum(hgt,t=18991,t=19004)'
*是的,这里就很长,因为需要求这么多段时间
'd s/165'
'gxprint f:\ivf\annul_temp\hgt1961-2018\hgt850.png png white'
;

然后运行,是可以画出图来的:
hgt850.png
但是!!问题来了!!!
我用同样的gs文件(ctl提前运行好的),
ctl:

dset F:/IVF/annul_temp/air1961-2018/air.%y4.nc
title mean Daily Air Reanalysis
options template
options yrev
undef -9.9621e+36
xdef lon 144 linear 0 2.5  
ydef lat 73 linear -90 2.5
zdef level 17 levels 1000 925 850 700 600 500 400 300 250 200 150 100 70 50 30 20 10
tdef time 21184 linear 00Z01Jan1961 1440mn
vars 1
air=>air 17  t,z,y,x  mean Daily Air Temperture
endvars

gs:

'reinit'
'xdfopen f:\ivf\annul_temp\air1961-2018\air.nc.1961-2018.ctl'
'set lev 1000'
'set mpdset cnworld'
'define s=sum(air,t=700,t=708)+sum(air,t=731,t=737)+sum(air,t=2188,t=2212)+sum(air,t=5100,t=5106)+sum(air,t=5457,t=5471)+sum(air,t=5838,t=5845)+sum(air,t=5873,t=5879)+sum(air,t=6214,t=6221)+sum(air,t=6225,t=6233)+sum(air,t=8753,t=8767)+sum(air,t=15338,t=15344)+sum(air,t=16441,t=16447)+sum(air,t=17192,t=17202)+sum(air,t=18266,t=18275)+sum(air,t=18648,t=18654)+sum(air,t=18991,t=19004)'
'd s/165'
'gxprint f:\ivf\annul_temp\air1961-2018\air1000.png png white'
;

画多年平均温度场,就是这样:(
air1000.png
PS:试过把sum那一堆减少一些(减到了sum(air,t=8753,t=8767),可以正常作图)

Question:
1、为什么位势高度场可以计算这么多sum,而温度场却不可以呢?
2、如果温度场必须要计算这么多时段的均温,请问该如何解决这个问题或者有没有更好的计算方案呢?


麻烦各位大佬帮忙解决一下这个疑问,谢谢大噶!!!


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

新浪微博达人勋

发表于 2020-9-12 20:14:17 | 显示全部楼层
应该不存在这样的问题才对,位势高度可以,温度也必然是可以的······
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-9-12 20:55:05 | 显示全部楼层
river 发表于 2020-9-12 20:14
应该不存在这样的问题才对,位势高度可以,温度也必然是可以的······

对啊,我也这么觉得,可是它输出来就是这样,请问您还有求平均温度场其他的思路吗(上面ctl也是今天看到您的帖子现学现用的,在此对您表示一下感谢哈~
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-9-12 20:58:10 | 显示全部楼层
Iree_Aurora 发表于 2020-9-12 20:55
对啊,我也这么觉得,可是它输出来就是这样,请问您还有求平均温度场其他的思路吗(上面ctl也是今 ...

有没有什么报错信息吗?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-9-12 21:07:59 | 显示全部楼层
river 发表于 2020-9-12 20:58
有没有什么报错信息吗?

您看,没有报错
QQ截图20200911155124.png
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-9-15 22:33:12 | 显示全部楼层

你这样的,你先试试把ctl里缺测值那一项用*注释掉。
然后还不行就直接用打开ctl的方式在GrADS里面输入命令,随机设置时间,看看原始资料都能不能出图,有的时候原始资料可能有问题
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-9-19 10:23:14 | 显示全部楼层
river 发表于 2020-9-15 22:33
你这样的,你先试试把ctl里缺测值那一项用*注释掉。
然后还不行就直接用打开ctl的方式在GrADS里面输入命 ...

您看,我在命令窗口直接输入,8000之前的数据好像没有问题,但是加到后面就出不了图了,您看这是不是数据的问题,后面他有个Contouring: 1e+07 to 1.2e+08 interval 1e+07 的提示,您看是不是这个问题 QQ截图20200918165635.png QQ截图20200918174101.png QQ截图20200916192107.png
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-9-19 10:40:53 | 显示全部楼层
river 发表于 2020-9-15 22:33
你这样的,你先试试把ctl里缺测值那一项用*注释掉。
然后还不行就直接用打开ctl的方式在GrADS里面输入命 ...

我好像找到原因了!!谢谢您提供的思路!我想起来我1980年下的是ncep1的数据,1980年后是ncep2的数据,ncep2的数据似乎不能直接与ncep1用一个ctl打包起来,我可以再请教一下您吗,就是如果不重新下ncep11980年之后的数据,请问我该如何实现,这种1961-2018年位势高度场求平均呢(时间没有规律)
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-9-19 12:09:07 | 显示全部楼层
Iree_Aurora 发表于 2020-9-19 10:40
我好像找到原因了!!谢谢您提供的思路!我想起来我1980年下的是ncep1的数据,1980年后是ncep2的数据,nc ...

这种情况的话,我觉得思路就是分成两段分别批量描述分别求,前面一段加起来除以165,后面一段加起来除以165,最后再把这两个数字加起来
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-9-19 18:39:41 | 显示全部楼层
river 发表于 2020-9-19 12:09
这种情况的话,我觉得思路就是分成两段分别批量描述分别求,前面一段加起来除以165,后面一段加起来除以1 ...

好的!谢谢您!我再去试试!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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