爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 18276|回复: 12

[分享资料] 怎样提取新的时间序列

[复制链接]

新浪微博达人勋

发表于 2013-10-5 10:01:41 | 显示全部楼层 |阅读模式
3金钱
本人在处理60年的sst资料,已将数据进行了标准化处理,并用面积平均得出nino3.4区的指数,现需要将每一年 DJF 3个月份的指数进行合成,然后得到一个新的时间序列,进行画图。但不知道应该怎样通过脚本编程从原来的以月为间隔的时间序列中提取出一个新的以年为间隔的时间序列。求教!


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

新浪微博达人勋

发表于 2013-10-5 13:35:41 | 显示全部楼层
论坛搜索,有很多人问过了。
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2013-10-5 14:22:54 | 显示全部楼层

噢,看完后貌似明白了..是要将处理得到的场变量用fwrite提取成.grd数据,再写一个ctl文件,在里面自己定义时间维来实现。这样理解没错吧。
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2013-10-5 15:01:25 | 显示全部楼层
SourC 发表于 2013-10-5 14:22
噢,看完后貌似明白了..是要将处理得到的场变量用fwrite提取成.grd数据,再写一个ctl文件,在里面自己定义 ...

完全正确,动手吧少年~
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2013-10-5 15:31:54 | 显示全部楼层
将处理得到的场变量用fwrite提取成.grd数据,再写一个ctl文件,在里面自己定义时间维来实现。具体参考:http://bbs.06climate.com/forum.php?mod=viewthread&tid=13110
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2013-10-6 22:16:27 | 显示全部楼层
lqouc 发表于 2013-10-5 15:01
完全正确,动手吧少年~

动手后遇到了奇怪的问题,要不输出的数据画出的图明显有误,要不就画不出...贴上脚本,求指错...
标准化处理并fwrite出的gs文件:
'reinit'
'sdfopen f:/GrADS/ncarncep/sst.mnmean.nc'
'set lon 0 360'
'set lat -88 88'
'set t 1164 1175'
****************************
'define sstave=ave(sst,t+0,t=1883,12)'
'modify sstave seasonal'
'define segama=sqrt(ave(pow(sstave-sst,2),t+0,t=1883,12))'
'modify segama seasonal'
********************************************

'set fwrite f:/grads/gsfile/line/normDJF2.grd'
'set gxout fwrite'
***************************
it=1164   
while(it<=1872)
itt=it+2
'set lon 0 360'
'set lat  -88 88'
'set t 'it
'define normDJF=ave((sst-sstave)/segama,t='it',t='itt')'
'd normDJF'
it=it+12
endwhile
'disable fwrite'
'reinit'

自己写的ctl文件:(dtype 和 options 不是很清楚...没写这两项前能出图但不正确,写了这两项直接就出不了图...看手册也没找到答案...)
DSET  f:/grads/gsfile/line/normDJF2.grd
TITLE  Composite DJF Normalized sst
DTYPE  grib
OPTIONS  little_endian
UNDEF  -999999
XDEF  180 linear 0 2
YDEF  89 linear -88 2
ZDEF  1 linear 0 1
TDEF  60 linear 00Z1Dec1950 1yr
VARS 1
nsst  0  99  Noramlized DJF means of sea suface Temperature
ENDVARS   

再附上原始数据nc文件的有用的ctlinfo:
undef -9.96921e+36
xdef 180 linear 0 2
ydef 89 linear -88 2
zdef 1 linear 0 0

当自己写的ctl文件里没写DTYPE和OPTIONS是,在打开ctl后用d nsst命令,就返回:Wrote 16109 of 16109 elements to grads.fwrite as Stream Little_endian
想问问这里的grads.fwrite是个什么东西,是fwrite出来的文件? 在fwrite命令的说明中 set fwrite 后的属性之类的地方貌似见过,但是还是不明白...
打了这么多,主要还是想知道哪里出了问题...


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

使用道具 举报

新浪微博达人勋

发表于 2013-10-7 08:47:22 | 显示全部楼层
SourC 发表于 2013-10-6 22:16
动手后遇到了奇怪的问题,要不输出的数据画出的图明显有误,要不就画不出...贴上脚本,求指错...
标准化 ...

去掉dtype和option,grads输出的都是默认的,不需要写这个,缺省值修改为-9.99e8
程序输出部分大概没问题,图不对么?
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2013-10-7 14:15:46 | 显示全部楼层
lqouc 发表于 2013-10-7 08:47
去掉dtype和option,grads输出的都是默认的,不需要写这个,缺省值修改为-9.99e8
程序输出部分大概没问题 ...

图不是很对的感觉...感觉它把地图边界描出来了...详细请看原帖里附上的图...
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2013-10-7 14:16:11 | 显示全部楼层
修改后的图...
gmf.png
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2013-10-7 14:32:45 | 显示全部楼层
应该是缺省值的问题,你按我说的修改缺省了么?
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

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

本版积分规则

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

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

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