爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 9690|回复: 22

[分享资料] 【已解决】关于scorr函数中的一个问题

[复制链接]

新浪微博达人勋

发表于 2013-4-11 21:44:22 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 开始起飞1 于 2013-5-6 12:29 编辑

各位大神们好,想请教个简单问题哈,我想做两个变量的相关,可一个变量是格点数据的多年均值(无ctl文件,是在GrADS里现做的平均),另一个变量是站点插值格点的多年均值(有ctl文件,均值是提前处理好的),问题来了,这俩变量的时间怎样处理才能保持一致呢?苦恼啊~~希望大神们给指点迷津,在此谢过~


补充:问题已解决了,原来中间缺少了提取图中数据的这一步。gs文件:
'reinit'
'set gxout fwrite'
'set fwrite  c:\GrADS19\data\dong1.grd'*********  这两步就是提取图中数据的,生成所需要的grd文件
'open c:\GrADS19\data\grid.ctl' **********打开网格文件
'open c:\GrADS19\data\dong.ctl' ***********打开需要插值的站点文件
i=1
while(i<=25)
'set t 'i''
'define a1=oacres(g,x.2)'
'd a1'
i=i+1
endwhile
'disable print'
;

这样就把插值完的图中的数据提取出来了,生成的grd文件再配一个相应的ctl文件(此时就是格点的了)
然后,就可以和其他的格点数据做相关分析了,但这里也要注意,俩数据文件的格点数要保持一致,时间也要一致。
相关分析的gs如下:
'reinit'
'open c:\GrADS19\data\gdwinter.ctl'
'open c:\GrADS19\data\dong1.ctl'
'enable print c:\GrADS19\data\dong.gmf'
'set grads off'
'set grid off'
'set x 1'
'set y 1'
'set z 1'
'set t 1 25'
'd tloop(scorr(a,a1.2,lon=69.375,lon=156.875,lat=14.5,lat=54.5))'
'print'
'disable print'

下面就是出图了,出的图是一个相关系数的时间序列图,见附件 121.jpg

最后说一下啊,其实具体内容不是重点,希望这其中的知识能对需要的人提供点参考,谢谢各位!




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

新浪微博达人勋

发表于 2013-4-11 21:51:16 | 显示全部楼层

回帖奖励 +2 金钱

首先楼主知道第一个变量有多少年吗?
其次两个变量的个点数各是多少呢?
再次要把第一个想第二个靠拢吧?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-4-11 22:01:09 | 显示全部楼层

第一个变量是26年的均值,俩变量的格点数都是一样的,但我还是不大开窍能再给点提示吗?不胜感激啊~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-4-11 23:27:42 | 显示全部楼层

回帖奖励 +2 金钱

要是自己define变量的话应该不会存在时间维不匹配问题的吧~要想处理可以强行给变量设定时间维数,比如valuable(t=1)
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-4-12 07:17:09 | 显示全部楼层

回帖奖励 +2 金钱

格点数一样,那就剩下时间了。如果时间长度不一样长,只要处理成均值之后利用set t命令设置截取相应的长度就行了吧。比如一个26年的均值,一个30年的均值,求的时候取第二个资料的前面26年或者是和第一个资料相对应的那26年就行。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-4-17 23:57:14 | 显示全部楼层
river 发表于 2013-4-12 07:17
格点数一样,那就剩下时间了。如果时间长度不一样长,只要处理成均值之后利用set t命令设置截取相应的长度就 ...

我这个是这样的情况,站点的数据已经是数据平均完后再用GrADS做的插值,相当于1个时间点,而格点的那个是用GrADS现做的平均,平均完之后发现时间点不知道怎么处理了,能麻烦指教下吗,谢啦
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-4-17 23:58:20 | 显示全部楼层
开始起飞1 发表于 2013-4-17 23:57
我这个是这样的情况,站点的数据已经是数据平均完后再用GrADS做的插值,相当于1个时间点,而格点的那个是 ...

补充下,这问题困惑了我好几天了,希望能快速找到解决办法有劳了啊仁兄
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-4-18 07:47:02 | 显示全部楼层
开始起飞1 发表于 2013-4-17 23:57
我这个是这样的情况,站点的数据已经是数据平均完后再用GrADS做的插值,相当于1个时间点,而格点的那个是 ...

你要使用scorr函数求两个场的相关,如果只有一个时次,那出来的就有一个值。如果是多时次的,出来的是一个时间序列。您这是只要求一个值出来?请你把你所用的的资料,想得到什么样的结果说一下,别人是猜不出来的
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-4-18 09:02:58 | 显示全部楼层
river 发表于 2013-4-18 07:47
你要使用scorr函数求两个场的相关,如果只有一个时次,那出来的就有一个值。如果是多时次的,出来的是一个 ...

对,求一个值,我给发一下我写的gs文件吧,麻烦给看下
'reinit'
'open c:\GrADS19\data\1980grid.ctl'
'open c:\GrADS19\data\guang1.ctl'
'set grads off'
'define a1=oacres(g,x.2)'
'define aaa=smth9(a1)'
'open 1980data.ctl'
'set dfile 3'
'define aa=ave(a.3,t=1,t=366)'
'open 1981data.ctl'
'set dfile 4'
'define a2=ave(a.4,t=1,t=365)'
'set mpdset cnscs'
'set lon 73 120'
'set lat 30 55'
*'set t 1'
'd scorr(a1,(aa+a2)/2,lon=73,lon=120,lat=30,lat=55)'
'enable print xiangguan.gmf'
'print'
'disable print'
;
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-4-18 09:33:45 | 显示全部楼层
本帖最后由 river 于 2013-4-18 09:37 编辑
开始起飞1 发表于 2013-4-18 09:02
对,求一个值,我给发一下我写的gs文件吧,麻烦给看下
'reinit'
'open c:\GrADS19\data\1980grid.ctl'
...

你都已经用set dfile命令了干吗还在变量后面加那个区分码,运行的时候肯定提示你a.3 a.4不是有效的变量名吧。还有你求完之后只有那个时次一个值,所以set t 1是必要的。你根本就没找到你的问题所在,既然有gs,运行的时候又有错误提示(可以截图发上来),应该可以比较轻易地锁定问题,但是你发帖提的问题根本不是问题所在。这样别人也肯定不会猜得到你的问题,还得通过几次留言问答才能搞清楚你的问题,这是很浪费时间的,无论是你的还是别人的
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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