-
Notifications
You must be signed in to change notification settings - Fork 11
Description
The current implementations of some of the lightcurve and Fourier methods are a little cumbersome, and rely on idioms that are not necessarily ideal in Julia (e.g. having multiple different return types in if
branches, using runtime strings to dispatch different methods). The idea then is, as part of working towards the goal of reproducing the exploratory Python tutorial , to update these implementations with small building blocks from which we'll later compose the complex program. The interfaces should be simple, do one thing and do that thing well.
To make a periodogram we need to be able to
- Read in eventlist files (Reading events files #27)
- Convert the eventlist to a lightcurve (Converting events to lightcurves #28)
- Visualise the lightcurve for inspection (Plot recipes for lightcurves #29)
- Compute the spectra via Fourier transformation (Fourier transforms and spectra #33)
- Compute the periodogram via Bartlett's method
Paraphrasing Matteo's words: the Bartlett periodogram can be computed either from the eventlist or from the lightcurve. When computed from an eventlist, there are two ways that we can normalise it, either segment-by-segment or after averaging. The results are not the same as the mean count rate changes between segments.
This issue will track progress towards reproducing the Periodogram tutorial from the Python documentation.
I will update this issue description as we progress, and open smaller issues for tasks that need to be completed along the way.
Feel free to start discussion in the comments of this issue if you have alternative suggestions or identify something new that needs doing as part of implementing periodograms :)
My suggestion is to keep the existing fourier.jl
file as it is but deprecated, and use the implementations as reference for implementing our new methods. This should hopefully save time, as most of the hard work has already been done, and we are principally modifying the interfaces. We can then reuse the existing test cases as well.
Tagging @kashish2210 and @JawadAhmadCS