I am trying to calculate the integral time scale of a cross
correlation analysis to calculate the Effective Degrees Of
Freedom of two time series. I am trying to follow the method
proposed by Chen 1982 (Monthly Weather Review) in which the
integral time scale is calculated as
tau = Sum(i = from -inf to inf) { Cxx(i dt) Cyy(i dt) dt}
where each Cxx and Cyy are the auto correlation of each time
series at each lag time.
let n=22
let lag = 0
let tau = 0
let term = 0
let cseof = 0
let cobs = 0
repeat/range=1:22 (\
let p=-1*ts[d=1,i=1,j=1,k=1,l=1:22];
let q=-1*ts[d=1,i=1,j=1,k=1,l=1:22@shf:lag]; go variance;
let cseof = correl; list/clobber/file=tau.dat cseof \
let p=u_son[d=2,k=1,l=1:22]; let
q=u_son[d=2,k=1,l=1:22@shf:lag]; go variance; let cobs =
correl; list/append/file=tau.dat cobs\
let term = cseof * cobs;
list/append/file=tau.dat term; let tau1 = tau + term;
list/append/file=tau.dat tau; lag = lag +1)
let nedof = n/tau
Which has not worked at all for me.
I have also tried to brute force my way through, because
the summation in my case has only 20 terms using something
like
let lag = 0
let tau = 0
let term = 0
let cseof = 0
let cobs = 0
step 0
let
p=-1*ts[d=1,i=1,j=1,k=1,l=1:22]; let
q=-1*ts[d=1,i=1,j=1,k=1,l=1:22]; go variance; let cseof =
correl; list/clobber/file=tau.dat cseof
let p=u_son[d=2,k=1,l=1:22]; let
q=u_son[d=2,k=1,l=1:22]; go variance; let cobs = correl;
list/append/file=tau.dat cobs
let term = cseof * cobs;
list/append/file=tau.dat term; let tau1 = tau + term;
list/append/file=tau.dat tau1
!step 1
let cseof = 0; let cobs = 0
let
p=-1*ts[d=1,i=1,j=1,k=1,l=1:22]; let
q=-1*ts[d=1,i=1,j=1,k=1,l=1:22@shf:1]; go variance; let
cseof = correl; list/file=tau1.dat cseof
let p=u_son[d=2, k =1, l=1:22]; let
q=u_son[d=2, k =1, l=1:22@shf:1]; go variance; let cobs =
correl; list/append/file=tau1.dat cobs
let term = cseof * cobs;
list/append/file=tau1.dat term; let tau2 = tau1[d=3] +
term; list/append/file=tau1.dat tau2
and repeating this for each term in the sum. In this last
case I have that for lag 0, the tau.dat file has values that
are acceptable, all 1 at every grid point, but for the lag 1
step, even the multiplication of cseof * cobs that is listed
when I do the list/append/file=tau1.dat
term command does not seem to work correctly.
Like the values of cseof and cobs are being discarded as
soon as they are listed and do not make it to the third line
of computations.
I would appreciate any help with any part of
this questions. My gratitude in advance.
Ps: I attach the paper I am trying to follow, as well as my
poorly written .jnl file and my data sets.
Alejandro Ludert.