爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
楼主: subtropical

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

[复制链接]
发表于 2016-11-13 12:02:47 | 显示全部楼层
言深深 发表于 2016-11-13 09:39
取决于序列,比如enso的年际信号,3-7年,那就滤掉3-7年
对于你的逐日资料,你研究的是什么?

研究的是印度洋不同时间尺度的海气相关,想通过滤波出不同时间尺度
如果主要看年以下的变化,是该怎么滤掉年以上的变化(年际信号或者年际分量(这里的名称表述我是不是用错了))??(滤365天以上的波?)
密码修改失败请联系微信:mofangbao
 成长值: 0
发表于 2016-11-13 14:37:51 | 显示全部楼层
qq469015280 发表于 2016-11-13 12:02
研究的是印度洋不同时间尺度的海气相关,想通过滤波出不同时间尺度
如果主要看年以下的变化,是该怎么滤 ...

没做过这方面的工作,你可以试试看结果怎么样
密码修改失败请联系微信:mofangbao
发表于 2016-11-14 21:10:16 | 显示全部楼层
使用Lanzos滤波器滤波。NCL有现成的函数 filwgts_lanczos
密码修改失败请联系微信:mofangbao
发表于 2016-12-14 22:53:37 | 显示全部楼层
请问楼主,去趋势后,数值会发生怎样的变化呢?都变大?都变小?还是不一样?因为不是很懂dtrend这个函数是怎么算的?谢谢楼主!!!!!!!!!
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2016-12-15 08:49:37 | 显示全部楼层
小迪 发表于 2016-12-14 22:53
请问楼主,去趋势后,数值会发生怎样的变化呢?都变大?都变小?还是不一样?因为不是很懂dtrend这个函数是 ...

我没具体看过,但是应该是变小的
密码修改失败请联系微信:mofangbao
发表于 2017-9-19 06:20:20 | 显示全部楼层
楼主可以问一下你是怎么去掉全球变暖信号的吗?刚接触ncl
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2017-9-19 16:29:59 | 显示全部楼层
seven11 发表于 2017-9-19 06:20
楼主可以问一下你是怎么去掉全球变暖信号的吗?刚接触ncl

去掉线性趋势dtrend
密码修改失败请联系微信:mofangbao
发表于 2018-2-10 14:52:37 | 显示全部楼层
言深深 发表于 2016-3-3 09:38
“现在想去年代际信号,我用的是十一点滑动,不知道这个方法准不准确”
不知道你是做什么的,要是随便看看 ...

深深你好,我想对1961-2014年海温距平资料去除年代际变化,是需要带通滤波吗?还是高通滤波,或者低通
密码修改失败请联系微信:mofangbao
 成长值: 0
发表于 2018-2-11 08:53:35 | 显示全部楼层
Dannyqiu 发表于 2018-2-10 14:52
深深你好,我想对1961-2014年海温距平资料去除年代际变化,是需要带通滤波吗?还是高通滤波,或者低通

只是去除年代际的话,可以带通(选择你需要通过的那一部分时间尺度),或者高通,通过高频部分,阻掉低频的(年代际)信号
密码修改失败请联系微信:mofangbao
发表于 2018-2-11 11:17:58 | 显示全部楼层
言深深 发表于 2018-2-11 08:53
只是去除年代际的话,可以带通(选择你需要通过的那一部分时间尺度),或者高通,通过高频部分,阻掉低频 ...

谢谢你的答复,我在论坛上面找到了一个带通的Fortran程序,这个里面的一些参数不是很理解,比如我要看十年之内,那么我的mw1=1,mw2=10可以吗?还有这个里面的dt源程序取的是1.0,我的资料是逐月的,是不是应该取30呢?
C-------------PROGRAM MAIN---------------C
c  Array hgt(nx,ny,nt) shows the HGT data
c  'nx' is the number of grids in x-direction
c  'ny' is the number of grids in y-direction
c  'nt' is day
c  'mw1' is bottom days
c  'mw2' is top days
c----------------------------------------C
      parameter(nx=180,ny=89,nt=636,mw1=1,mw2=10)
      dimension hgt(nx,ny,nt),hgt1(nx,ny,nt)
      dimension cx(nt),xy(nt),bx(nt),tt(nt)
c-----------input data------------------

      open(11,file='d:\AENSO\sst.mnmeanqvshi.grd',form='binary')
      read(11) (((hgt(i,j,it),i=1,nx),j=1,ny),it=1,nt)
      close(11)
       
       
       
      do 70 i=1,nx
      do 70 j=1,ny
      do 50 it=1,nt
  50  tt(it)=hgt(i,j,it)
      call filter(nt,tt,bx,cx,xy,mw1,mw2)
      do 60 it=1,nt
  60  hgt1(i,j,it)=bx(it)
  70  continue
      
c----writing hgt1(nx,ny,nt) to file 'hgt.2000lb.grd'-----
      open(12,file='D:\AENSO\sst.mnmeanqvniandaiji.grd',form='binary')
      
        do 80 it=1,nt
      
  80  write(12) ((hgt1(i,j,it),i=1,nx),j=1,ny)
      close(12)
       
      end

c
      subroutine filter(n,x,bx,cx,xy,mw1,mw2)
      dimension x(n),bx(n),cx(n),xy(n)
      w1=2*3.1415926/float(mw1)
      w2=2*3.1415926/float(mw2)
      w0=sqrt(w1*w2)
      dt=30
      ww=2*abs(sin(w1*dt)/(1+cos(w1*dt))
     $ -sin(w2*dt)/(1+cos(w2*dt)))
      ww0=4*sin(w1*dt)*sin(w2*dt)/((1+cos(w1*dt))
     $ *(1+cos(w2*dt)))
      a0=2*ww/(4+2*ww+ww0)
      b1=2*(ww0-4)/(4+2*ww+ww0)
      b2=(4-2*ww+ww0)/(4+2*ww+ww0)
      do 89 i0=1,n-2
      i=i0+2
      bx(1)=0.0
      bx(2)=0.0
      cx(i)=a0*(x(i)-x(i-2))-b1*bx(i-1)-b2*bx(i-2)
  89  bx(i)=cx(i)
      do 91 i=1,n
  91  x(i)=bx(n+1-i)
      do 92 i0=1,n-2
      i=i0+2
      xy(1)=x(1)
      xy(2)=x(2)
      cx(i)=a0*(x(i)-x(i-2))-b1*xy(i-1)-b2*xy(i-2)
  92  xy(i)=cx(i)
      do 93 i=1,n
  93  bx(i)=xy(n+1-i)
      end
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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