爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 3624|回复: 2

[脚本编辑] 求高手指导,谢谢

[复制链接]

新浪微博达人勋

发表于 2014-8-7 23:08:42 | 显示全部楼层 |阅读模式

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

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

x
  我在做一个数据的年标准化,先算年距平,总共30年,360个月,但结果和标准的总是对不上。路过的高手看看我的gs文件有什么问题吧,在此谢过了。a.ctl对应a.dat,a.dat里面是原始值。
'reinit'
'open e:\enso\s1\a.ctl'
'set gxout fwrite'
'set fwrite e:\enso\s1\da2.dat'
'set lon 130'
'set lat -12.5'
'define a1=ave(a,t=1,t=12,1)'
'define a2=ave(a,t=13,t=24,1)'
'define a3=ave(a,t=25,t=36,1)'
'define a4=ave(a,t=37,t=48,1)'
'define a5=ave(a,t=49,t=60,1)'
'define a6=ave(a,t=61,t=72,1)'
'define a7=ave(a,t=73,t=84,1)'
'define a8=ave(a,t=85,t=96,1)'
'define a9=ave(a,t=97,t=108,1)'
'define a10=ave(a,t=109,t=120,1)'
'define a11=ave(a,t=121,t=132,1)'
'define a12=ave(a,t=133,t=144,1)'
'define a13=ave(a,t=145,t=156,1)'
'define a14=ave(a,t=157,t=168,1)'
'define a15=ave(a,t=169,t=180,1)'
'define a16=ave(a,t=181,t=192,1)'
'define a17=ave(a,t=193,t=204,1)'
'define a18=ave(a,t=205,t=216,1)'
'define a19=ave(a,t=217,t=228,1)'
'define a20=ave(a,t=229,t=240,1)'
'define a21=ave(a,t=241,t=252,1)'
'define a22=ave(a,t=253,t=264,1)'
'define a23=ave(a,t=265,t=276,1)'
'define a24=ave(a,t=277,t=288,1)'
'define a25=ave(a,t=289,t=300,1)'
'define a26=ave(a,t=301,t=312,1)'
'define a27=ave(a,t=313,t=324,1)'
'define a28=ave(a,t=325,t=336,1)'
'define a29=ave(a,t=337,t=348,1)'
'define a30=ave(a,t=349,t=360,1)'
*-----------38------*
i=1
while(i<=360)
'set t 'i''
b=i
if(1<=b<=12)
'd a-a1'
endif
if(13<=b<=24)
'd a-a2'
endif
if(25<=b<=36)
'd a-a3'
endif
if(37<=b<=48)
'd a-a4'
endif
if(49<=b<=60)
'd a-a5'
endif
if(61<=b<=72)
'd a-a6'
endif
if(73<=b<=84)
'd a-a7'
endif
*----------70----------*
if(85<=b<=96)
'd a-a8'
endif
if(97<=b<=108)
'd a-a9'
endif
if(109<=b<=120)
'd a-a10'
endif
if(121<=b<=132)
'd a-a11'
endif
if(133<=b<=144)
'd a-a12'
endif
if(145<=b<=156)
'd a-a13'
endif
if(157<=b<=168)
'd a-a14'
endif
if(169<=b<=180)
'd a-a15'
endif
*----------102-----------*
if(181<=b<=192)
'd a-a16'
endif
if(193<=b<=204)
'd a-a17'
endif
if(205<=b<=216)
'd a-a18'
endif
if(217<=b<=228)
'd a-a19'
endif
if(229<=b<=240)
'd a-a20'
endif
if(241<=b<=252)
'd a-a21'
endif
if(253<=b<=264)
'd a-a22'
endif
if(265<=b<=286)
'd a-a23'
endif
if(287<=b<=298)
'd a-a24'
endif
if(299<=b<=300)
'd a-a25'
endif
if(301<=b<=312)
'd a-a26'
endif
if(313<=b<=324)
'd a-a27'
endif
if(325<=b<=336)
'd a-a28'
endif
if(337<=b<=348)
'd a-a29'
endif
if(349<=b<=360)
'd a-a30'
endif
i=i+1
endwhile
'disable fwrite'
*end

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

新浪微博达人勋

发表于 2014-8-8 08:01:06 | 显示全部楼层
没看懂问的是什么,求标准化还分段求呢
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-8-10 12:52:50 | 显示全部楼层
你确定你是要这样求距平? 很少见到用每年12个月的平均值求距平的,这是研究每年季节变化或者月变化的,比如温度的话,就是得出冬冷夏热结论的。如果是这样的话,你的程序应该没什么问题。  我在想你用了30年数据,是不是想研究每个月的年际变化,或者气候演变趋势,那就是用多年的平均值求距平,
define a1=ave(a,t=1,t=349,12)'
define a2=ave(a,t=2,t=350,12)'
.
.
.
define a12=ave(a,t=12,t=360,12)'
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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