Detecting planetary transits with the NASA TESS mission
- Tiago Campante
- Aug 18, 2018
- 4 min read
Updated: Sep 12, 2020
The NASA TESS mission is performing an all-sky survey for planets transiting bright nearby stars. During its primary mission, TESS will monitor the brightness of several hundred thousand low-mass, main-sequence stars over intervals ranging from one month to one year. Monitoring of these pre-selected target stars will be done at a cadence of 2 min, while full-frame images (FFIs) will be recorded every 30 min. In addition, TESS’s excellent photometric precision will enable asteroseismology of solar-type and red-giant stars. A very exciting prospect will be that of conducting asteroseismology of red-giant hosts. Based on an all-sky stellar and planetary synthetic population, we predict to be able to detect solar-like oscillations in up to 200 low-luminosity red-giant branch (LLRGB) stars hosting close-in giant planets (Campante et al. 2016, ApJ, 830, 138). Herein, I simulate what detecting such planetary transits should look like.
Artificial light curves
I generated artificial light curves for ~30,000 LLRGB stars. Generation of the light curves is performed originally in the frequency domain, after which an inverse Fourier transform is applied. I considered only the 30-minute cadence of TESS FFIs and applied a window function to account for the data downlink occurring every spacecraft orbit.
I used a photometric noise model for TESS (Sullivan et al. 2015, ApJ, 809, 77) to predict the rms noise per a given exposure time. To model the granulation power spectral density, I adopted a scaled version (to predict TESS granulation amplitudes) of model F of Kallinger et al. (2014, A&A, 570, A41), which contains two Harvey-like components. No aliased granulation power was considered. Individual radial, (mixed) dipole and quadrupole modes were also modeled. The left and right panels of Fig. 1 respectively display the power spectral density and corresponding light curve of a V=10.3 star observed for 27.4 days (or 1 TESS sector). The oscillation bump can be seen around 170 μHz.
Model transit light curves were generated using the Python package batman. Assuming circular planetary orbits, I seeded one planet per star. I next drew orbital periods and planet radii from uniform distributions spanning the parameter space of interest (0.5 to 27.4 days and 4 to 22 Earth radii, respectively). Orbital periods were redrawn until no systems were left within the Roche limit and/or the stellar envelope. I assumed that all planets transit and drew the impact parameter from a uniform distribution defined over the half-open interval [0,1[. Input to batman includes the time of inferior conjunction, orbital period, planet radius, semi-major axis, and orbital inclination. A quadratic limb darkening law was used and its coefficients set to fixed values. I further accounted for the long integration time by subsampling the model 11 times per cadence then integrating over these subsamples.

Figure 1: Power spectral density (a) and corresponding light curve (b) of a V=10.3 star observed for 27.4 days (or 1 TESS sector). The oscillation bump can be seen around 170 μHz. No window function has been applied here to the light curve to account for the data downlink.
Automated transit detection
I searched for transits using an updated version of the pipeline presented in Barros et al. (2016, A&A, 594, A100), which makes use of a Python implementation of the Box-fitting Least Squares (BLS) algorithm originally introduced by Kovács et al. (2002, A&A, 391, 369). The search was made over periods ranging from 1 day to 70% of the light curve duration and over fractional transit durations ranging from 0.001 to 0.3 with 200 phase bins. Using the periods and epochs found by the BLS algorithm, each light curve was phase-folded and the signal detection efficiency (SDE) computed.
The pipeline searches npass transits per light curve and sorts them according to the SDE. Results for all the light curves are also sorted according to the maximum SDE reported for each light curve. It also tests for the following features: possibility of a secondary transit/eclipse, sinusoidal behavior, and single transit (or an effective number of transits that is less than the total number of transits). Provided the fitted depth is positive, the pipeline produces a series of plots for each candidate. Figure 2 shows the pipeline output for the same artificial star considered in Fig. 1 (after transit injection corresponding to an inflated Jupiter). The two injected transits are correctly recovered.
I went on to test the tool both for statistical false positive rates and detection sensitivity. The former involves running the code on the entire set of light curves, which should only contain instrumental/shot noise and stellar (correlated) signals, namely, granulation and oscillations. The latter involves running the code on the same light curves, although now with injected transits. I do not show the corresponding findings here.

Figure 2: Pipeline output for the same artificial star considered in Fig. 1. The light curve is shown in the top left panel with both (correctly) recovered transits in red. Notice the gap at ≈13.7 d due to the data downlink. The BLS periodogram is shown in the top right panel with the vertical dashed line indicating the best period, as determined by the algorithm. The bottom left panel displays the phase-folded light curve using the best period (blue) and a binned version of it (red). The bottom middle and right panels simply zoom in on the phase-folded light curve at the locations of the primary and possible secondary (not present in this case), respectively.
Comments