Dear everyone,
I encounter one problem on the significant test of the wavelet
analysis. Based on description of the NCL website, the wavelet function is
to calculates the wavelet transform of a time series and significance
levels, and the return values contain the wave@power, wave@scale,
wave@signif, wave@dof, and, etc. The wave@sigif is one dimensional array of
length jtot (same type as wave) containing significance level versus scale.
So I think the significance level of the wavelet result can be achieved from
the two values (wave@scale, wave@signif). While, the examples of the wavelet
analysis give me a different way to calculate the significance, which is
shown as follows:
This example reads a time series of seasonal mean sea surface
temperatures. It mimics the example provided at the above URL.
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
begin
f = addfile ("/fs/cgd/home0/shea/ncld/test/sst_nino3.nc", "r")
x = f->SST
N = dimsizes(x) ; number of elements [here 504]
mother = 0 ; Morlet wavelet
param = 6.0 ; common for Morlet
dt = 0.25
s0 = 0.25
dj = 0.25 ; 4 sub-octaves per octave
jtot = 44 ; =subScale*11
npad = 1024 ; pad with extra zeros
nadof = new( 2,float) ; ignored
noise = 1 ; test vs red noise
siglvl = 0.05
isigtest= 0
w = wavelet (x,mother,dt,param,s0,dj,jtot,npad, \
noise,isigtest,siglvl,nadof)
; create coordinate arrays for plot
power = onedtond( w@power, (/jtot,N/) )
power!0 = "period" ; Y axis
power&period = w@period
power!1 = "time" ; X axis
power&time = x&time
power@long_name = "Power Spectrum"
power@units = "C^2"
; compute significance ( >= 1 is significant)
SIG = power ; transfer metadata
SIG = power/conform (power,w@signif,0)
wks = gsn_open_wks("x11","example")
; PLOT (only up to periods of 64)
; power
res = True
res@cnFillOn = True
res@trYReverse = True
res@gsnSpreadColors = True
plot = gsn_csm_contour(wks,power({0:64},:),res)
; significance
RES = True
RES@cnLevelSelectionMode = "ManualLevels" ; set manual contour levels
RES@cnMinLevelValF = 1.0 ; set min contour level
RES@cnMaxLevelValF = 4.0 ; set max contour level
RES@cnLevelSpacingF = 3.0 ; set contour spacing
RES@trYReverse = True
pSIG = gsn_contour(wks,SIG({0:64},:),RES)
end
The example tells us the SIG = power/conform (power,w@signif,0),
and SIG >= 1 is significant at 0.95 level. However, what the value of SIG
corresponds to the significance at 0.99 or 0.90 level. So my question is
"is there an universal way to calculate the significance of the wavelet
analysis"
-------------------------------------------------------
-------------------------------------------------------
Liu Yong
Center for Monsoon Research Center, Institute of the Atmospheric Physics,
Chinese Academy of Sciences, Beijing, China
EMAIL: liuyong@mail.iap.ac.cn
PHONE: 82995289/62659180
-------------------------------------------------------
-------------------------------------------------------
_______________________________________________
ncl-talk mailing list
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk
Received on Fri May 24 00:34:00 2013
This archive was generated by hypermail 2.1.8 : Thu May 30 2013 - 11:38:10 MDT