Eclipse models#

A secondary eclipse, or occultation, happens when the planet passes behind its star and its thermal emission and reflected light are removed from the total flux. The geometry is the transit geometry with the roles reversed, and the depth measures the planet-star flux ratio rather than the radius ratio.

PyTransit has two eclipse models: EclipseModel for broadband photometry, and EclipseSpectroscopyModel (ESModel) for spectroscopic time series.

Neither takes limb darkening coefficients. The occulted body is the planet, whose dayside is close enough to uniform for the purpose, and the star’s limb darkening does not enter at all.

Note

UniformModel also models an eclipse when created with eclipse=True. It gives the bare occultation profile; EclipseModel adds the flux ratio, which is normally what you want.

EclipseModel#

The depth is set by the planet-star flux ratio fr. With fr given, the model returns a light curve normalised to unity out of eclipse and dipping to 1 - fr at the bottom, so it multiplies straight into a transit model. Without fr, it returns the raw uniform-disk occultation profile, which is useful when the flux ratio is applied later or fitted per passband.

from numpy import pi, linspace
from pytransit import EclipseModel

time = linspace(0.4, 0.6, 1000)

em = EclipseModel()
em.set_data(time)

flux = em.evaluate(k=0.1, t0=0.0, p=1.0, a=3.0, i=0.5*pi, fr=1e-3)

The multiplicative=True option returns the fraction of the planet disk that is visible instead of a flux, which is the natural quantity to multiply an arbitrary planetary emission model by.

class pytransit.models.eclipse_model.EclipseModel[source]#

Bases: TransitModel

Secondary eclipse (occultation) model with an explicit planet-star flux ratio.

Models the occultation of the planet by the star. The planet is treated as a uniform disk, which is a good approximation for the dayside emission of most planets, and the eclipse geometry is the transit geometry with the sign of the projected distance reversed.

The depth of the event is set by the planet-star flux ratio fr passed to evaluate. With fr given, the model returns a light curve normalised to unity out of eclipse and dipping to 1 - fr at its bottom, so it can be multiplied straight into a transit model. Without fr, the model returns the raw uniform-disk occultation profile, which is useful when the flux ratio is applied later or fitted separately per passband.

Examples

from pytransit import EclipseModel

em = EclipseModel()
em.set_data(time)
flux = em.evaluate(k=0.1, t0=0.0, p=1.0, a=3.0, i=0.5*pi, fr=1e-3)

See also

UniformModel

the same geometry without the flux ratio, via eclipse=True.

EclipseSpectroscopyModel

eclipse model for spectroscopic time series.

__init__()[source]#
evaluate(k, t0, p, a, i, e=None, w=None, fr=None, multiplicative=False, copy=True)[source]#

Evaluates a secondary eclipse model for a set of scalar or vector parameters.

Parameters:
  • k – Radius ratio(s) either as a single float, 1D vector, or 2D array.

  • t0 – Transit center(s) as a float or a 1D vector.

  • p – Orbital period(s) as a float or a 1D vector.

  • a – Orbital semi-major axis (axes) divided by the stellar radius as a float or a 1D vector.

  • i – Orbital inclination(s) as a float or a 1D vector.

  • e – Orbital eccentricity as a float or a 1D vector.

  • w – Argument of periastron as a float or a 1D vector.

  • fr – Planet-star flux ratio as a float or a 1D vector.

  • multiplicative – If True, will return the fraction of the visible planet disk area to the total planet disk area

  • copy

Notes

The model can be evaluated either for one set of parameters or for many sets of parameters simultaneously. The orbital parameters can be given either as a float or a 1D array-like (preferably ndarray for optimal speed.)

Returns:

Transit model

EclipseSpectroscopyModel#

The eclipse counterpart of TransmissionSpectroscopyModel. It models many wavelength bins that share a single eclipse, computing the geometry once and reusing it across all the bins.

The wavelength-dependent planet-star flux ratio is the quantity of interest in eclipse spectroscopy, so it is the first argument of evaluate rather than a trailing keyword.

from numpy import pi, linspace, full
from pytransit import ESModel

time = linspace(0.4, 0.6, 1000)
npb = 100

em = ESModel()
em.set_data(time)

flux = em.evaluate(f=full(npb, 1e-3), k=0.1, t0=0.0, p=1.0, a=3.0, i=0.5*pi, rstar=1.2)

Important

The model applies the light travel time correction between the transit and the secondary eclipse. The eclipse is observed late by roughly \(2 a R_\star / c\), about 40 s for a hot Jupiter – comparable to the timing precision of a good eclipse measurement, so it is not negligible. The correction needs a physical stellar radius, given through rstar in solar radii. It defaults to 1.0, so set it for anything other than a solar-radius host.

class pytransit.models.roadrunner.esmodel.EclipseSpectroscopyModel(parallel=False)[source]#

Bases: TransitModel

Secondary eclipse model specialised for spectroscopic time series.

The eclipse counterpart of TransmissionSpectroscopyModel. It models the occultation of the planet by the star for many wavelength bins that share a single event, computing the eclipse geometry once and reusing it across all bins.

The quantity of interest in eclipse spectroscopy is the wavelength-dependent planet-star flux ratio, so it is a parameter here rather than something folded into the depth: the per-bin flux ratios are passed as the first argument f of evaluate.

The model also applies the light travel time correction between the transit and the secondary eclipse, which shifts the eclipse by roughly 2 a R_star / c (about 40 s for a hot Jupiter). The correction needs a physical stellar radius, given through the rstar argument of evaluate in solar radii.

Parameters:

parallel (bool, optional) – Compile the model with Numba’s parallel backend. Worth enabling for large numbers of wavelength bins.

Examples

from pytransit import ESModel

em = ESModel()
em.set_data(time)
flux = em.evaluate(f=fr_per_bin, k=0.1, t0=0.0, p=1.0, a=3.0, i=0.5*pi, rstar=1.2)
__init__(parallel=False)[source]#
evaluate(f, k, t0, p, a, i, e=0.0, w=0.0, rstar=1.0)[source]#

Evaluate the transit model for a set of scalar or vector parameters.

Parameters:
  • f – Flux ratios either as a 1D vector or 2D array

  • k – Radius ratio either as a single float or a 1D vector.

  • t0 – Transit center(s) as a float or a 1D vector.

  • p – Orbital period(s) as a float or a 1D vector.

  • a – Orbital semi-major axis (axes) divided by the stellar radius as a float or a 1D vector.

  • i – Orbital inclination(s) as a float or a 1D vector.

  • e (optional) – Orbital eccentricity as a float or a 1D vector.

  • w (optional) – Argument of periastron as a float or a 1D vector.

  • rstar (optional) – Stellar radius in solar radii, used to compute the light travel time correction between transit and secondary eclipse. Defaults to 1.0.

Notes

The model can be evaluated either for one set of parameters or for many sets of parameters simultaneously. In the first case, the orbital parameters should all be given as floats. In the second case, the orbital parameters should be given as a 1D array-like.

Returns:

ndarray – Modelled flux either as a 3D ndarray.