The main point of user interaction should be the Lightcurve class, which a user would feed their data to and collect results from. However, at present it can only handle initialising with some data and a little bit of pre-processing, not actually doing any fits or post-processing.
Some relevant code has been prototyped in test_script.py, which needs to be translated into a more rational form inside Lightcurve. Some of those prototypes also need to be generalised (e.g. they assume a single-band lightcurve but need to work for multi-band one).
Things to be done (which may require separate issues, and are not necessarily in any order):
complete the fit() method. This would be where some optimiser is used to find the best hyperparameters for the lightcurve, which translates into a description of the PSD and hence what the set of strongest periods are for the lightcurve (including wavelength information). For now, this can do maximum-likelihood optimisation.
Add a Bayesian routine using pyro's NUTS implementation for MCMC. This could be part of fit() or a separate sample() method. This requires a way to specify hyperpriors for the GP.
Parse the results of fitting/sampling to produce meaningful output. This includes results tables and figures each with their own methods. This needs to account for the fact that the inputs are rescaled to make them easier to fit.
The main point of user interaction should be the
Lightcurve
class, which a user would feed their data to and collect results from. However, at present it can only handle initialising with some data and a little bit of pre-processing, not actually doing any fits or post-processing.Some relevant code has been prototyped in test_script.py, which needs to be translated into a more rational form inside Lightcurve. Some of those prototypes also need to be generalised (e.g. they assume a single-band lightcurve but need to work for multi-band one).
Things to be done (which may require separate issues, and are not necessarily in any order):