ggebbie / ECCOonPoseidon

ECCO version 4 release 4 on Poseidon @ WHOI
0 stars 1 forks source link

remove tiepoints step in filter_interannual.jl #25

Open anthony-meza opened 1 month ago

anthony-meza commented 1 month ago

Seasonal cycle matrices can be computed using the following ECCOtour.jl code Ecycle,Fcycle = seasonal_matrices(fcycle,t) where t is your timegrid.

The seasonal cycle of a variable x can be computed using the following code: βcycle = Fcycle*x xseasonal = Ecycle*βcycle Alternatively, could fine xseasonal by using an equivalent code: E\hat = Ecycle*Fcycle xseasonal = E\hat*x Using E\hat, we could probably use matrixfilter to solve for the seasonal cycle of atmospheric variables. 26 years of atmospheric variables only requires ~26GB of RAM and ilko has more than that, so with proper garbage collect we would not reach any sorts of out of memory errors. Alternatively, we could operate on each face to save some memory. Either way, the following code would work.

matrixfilter(E\hat,filein,years,γ) #where perhaps we only read in each face

anthony-meza commented 1 month ago

UPDATE:

I think this needs to be done in parallel. ATM it takes far too long (~2 hours) to fit harmonics on just 3 years of 6 hourly data.

anthony-meza commented 1 month ago

UPDATE (again):

After some thinking, I think it would make the most sense to just do all matrix multiplications as arrays (rather than MeshArrays). This would allow us to take full advantage of the BLAS optimizations

ggebbie commented 1 month ago

suggestion: split mean problem and seasonal harmonics problem.

  1. remove mean perfectly with new code that uses every timestep. Does not require matrices.
  2. Approximate the seasonal cycle using 14-day or similar tiepoints and the existing code.
  3. Double-check that the mean is still zero or unchanged (whatever is appropriate).