GSoC Week 4 Update
Brief
This week I successfully finished implementing the fast algorithm. Now my LombScargleCrossspectrum
and LombScarglePowerspectrum
are that much closer to completion. Only things left to sort out/implement are time lags and phase lag functions and checking the phase of the output.
Details
Testing on the following synthetic data has been conducted to compare the outputs with the existing cross spectrum and power spectrum for evenly spaced data first then checking the outputs of the lomb scargle variants on unevenly sampled data
rand = np.random.default_rng(42)
n = 1000
t = np.linspace(0, 10, n)
y = np.sin(2 * np.pi * 3.0 * t) + 0.1 * rand.standard_normal(n)
y2 = np.sin(2 * np.pi * 3.0 * t) + 0.1 * rand.standard_normal(n)
y -= np.min(y)
y2 -= np.min(y2)
The Cross spectra for evenly sampled data
The time lags for evenly sampled data
As it is evident the time lags need work.
The power spectra for evenly sampled data
One quirk is that the power spectrum class is returning the power spectrum with a negative sign. This is a known bug. The values otherwise are within margin of error.
The Lomb Scargle cross spectrum and power spectrum when data is unevenly sampled
t = np.sort(rand.random(n))*10
The cross spectrum
The power spectrum
The time lags
They are off here too. Which will be fixed in the coming week.
For exhaustive testing code refer