爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 19241|回复: 43

[作图] 百年海温去用十一点滑动去除年代际信号

[复制链接]
发表于 2016-3-2 21:25:00 | 显示全部楼层 |阅读模式

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

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

x
用了百年的海温,想看逐年的变化,所以先去掉线性趋势,出来的图去掉了全球变暖的信号,现在想去年代际信号,我用的是十一点滑动,不知道这个方法准不准确,想先看看,然后就出现问题了
,请教家园
wenti11.png
11dian.png
下面是脚本一部分:
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/shea_util.ncl"
begin
min_lat =  -20.0
  max_lat = 40.0
  min_lon =40.0
  max_lon = 180.0
yrStrt = 1871
  yrLast = 2000
f=addfile("./sst.mnmean.v4.nc","r")
TIME   = f->time
  YYYY   = cd_calendar(TIME,-1)/100                 ; entire file
  iYYYY  = ind(YYYY.ge.yrStrt .and. YYYY.le.yrLast)
  sst = short2flt(f->sst)
   
st=sst(iYYYY,:,:)
  printVarSummary(st)      
  lat=f->lat
lon=f->lon
s1=month_to_season(st,"MAM" )
  printVarSummary(s1)
  s=dtrend_leftdim(s1,False)
  copy_VarMeta(s1,s)  
b = addfile("F:/cygwin/app/ncl/lib/ncarg/data/cdf/landsea.nc","r")   ; read in land sea mask basemap file
  lsm_s  = landsea_mask(b->LSMASK,s&lat,s&lon)         ; read in land sea mask, and pass it and
                                                             ; the t85 lat/lon arrays into landsea_mask
s = mask(s,lsm_s.eq.0,True)        ; mask out all ocean points from t85
  printVarSummary(s)
  srun=runave_Wrap(s(lat|:, lon|:, time|:),11,0)
printVarSummary(srun)

    vraon7=s(time|33,lat|:,lon|:)-srun(time|33,lat|:,lon|:)
copy_VarMeta(srun,vraon7)
     vraon8=s(time|36,lat|:,lon|:)-srun(time|36,lat|:,lon|:)
copy_VarMeta(srun,vraon8)
      vraon9=s(time|42,lat|:,lon|:)-srun(time|42,lat|:,lon|:)
copy_VarMeta(srun,vraon9)
       vraon10=s(time|45,lat|:,lon|:)-srun(time|45,lat|:,lon|:)
copy_VarMeta(srun,vraon10)
        vraon11=s(time|49,lat|:,lon|:)-srun(time|49,lat|:,lon|:)
copy_VarMeta(srun,vraon11)   
       vraon12=s(time|56,lat|:,lon|:)-srun(time|56,lat|:,lon|:)
copy_VarMeta(srun,vraon12)   
       vraon13=s(time|61,lat|:,lon|:)-srun(time|61,lat|:,lon|:)
copy_VarMeta(srun,vraon13)
       vraon14=s(time|72,lat|:,lon|:)-srun(time|72,lat|:,lon|:)
copy_VarMeta(srun,vraon14)
       vraon15=s(time|82,lat|:,lon|:)-srun(time|82,lat|:,lon|:)
copy_VarMeta(srun,vraon15)
       vraon16=s(time|84,lat|:,lon|:)-srun(time|84,lat|:,lon|:)
copy_VarMeta(srun,vraon16)
       vraon17=s(time|88,lat|:,lon|:)-srun(time|88,lat|:,lon|:)
copy_VarMeta(srun,vraon17)
       vraon18=s(time|94,lat|:,lon|:)-srun(time|94,lat|:,lon|:)
copy_VarMeta(srun,vraon18)
       vraon19=s(time|96,lat|:,lon|:)-srun(time|96,lat|:,lon|:)
copy_VarMeta(srun,vraon19)
       vraon20=s(time|100,lat|:,lon|:)-srun(time|100,lat|:,lon|:)
copy_VarMeta(srun,vraon20)   
       vraon21=s(time|103,lat|:,lon|:)-srun(time|103,lat|:,lon|:)
copy_VarMeta(srun,vraon21)
       vraon22=s(time|107,lat|:,lon|:)-srun(time|107,lat|:,lon|:)
copy_VarMeta(srun,vraon22)
       vraon23=s(time|108,lat|:,lon|:)-srun(time|108,lat|:,lon|:)
copy_VarMeta(srun,vraon23)
       vraon24=s(time|110,lat|:,lon|:)-srun(time|110,lat|:,lon|:)
copy_VarMeta(srun,vraon24)  
       vraon25=s(time|113,lat|:,lon|:)-srun(time|113,lat|:,lon|:)
