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:
TransitModelSecondary 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 - frat 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
UniformModelthe same geometry without the flux ratio, via
eclipse=True.EclipseSpectroscopyModeleclipse model for spectroscopic time series.
- 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:
TransitModelSecondary 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)
- 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.