爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 6986|回复: 16

[分享资料] 求问怎么画时间轴是月份的剖面图~~~~

[复制链接]

新浪微博达人勋

发表于 2013-8-20 17:07:51 | 显示全部楼层 |阅读模式

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

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

x
想用ncep的月平均数据做个图~就是前后两个十年的每月平均气温相减,比较一下前后两个十年的关系
图就是类似下面这个,横坐标是纬度纵坐标是月份
QQ截图20130820170349.png
我想着用grads把前后两个十年每个月的气温平均值的相减,但是这样不就有十二个变量了么,怎么画到一张图里去啊。
呜呜呜,不知道我把问题说的清楚不。。。求各位大神帮助啥都不会的一只小白啊~~~~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-8-20 18:24:41 | 显示全部楼层
先去弄懂怎么画剖面图,你这个就比较简单了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-8-20 20:28:57 | 显示全部楼层
看看手册 画剖面图
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-8-20 20:37:52 | 显示全部楼层
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-8-20 20:38:05 | 显示全部楼层
river 发表于 2013-8-20 18:24
先去弄懂怎么画剖面图,你这个就比较简单了

剖面图以前画过来着,现在的问题是有12个变量,不知道怎么统一成一个。。。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-8-20 22:21:04 | 显示全部楼层
现在针对上面的问题写了这样一个gs文件,贴出来看看~其中据算ave的部分当l值固定不循环的时候图是可以画出来的,但是进入循环以后就不行,画出来的图全部都是0,要做的是2012——2000年月平均减1987——1999年的。
'reinit'
'sdfopen e:\nc\air.mon.mean.nc'


'set gxout fwrite'
'set fwrite e:\nc\airpm111.grd'
'set lev 1000'
l=1
while(l<=12)
'set t 'l''
*t=469是1987年1月
*t=625是2000年1月
*t=781是2013年1月
a=625+l-1
b=781+l-1
c=469+l-1
d=625+l-1
'define air=(ave(air,t='a',t='b',12)-ave(air,t='c',t='d',12))'
'd air'
l=l+1
endwhile
*'set gxout shaded'
*'d air'
'disable fwrite'
@river@又是那隻貓
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-8-20 22:29:20 | 显示全部楼层
双喜丸子 发表于 2013-8-20 22:21
现在针对上面的问题写了这样一个gs文件,贴出来看看~其中据算ave的部分当l值固定不循环的时候图是可以画出来 ...

先不说别的ave(air,t='a',t='b',12)算的是什么样的平均,楼主你还是没有把你想要得到的东西说清楚
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-8-20 22:34:08 | 显示全部楼层
river 发表于 2013-8-20 22:29
先不说别的ave(air,t='a',t='b',12)算的是什么样的平均,楼主你还是没有把你想要得到的东西说清楚

哎呀怪我表达能力太差。。。。
求得是1987——1999年1月平均气温,set t 469,是1987年1月
不知道这次清楚没。。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-8-21 08:54:19 | 显示全部楼层
双喜丸子 发表于 2013-8-20 22:34
哎呀怪我表达能力太差。。。。
求得是1987——1999年1月平均气温,set t 469,是1987年1月
不知道这次清 ...

首先一点,这个nc的月平均气温确实只有一个层次,但不是1000,你设置'set lev 1000'就会导致所有数据缺测。第二,air是资料的变量名,这个是不能改变的。而你又将air定义成了你要得到的那个差值,这个会导致所有出来的值都等于0。第三,既然a和d是一样的,干吗重复定义呢,没必要。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-8-21 10:53:26 | 显示全部楼层
river 发表于 2013-8-21 08:54
首先一点,这个nc的月平均气温确实只有一个层次,但不是1000,你设置'set lev 1000'就会导致所有数据缺测 ...

谢谢好心的river~~~~全是0的问题已经解决了~~~换了1988——1999和2000——20111这两段来做~
现在的gs长这样~~
'reinit'
'sdfopen e:\nc\air.mon.mean.nc'

'set gxout fwrite'
'set fwrite e:\nc\airpm.grd'

l=1
while(l<=12)
'set x 1 144'
'set y 1 73'
'set z 8'
'set t 'l''
*'set t 00z01jan1987'
a=625+l-1
b=769+l-1
c=481+l-1
'define airp=(ave(air,t='a',t='b',12)-ave(air,t='c',t='a',12))'
'd airp'
l=l+1
endwhile

'disable fwrite'

我要算的是300hPa滴~所以在循环里set z 8了,一共有17的数据。
但是麻烦的是写出来的grd文件还是读不出【%>_<%】,我就是想12个时次把airp读进一个文件里变成一个12时次的airp变量。。。
ctl是这样写的:
dset  airpm.grd
undef -9.99e+33
xdef 144 linear 0 2.5
ydef 73 linear -90 2.5
zdef 1 linear 1 1
tdef 12 linear 00Z01jan1987 1mo
vars 1
airp
ENDVARS
运行错误是:
the invalid discription file record is
airp
是不是不可以这样子写grd文件啊。。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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