Fitting the Light Curves

PACMAN can fit time series observations of exoplanet transits, eclipses, and phase curves. It includes models for both the astrophysical signal and instrument systematic noise (e.g. ramps and slopes).

Here we describe the currently implemented models. Initial guesses and priors for the model parameters are listed in the fit_par.txt file.

Models

Instrument Systematics

Note

c is in log10. A average flux of 10^7 photoelectrons therefore leads to approximately c = 7.

  • model_ramp.py

    Exopential ramps fit to each orbit (free parameters: r1, r2, r3)

  • polynomial1.py

    Linear slope (free parameters: v)

  • polynomial2.py

    Quadratic trend (free parameters: v, v2)

  • exponential_visit.py

    Exponential trend over the whole visit (free parameters: exp1, exp12)

  • logarithmic_visit.py

    Logarithmic trend over the whole visit (free parameters: log1, log2)

  • upstream_downstream.py

    Offset between scan directions due to the upstream-downstream effect (free parameters: scale)

  • divide_white.py

    Uses the divide-white method which assumes that the systematic parameters for a spectroscopic light curves are the same (have the same shape) as for the white light curve. See equation 2 in Kreidberg et al. (2014) for a reference. This model does not has any additional free parameters (so nothing has to be added to the fit_par.txt file which used).

  • constants_cj.py

    Alternative for model_ramp which fits a constant to every j-th exposure in an orbit. See equation 1 in Kreidberg et al. (2019) and references within for an application of this model.

Note

c is in log10. A average flux of 10^7 photoelectrons therefore leads to approximately c = 7.

  • uncmulti.py

    Scales the errorbars at every iteration of the sampler (free parameter: uncmulti_val). Does not work for the least squares fit only for the samplers, mcmc and dynesty.

Warning

With the current version of PACMAN, uncmulti_val has to be entered into fit_par.txt as the last parameter!!

This function has been implemented as an alternative to the ‘rescale_uncert’ technique. This rescales the errorbars of the flux measurements after the least squares routine so that chi2_red = 1. This might be problematic however, if the least squares is having toubles finding a good solution. Then the errorbars would be overestimated.

Astrophysical

  • transit.py

    Planetary transit (free parameters: t0, per, rp, a, inc, ecc, w, u1, u2, limb_dark)

  • eclipse.py

    Secondary eclipse (free parameters: t_secondary, per, rp, fp, a, inc, ecc, w)

  • sine1.py

    Sinusoid (free parameters: a1, omega1, phi1)

  • sine2.py

    Sum of three sinusoids (free parameters: a1, omega1, phi1, a2, omega2, phi2, a3, omega3, phi3, a12, omega12, phi12, a22, omega22, phi22, a32, omega32, phi32)

  • sine_curve.py

    Sum of two sinusoids (free parameters: amp1, theta1, per, amp2, theta2)

fit_par.txt file

This file has to be set up when running Stage 30. Here’s an example:

#parameter     fixed   tied   value       lo_lim   lo_val    hi_lim   hi_val   prior   p1        p2       step_size  
per            True    -1     1.5804046   True     1.55      True     1.6      X       2.25314   2e-05    1e-07      
t0             False   -1     0.18        True     0.16      True     0.2      U       0.0       0.3      0.001      
t_secondary    True    -1     0.0         False    0.0       False    0.0      X       0.0       0.0      0.0        
w              True    -1     90.0        False    0.0       False    0.0      X       0.0       0.0      0.0        
a              True    -1     15.23       True     14.0      True     16.0     X       4.98      0.05     0.02       
inc            True    -1     89.1        True     88.0      True     89.9     X       85.3      0.2      0.02       
rp             False   -1     0.116       True     0.05      True     0.2      U       0.01      0.3      0.001      
fp             True    -1     0.0         False    0.0       False    0.002    X       0.0       1.0      0.0        
u1             False   -1     0.29        True     0.0       True     0.6      U       0.0       1.0      0.01       
u2             True    -1     0.0         False    0.0       False    0.0      X       0.0       0.0      0.0        
ecc            True    -1     0.0         False    0.0       False    0.0      X       0.0       0.0      0.0        
c              False   0      8.37        True     6.0       True     8.9      X       6.7       7.0      0.001      
c              False   1      8.37        True     6.0       True     8.9      X       6.7       7.0      0.001      
v              False   0      -1e-06      False    -0.0001   False    -1e-08   X       -7e-06    -1e-06   1e-05      
v              False   1      -1e-06      False    -0.0001   False    -1e-08   X       -7e-06    -1e-06   1e-05      
v2             True    -1     0.0         True     0.0       True     1.0      X       0.0       0.0      1e-11      
r1             False   0      0.1         False    0.0       False    1.0      U       -10.0     10.0     0.01       
r1             False   1      0.1         False    0.0       False    1.0      U       -10.0     10.0     0.01       
r2             False   0      0.0         False    5.5       False    7.5      U       -100.0    100.0    0.1        
r2             False   1      0.0         False    5.5       False    7.5      U       -100.0    100.0    0.1        
r3             True    0      0.0         False    -1.0      False    1.0      U       -10.0     10.0     0.001      
r3             True    1      0.0         False    -1.0      False    1.0      U       -10.0     10.0     0.001      
scale          False   0      0.0         False    -0.01     False    0.01     U       -0.1      0.1      0.002      
scale          False   1      0.0         False    -0.01     False    0.01     U       -0.1      0.1      0.002      
uncmulti_val   True    -1     1.0         False    1.0       False    7.0      U       0.1       10.0     0.01       

Let’s have a look at each column:

  • parameter

    A list of the different parameters in each model is above.

  • fixed

    If set to False, the parameter will be a free parameter.

  • tied

    If the user wants to tie a parameter over all visits, set -1.

    If the user does not want to tie a certain parameter, he or she has to duplicate the line as often as they have visits.

    Example: c in the template above. The code assumes that the user sorted the rows in the correct order.

  • value

    If fixed was set to True, this will be the used value for the parameter.

    If fixed was set to False, this is the initial guess for the parameter.

  • lo_lim

    Use lower bounds for the least squares routine?

  • lo_val

    lower bound value for the least squares routine.

  • hi_lim

    Use upper bounds for the least squares routine?

  • hi_val

    upper bound value for the least squares routine.

  • prior

    Prior for the sampling?

    • X: No prior

    • U: uniform prior

    • N: Gaussian prior

  • p1 & p2

    If prior = U -> lower and upper bounds for the uniform prior

    if prior = N -> mean and 1 sigma for the gaussian prior

  • step_size

    Sets a step_size for the least squares and sampling.