View on GitHub

Model: spotz

Model History

There is a fair amount of history behind the model used for my thesis. It was originally developed out of the equations from a binary star model by English astronomers in 1977. A group of Hungarian astronomers worked with the model in 1990s which culminated with the publically available SpotModeL in 2003. Before this work the last improvement was in 2006 by American astronomers which produced StarSpotz. I picked up the work in 2010 and developed it into spotz.

Model Variables

The basic function of spotz is to take a Kepler lightcurve and return the parameters of the dark spots needed to produce the variations in the lightcurve. An individual spot can be modeled with radius, longitude, latitude, and rotaional period. The model also uses other input variables which I could solve for using other methods:

  1. Stellar Radius: determined from standard stellar models and the spectral classification.
  2. Equatorial Period: determined from signal analysis of the lightcurve prior to modeling.
  3. Peak Flux: determined during the target selection period.
  4. Inclination: derived from the spectra
There are two other variables, limb darkening coefficient and spot flux ratio, which are constant across all stars.

Differential Rotation

During the model's testing phase it was noted that the model struggles when trying to find the latitude for the spots. There is a degeneracy between the latitude and inclination and despite my ability to determine inclination, there is still uncertainty in that measurement. The solution is to run the model with differential rotation (k) set beforehand, and then run several models with different values of k. Latitude is still calculated because it is related to the spot peroid and differential rotation, as seen below (note that β is latitude).

diff rot

While removing a variable from the model does decrease the run time for a single simulation it does require more models to be run. Many other astronomers prefer to describe differential rotation is by comparing the angular velocities (Ω) at the poles and equator. Where Ω = 2π / P. Because of this I sometimes have my differential rotation equations written in this format.

omega
Least Squares Fitting

The basic function of the model is to reproduce a star's lightcurve by fitting various parameters and comparing the simulated lightcurve to the real one. In machine learning terminology this is a linear regression problem using a customized formula to fit the data. The comparison between the data and the model is done with a nonlinear least squares algorithm and it finds a good fit by minimizing the sum of squared residuals between the data and the model.

LSQ

Each time a new model is created one of these comparisons is made and a χ2 is determined, with lower values signalling a better fit. Where a model with a good fit to the data has spot parameters which are most likely to represent the actual structures on the star. The best fit parameters are found using a type of gradient descent optimization, the genetic algorithm.

It is important to understand that this model is essentially a machine learning project built from scratch. This is because at the time I had never heard of machine learning and it had not yet acheived the wide spread public exposure that it now has.

Back to my homepage