{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# How to cut out Target Pixel Files from Kepler Superstamps or TESS FFIs?\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can use `lightkurve` to cut Target Pixel Files (TPFs) out of a series of standard astronomical images, such as [K2 Superstamp Mosaics](https://archive.stsci.edu/prepds/k2superstamp/) or TESS [Full-Frame-Images (FFIs)](https://heasarc.gsfc.nasa.gov/docs/tess/data-products.html#full-frame-images). This brief tutorial will demonstrate how." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "execution": { "iopub.execute_input": "2023-11-03T14:13:05.691405Z", "iopub.status.busy": "2023-11-03T14:13:05.690771Z", "iopub.status.idle": "2023-11-03T14:13:07.003494Z", "shell.execute_reply": "2023-11-03T14:13:07.003189Z" } }, "outputs": [], "source": [ "import lightkurve as lk" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "execution": { "iopub.execute_input": "2023-11-03T14:13:07.005541Z", "iopub.status.busy": "2023-11-03T14:13:07.005328Z", "iopub.status.idle": "2023-11-03T14:13:12.059097Z", "shell.execute_reply": "2023-11-03T14:13:12.058521Z" } }, "outputs": [ { "data": { "text/html": [ "SearchResult containing 1 data products.\n", "\n", "\n", "\n", "\n", "\n", "
#missionyearauthorexptimetarget_namedistance
sarcsec
0TESS Sector 142019TESScut1426HAT-P-110.0
" ], "text/plain": [ "SearchResult containing 1 data products.\n", "\n", " # mission year author exptime target_name distance\n", " s arcsec \n", "--- -------------- ---- ------- ------- ----------- --------\n", " 0 TESS Sector 14 2019 TESScut 1426 HAT-P-11 0.0" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "search_result = lk.search_tesscut('HAT-P-11', sector=14)\n", "search_result" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "TESS observed the Kepler prime field in Sector 14--- let's see if we can detect planet b. \n", "At the time of writing, the downloading from MAST can be fickle due to 504 HTTP Gateway Timeout errors. You can increase the logging level to find out more information if the TESScut service is down." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "execution": { "iopub.execute_input": "2023-11-03T14:13:12.061955Z", "iopub.status.busy": "2023-11-03T14:13:12.061743Z", "iopub.status.idle": "2023-11-03T14:13:12.064252Z", "shell.execute_reply": "2023-11-03T14:13:12.063854Z" } }, "outputs": [], "source": [ "lk.log.setLevel('INFO')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can specify the `cutout_size`---in number of TESS pixels on a side---as an argument to [.download()](https://docs.lightkurve.org/reference/search.html?highlight=download). The default is a meager 5 $\\times$ 5 square. Let's go with 20 pixels square." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "execution": { "iopub.execute_input": "2023-11-03T14:13:12.066390Z", "iopub.status.busy": "2023-11-03T14:13:12.066235Z", "iopub.status.idle": "2023-11-03T14:13:13.310535Z", "shell.execute_reply": "2023-11-03T14:13:13.310213Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "0% (4/1241) of the cadences will be ignored due to the quality mask (quality_bitmask=175).\n" ] } ], "source": [ "tpf = search_result.download(cutout_size=20)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You have to make your own aperture mask for these custom TESS FFI cutouts. Many decisions go into the choice of aperture mask, including the significant blending of the large TESS pixels. " ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "execution": { "iopub.execute_input": "2023-11-03T14:13:13.312418Z", "iopub.status.busy": "2023-11-03T14:13:13.312279Z", "iopub.status.idle": "2023-11-03T14:13:13.334585Z", "shell.execute_reply": "2023-11-03T14:13:13.334301Z" } }, "outputs": [ { "data": { "text/plain": [ "10" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "target_mask = tpf.create_threshold_mask(threshold=15, reference_pixel='center')\n", "n_target_pixels = target_mask.sum()\n", "n_target_pixels" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "execution": { "iopub.execute_input": "2023-11-03T14:13:13.336135Z", "iopub.status.busy": "2023-11-03T14:13:13.336045Z", "iopub.status.idle": "2023-11-03T14:13:13.621185Z", "shell.execute_reply": "2023-11-03T14:13:13.620800Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "tpf.plot(aperture_mask=target_mask, mask_color='k');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Nice! We see our target mask centered on the ten brightest pixels in the center of the image. Let's see what the uncorrected \"Simple Aperture Photometry\" (**SAP**) lightcurve looks like. For now, we will make no attempt at local background subtraction." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "execution": { "iopub.execute_input": "2023-11-03T14:13:13.623032Z", "iopub.status.busy": "2023-11-03T14:13:13.622904Z", "iopub.status.idle": "2023-11-03T14:13:13.637411Z", "shell.execute_reply": "2023-11-03T14:13:13.637120Z" } }, "outputs": [], "source": [ "target_lc = tpf.to_lightcurve(aperture_mask=target_mask)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "execution": { "iopub.execute_input": "2023-11-03T14:13:13.639039Z", "iopub.status.busy": "2023-11-03T14:13:13.638939Z", "iopub.status.idle": "2023-11-03T14:13:13.647805Z", "shell.execute_reply": "2023-11-03T14:13:13.647542Z" } }, "outputs": [], "source": [ "target_lc.plot(label='Target + background');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The lightcurve clearly shows a 3% signal arising from significant time-variable background in these 10 pixels. Background flux is uncorrected in these TESS FFI cutouts, so we will have to estimate it directly. We can make a clever threshold mask:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "execution": { "iopub.execute_input": "2023-11-03T14:13:13.649436Z", "iopub.status.busy": "2023-11-03T14:13:13.649346Z", "iopub.status.idle": "2023-11-03T14:13:13.668907Z", "shell.execute_reply": "2023-11-03T14:13:13.668610Z" } }, "outputs": [], "source": [ "background_mask = ~tpf.create_threshold_mask(threshold=0.001, reference_pixel=None)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "execution": { "iopub.execute_input": "2023-11-03T14:13:13.670484Z", "iopub.status.busy": "2023-11-03T14:13:13.670392Z", "iopub.status.idle": "2023-11-03T14:13:13.790493Z", "shell.execute_reply": "2023-11-03T14:13:13.790196Z" } }, "outputs": [], "source": [ "tpf.plot(aperture_mask=background_mask, mask_color='w');" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "execution": { "iopub.execute_input": "2023-11-03T14:13:13.792389Z", "iopub.status.busy": "2023-11-03T14:13:13.792276Z", "iopub.status.idle": "2023-11-03T14:13:13.794545Z", "shell.execute_reply": "2023-11-03T14:13:13.794267Z" } }, "outputs": [ { "data": { "text/plain": [ "201" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "n_background_pixels = background_mask.sum()\n", "n_background_pixels" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We identified 201 \"empty\" pixels that could be suitable for estimating the background. The 20x20 cutout has 400 pixels, so these 201 pixels are roughly the pixels with fluxes below the median.\n", "\n", "One may object that these ostensibly empty pixels contain background stars, so there is some uncertain zero-point level from imperfect background estimation. That's true! Background estimation is ultimately a challenge for working with TESS cutouts, especially since background varies in both space and time. Such effects should diminish as your background model approaches reality by modeling or ignoring known background sources and as more instrumental characterization proceeds. The Gaia background sources can be examined using [.interact_sky()](https://docs.lightkurve.org/reference/api/lightkurve.KeplerTargetPixelFile.interact_sky.html?highlight=interact_sky#lightkurve.KeplerTargetPixelFile.interact_sky):" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "execution": { "iopub.execute_input": "2023-11-03T14:13:13.796189Z", "iopub.status.busy": "2023-11-03T14:13:13.796072Z", "iopub.status.idle": "2023-11-03T14:13:13.797728Z", "shell.execute_reply": "2023-11-03T14:13:13.797472Z" } }, "outputs": [], "source": [ "#tpf.interact_sky()" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "execution": { "iopub.execute_input": "2023-11-03T14:13:13.799275Z", "iopub.status.busy": "2023-11-03T14:13:13.799174Z", "iopub.status.idle": "2023-11-03T14:13:13.815344Z", "shell.execute_reply": "2023-11-03T14:13:13.815073Z" } }, "outputs": [], "source": [ "background_lc_per_pixel = tpf.to_lightcurve(aperture_mask=background_mask) / n_background_pixels" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The amount of background seen in the target aperture is the background flux per pixel times the number of pixels in the target aperture." ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "execution": { "iopub.execute_input": "2023-11-03T14:13:13.817019Z", "iopub.status.busy": "2023-11-03T14:13:13.816928Z", "iopub.status.idle": "2023-11-03T14:13:13.819709Z", "shell.execute_reply": "2023-11-03T14:13:13.819463Z" } }, "outputs": [], "source": [ "background_estimate_lc = background_lc_per_pixel * n_target_pixels" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "execution": { "iopub.execute_input": "2023-11-03T14:13:13.821184Z", "iopub.status.busy": "2023-11-03T14:13:13.821091Z", "iopub.status.idle": "2023-11-03T14:13:13.822797Z", "shell.execute_reply": "2023-11-03T14:13:13.822567Z" } }, "outputs": [], "source": [ "import numpy as np" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "execution": { "iopub.execute_input": "2023-11-03T14:13:13.824233Z", "iopub.status.busy": "2023-11-03T14:13:13.824146Z", "iopub.status.idle": "2023-11-03T14:13:13.838360Z", "shell.execute_reply": "2023-11-03T14:13:13.838102Z" } }, "outputs": [], "source": [ "common_normalization = np.nanpercentile(target_lc.flux, 10)\n", "ax = (target_lc / common_normalization).plot(normalize=False, label='Target + Background', lw=1);\n", "(background_estimate_lc / common_normalization +1).plot(ax=ax, normalize=False, label='Background', \n", " ylabel='Normalized, shifted flux');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The time variable structure of the background flux resembles that of the target + background." ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "execution": { "iopub.execute_input": "2023-11-03T14:13:13.839991Z", "iopub.status.busy": "2023-11-03T14:13:13.839894Z", "iopub.status.idle": "2023-11-03T14:13:13.842675Z", "shell.execute_reply": "2023-11-03T14:13:13.842444Z" } }, "outputs": [], "source": [ "corrected_lc = target_lc - background_estimate_lc.flux" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "execution": { "iopub.execute_input": "2023-11-03T14:13:13.844421Z", "iopub.status.busy": "2023-11-03T14:13:13.844320Z", "iopub.status.idle": "2023-11-03T14:13:13.853138Z", "shell.execute_reply": "2023-11-03T14:13:13.852860Z" } }, "outputs": [], "source": [ "corrected_lc.plot();" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Woohoo! We see the transit signal of HAT-P-11 b! Let's fold it on its known period 4.887802443 days [(Huber et al. 2017)](https://arxiv.org/abs/1611.00153)." ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "execution": { "iopub.execute_input": "2023-11-03T14:13:13.854903Z", "iopub.status.busy": "2023-11-03T14:13:13.854813Z", "iopub.status.idle": "2023-11-03T14:13:13.856661Z", "shell.execute_reply": "2023-11-03T14:13:13.856423Z" } }, "outputs": [], "source": [ "period_days = 4.887802443\n", "epoch_time = 2454605.89132 - 2457000" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "execution": { "iopub.execute_input": "2023-11-03T14:13:13.858152Z", "iopub.status.busy": "2023-11-03T14:13:13.858066Z", "iopub.status.idle": "2023-11-03T14:13:13.875948Z", "shell.execute_reply": "2023-11-03T14:13:13.875683Z" } }, "outputs": [], "source": [ "ax = corrected_lc.flatten(101).fold(period_days, epoch_time=epoch_time).scatter();" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Nice!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Cut out Target Pixel Files from local Kepler Superstamps or native TESS FFIs" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It's also possible to manually construct TPFs from the native TESS FFIs or Kepler superstamps if you have the individual fits files saved locally.\n", "\n", "\n", "Let's assume you have downloaded a set of raw TESS FFIs to a local directory called `data`. `lightkurve` will assume that the files are given in *time order*. So you have to sort the filenames first with `glob`:" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "execution": { "iopub.execute_input": "2023-11-03T14:13:13.877694Z", "iopub.status.busy": "2023-11-03T14:13:13.877605Z", "iopub.status.idle": "2023-11-03T14:13:13.879296Z", "shell.execute_reply": "2023-11-03T14:13:13.879031Z" } }, "outputs": [], "source": [ "from glob import glob\n", "import numpy as np" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we use the `KeplerTargetPixelFile` class and its function [from_fits_images()](https://docs.lightkurve.org/reference/api/lightkurve.KeplerTargetPixelFile.from_fits_images.html?highlight=from_fits_images) to create the new TPF. This will cut out around the position keyword. You can pass a pixel position in units of the original image or RA and Dec coordinates." ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "execution": { "iopub.execute_input": "2023-11-03T14:13:13.880827Z", "iopub.status.busy": "2023-11-03T14:13:13.880744Z", "iopub.status.idle": "2023-11-03T14:13:13.882497Z", "shell.execute_reply": "2023-11-03T14:13:13.882258Z" } }, "outputs": [], "source": [ "from lightkurve import KeplerTargetPixelFile\n", "from astropy.coordinates import SkyCoord" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "```python\n", "fnames = np.sort(glob('data/*.fits'))\n", "tpf = KeplerTargetPixelFile.from_fits_images(images=fnames, \n", " position=SkyCoord(257.13700, 24.48958, unit='deg'), \n", " size=(9,9),\n", " target_id='MyCutOut')\n", "```" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The resulting object is a fully functioning `KeplerTargetPixelFile`. You can read more about such objects in the [tutorial on their use](https://docs.lightkurve.org/tutorials/01-target-pixel-files.html)." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.13" } }, "nbformat": 4, "nbformat_minor": 4 }