copy_VarMeta(srun,vraon25)     
       vraon26=s(time|118,lat|:,lon|:)-srun(time|118,lat|:,lon|:)
copy_VarMeta(srun,vraon26)  
       vraon27=s(time|122,lat|:,lon|:)-srun(time|122,lat|:,lon|:)
copy_VarMeta(srun,vraon27)
       vraon28=s(time|125,lat|:,lon|:)-srun(time|125,lat|:,lon|:)
copy_VarMeta(srun,vraon28)  
       vraon29=s(time|128,lat|:,lon|:)-srun(time|128,lat|:,lon|:)
copy_VarMeta(srun,vraon29)      
       我用的最简单的一个个算的。。。。
麻烦家园高手看下,帮忙指导是不是十一点滑动平均函数(黄色划线部分)用的不对??
密码修改失败请联系微信:mofangbao
 成长值: 0
发表于 2016-3-3 09:38:48 | 显示全部楼层
“现在想去年代际信号,我用的是十一点滑动,不知道这个方法准不准确”
不知道你是做什么的,要是随便看看的话,那么也就那样了。
但是我要说的是,11点滑动也就是去掉了一些噪音,基本上没去什么周期,更谈不上去掉年代际信号了。
年代际信号,之所以称为年代际,而不是10年信号,因为年代际包含的尺度往往比较大,8-15年的准周期,都可以称之为年代际信号,甚至更大一些的20年左右的也可以称之为年代际信号。目前来讲最靠谱的就是滤波,你想去掉年代际信号,那么就带通滤掉这个信号就可以了。
密码修改失败请联系微信:mofangbao
回复 支持 2 反对 0

使用道具 举报

 楼主| 发表于 2016-3-2 21:29:48 | 显示全部楼层
不知道这样写对不对,自己闭门凭感觉写的{:eb302:}
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2016-3-3 17:56:32 | 显示全部楼层
言深深 发表于 2016-3-3 09:38
“现在想去年代际信号,我用的是十一点滑动,不知道这个方法准不准确”
不知道你是做什么的,要是随便看看 ...

谢谢你这么详细的回复,我就是想看一百多年来ENSO发生后下一年春季的海温异常情况,所以从一百多年里提取ENSO年,分析这些特殊年的情况也就是年际变化,所以才想把其他的年代际信号去掉,谢谢你,刚刚接触,不是很懂,想问您滤波的话具体应该怎么做呢
密码修改失败请联系微信:mofangbao
 成长值: 0
发表于 2016-3-3 21:32:53 | 显示全部楼层
subtropical 发表于 2016-3-3 17:56
谢谢你这么详细的回复,我就是想看一百多年来ENSO发生后下一年春季的海温异常情况,所以从一百多年里提取 ...

滤波就是把不同的时间尺度分离开来,建议你找一本统计分析的课本看一看就懂的。
滤波的程序网上也很多,论坛也有,请自己查找。
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2016-3-4 10:02:31 | 显示全部楼层
言深深 发表于 2016-3-3 21:32
滤波就是把不同的时间尺度分离开来,建议你找一本统计分析的课本看一看就懂的。
滤波的程序网上也很多, ...

好的好的,非常感谢
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2016-3-4 10:13:33 | 显示全部楼层
言深深 发表于 2016-3-3 21:32
滤波就是把不同的时间尺度分离开来,建议你找一本统计分析的课本看一看就懂的。
滤波的程序网上也很多, ...

还有个问题,为什么我做的十一点滑动后,最后两张没显示数据呢?
密码修改失败请联系微信:mofangbao
 成长值: 0
发表于 2016-3-4 14:36:25 | 显示全部楼层
subtropical 发表于 2016-3-4 10:13
还有个问题,为什么我做的十一点滑动后,最后两张没显示数据呢?

不懂ncl,不清楚你的问题啊
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2016-3-4 15:38:32 | 显示全部楼层
言深深 发表于 2016-3-4 14:36
不懂ncl,不清楚你的问题啊

哦,我就是用每个异常年份资料减去对应的十一年滑动平均值,然后最后两年的结果在图上就显示不出来,。谢谢你
密码修改失败请联系微信:mofangbao
发表于 2016-8-17 14:33:32 | 显示全部楼层
言深深 发表于 2016-3-3 09:38
“现在想去年代际信号,我用的是十一点滑动,不知道这个方法准不准确”
不知道你是做什么的,要是随便看看 ...

深深你好,我想问一下滤波是不是指,滤掉那些以10年甚至20年为周期的变化的年代际信号?那那滤波后的结果有什么物理意义呢?是年代际自身变化所产生的影响吗?
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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