Exoplanet Transit Guide
This is a guide that is intended specifically for someone with no prior python coding or visual astronomy experience. This outlines everything from what a transit is, to choosing and capturing your transit, and even setting up your python environment with useful astronomy libraries. These instructions are catered to using the York University observatory's 1-meter aperture telescope for capturing the transit.
- Section 1: Selecting a Transit - This section describes six things to keep in mind when selecting a transit. It also provides some good resources for finding a suitable transit.
- Section 2: Observing Night - A guide for the observing process at York University that outlines key hardware and software you may use. Includes tips for increasing your chances of success.
- Section 3: Python Setup - Guide for setting up python and installing libraries like numpy and astropy.
- Section 4: Image Calibration - Walks through what the aperture is, how to choose its size properly for each of your stars, and choosing proper reference stars for differential photometry.
- Section 5: Aperture Test - Guide for differential photometry with your chosen stars and aperture.
To date, the transit method is the most successful and powerful method of finding exoplanets. A transit occurs when an exoplanet orbiting a distant star passes directly between the earth and the star, causing some of the incoming light from the star to be blocked by the planet. By monitoring the brightness of stars and looking for periodic dips in intensity, you can confirm whether an exoplanet is orbiting the star. With a single transit you can then apply the transit equation to determine the planet's radius. With multiple transits, you can determine much more such as the orbital period, semi-major axis, etc. The image on the left is a very simple illustration of an ideal transit. The image on the right is an actual transit of Brown dwarf star TOI2119.01 b (TOI2119.01 refers to the star, and the b refers to the planet, or in this case brown dwarf star). This was caught through the 1 meter telescope at York University.
Ingress/ Egress¶
The first downward sloping line in the transit is called the ingress- This occurs when the planet starts blocking the star, but is not fully in front of it yet. The upward sloping line is the Egress- this is when the transit is ending and less of the planet is blocking the star.
Limb Darkening¶
The U-shape at the bottom of the transit is caused by limb darkening. This is the effect of the star being brighter at the center than at the edges. This causes more of the star's incomming light to be blocked when the planet is in front of the center of the star.
Section 1: Selecting a Transit
- Weather - When selecting the exoplanet transit, the weather is important above all else. Clouds can cause a drop in brightness of over 40% in my experience, and when looking for a drop around 1%, this can make it impossible to measure even with differential photometry and proper image calibration. Transparency of the atmosphere is also important to get an idea of how good your data might be. Think of it like how clear or muddy the water is when looking at something at the bottom of a pool. Seeing is a measure that estimates how much your star will twinkle or shimmer. Think of it like how still the water is when looking at something at the bottom of a pool, except in this case, instead of water, it's the atmosphere, and you're looking at your star. This will give you an idea of how good your transit data might be as well. This website explains seeing and transparency in more depth. Humidity is also important because if 85% relative humidity is reached, the telescope dome automatically closes to avoid damage. If you're using the York University Observatory, the York University Observatory Clear Sky Chart is a great resource for helping you choose a clear night that has all of this info, but the data is only for the next 72 hours.
- Stellar Magnitude - The brightness measurement (higher means more dim). With the light-collecting power of the 1-meter telescope, the upper limit is around 14.5. Any less bright and the exposure times would likely be too long. If you find a transit around 14 Vmag, you can look at the starfield by generating a starfield with the Exoplanet Transit Database to ensure there are no other really bright stars in the FOV. If this is the case, you may be able to capture the transit with long exposure times. Ideally, though, 13 or below is great.
- Transit Depth - Generally, we want a drop in brightness of 1% or more in order to accurately extract the transit, but a larger transit depth is always easier to detect. This number is usually reported in MAG and can be converted to a percentage using the formula:
$ \Delta F\% = \left( 1 - 10^{-\Delta m / 2.5} \right) \times 100 $
- Transit Duration - The length of the transit is important because of telescope availability as well as finding a window without clouds passing. The shorter the transit, the higher the chances of success.
- Transit Start Time - You need the transit to occur at night, and ideally, you want it to start at least 1 hour and 15 minutes after sunset (45 mins for twilight and 30 mins for a baseline before the transit). The York University Observatory Clear Sky Chart has estimates for the brightness. The stadium lights usually turn off at 11:00 (if they are even on), so a transit that starts at 11:30 or later is ideal for a good 30-minute baseline, although this is not a big deal because this can easily be corrected. The Exoplanet Transit Database reports time in UTC, and depending on the time of year, it is either -4 or -5 hours to convert to EDT, which is the Toronto time zone.
- Celestial Position - The following link can be used to ensure that your object is at least 20 degrees above the horizon from 30 minutes before to 30 minutes after the transit, as these are the limits of the 1-meter telescope. The closer to 90 degrees, the less atmosphere you have to look through, which leads to a better transit: STARALT
The Exoplanet Transit Database is a great resource. With a given latitude, longitude, and date, it will give you a list of confirmed transits that are visible from your location and more than 20 degrees above the horizon mid-transit (you still need to make sure this is for the whole transit duration). It can also be used to make a finder chart so that you can identify which star is the transit star. It also includes all of the important information mentioned above. Once you find a good transit there, you can then input the given RA and Dec into STARALT to confirm it is viewable for the entire transit.
This shows an example for TrES-3 b for the York University Observatory coordinates:
Section 2: Observing Night
This section walks through a step-by-step process for your observing night at the York University observatory with the 1-meter Planewave telescope, providing tips that I have learned along the way to help ensure you catch a successful transit.
Observing Equipment and Software¶
On your first observing night at the York University observatory, you will come across various equipment and software that are essential for capturing a successful exoplanet transit. Below is an overview of these tools and their purposes:
CCD Camera:
The Charge-Coupled Device (CCD) camera, such as the SBIG STXL 6303, is a key instrument for capturing high-quality images of your transit. CCD cameras consist of an array of light-sensitive pixels that convert incoming photons into electronic signals. Each pixel is recorded as a number that represents the pixel intensity to form a black and white image. The resolution of the camera is determined by the number of pixels, and the signal-to-noise ratio is generally better with higher pixel counts.
Binning: 2x2 binning means combining 2x2 blocks of pixels into a single pixel, effectively increasing the sensitivity and signal-to-noise ratio but reducing the resolution. This is useful in low-light conditions where capturing more light for a higher SNR is crucial, such as an exoplanet transit.
Max Count: The max count refers to the maximum value a pixel can register before saturating. It is important to avoid saturation, as it can lead to a loss of detail in bright areas of the image or it can mess up your transit. Keeping the max count below a certain threshold ensures the integrity of the data. To be safe and to avoid issues from "ghost stars," aiming for a max count of around 25k is usually good.
Ghost stars: The SBIG 6303 camera is susceptible to ghost stars from previous images of overexposed objects. If a star is overexposed (a pixel has too high max count), the star can appear on the next images taken. This can completely ruin your transit curve, so it is crucial that the camera is nowhere near overexposed. Even well below the CCD damage limits, this can occur (around 40k max pixel count). For more information, you can refer to this link.
Focusing: The software can do auto focusing by trying to fit the point spread function (PSF) of the star to a Gaussian curve. For exoplanet transits, people often intentionally defocus from the star to flatten the Gaussian curve and increase the radius of the PSF. This is because relying on more pixels reduces the effect of pixel-to-pixel sensitivity differences. In our case, our camera has a very zoomed-in FOV, and the Toronto skies already slightly defocus the image, so intentionally defocusing is not needed, but focusing isn't needed either unless it is terrible.
The Telescope:
The main instrument for observing is the 1-meter aperture Planewave telescope.
Alt/Az Mount:
The alt-azimuth mount allows the telescope to move in altitude (up and down) and azimuth (left and right). This type of mount is simpler to use and set up compared to equatorial mounts. However, for long-exposure astrophotography, field derotation is required to compensate for the rotation of the field of view.
Field Derotation:
Field derotation is necessary when using alt-azimuth mounts for long exposures. As the Earth rotates, the field of view in the telescope also rotates. Field derotation corrects this by rotating the camera and filter at the same rate to get higher quality long-exposure images. The example below shows two transit images that were taken without field derotation; as you can see, the stars look fine, but any of the stars around the edges might leave the FOV, making it harder to align images and choose reference stars, and the images are not as high quality due to the slow rotation while taking images with long exposures.
Standard Filters (RVB):
Filters such as Red (R), Green (V), and Blue (B) are used to isolate specific wavelengths of light. Standard filters are essential in astrophotography to reduce the effects of light pollution and to isolate the light from the object of interest. The Red (R) filter, in particular, is commonly used for capturing transits as it reduces atmospheric distortion and provides clearer contrast for stars and planets. It also helps cut down on light pollution interference, improving the quality of the data.
Planewave Software:
Planewave software is used to control the telescope, including pointing, tracking, cooling, and field derotation. Planewave Shutter Control is in a separate window and is used for controlling the primary mirror shutters.
Maxim DL:
Maxim DL is a comprehensive software suite for astronomical imaging. It is used for controlling the CCD camera to set up and capture flats, bias, and transit images.
Camera Cooler:
The camera cooler is used to reduce the temperature of the CCD sensor. Cooling the camera to approximately 20 degrees below ambient temperature minimizes thermal noise, which can affect image quality. Thermal noise consists of random electronic signals generated by heat, which can obscure faint details in the images. Cooling the camera avoids the need for dark correction, simplifying the image processing workflow.
Mirror Cooler:
The mirror cooler helps stabilize the temperature of the telescope's primary mirror, preventing thermal distortions that can degrade image quality. Temperature changes can cause the mirror to expand or contract, leading to focus issues and image blurring. A mirror cooler ensures the mirror remains at a stable temperature, maintaining optimal performance throughout the observation session.
These instructions walk through using MaximDL and ASCOM to control the observatory- this link walks through detailed instructions for using a software called Voyager instead.
- Start by checking the telescope platform to ensure it is clear. Then turn on the flat-field lamp and point the telescope towards the dome where the flat-field lamp is shining. This is how we take our FLAT images with the 1-meter telescope (more details in Section 3).
- Create a folder in the 1-meter images folder to save your images with today’s date in the format YYYY-MM-DD+DD.
- Setup your observing logs in This File with the Copy of Template.
- Turn on Planewave and connect to the telescope.
- Open Perseus Commander and hit connect. Select SBIG-6303.
- Open Planewave Shutter Control and press connect. Press open to open the shutters. Verify they are open.
- Once the shutters are open (NEVER BEFORE AS THIS CAN DAMAGE THE SHUTTERS!), go to Planewave and turn on the fans. DO NOT TURN THE HEATERS ON IN THE TEMP TAB, THIS CAN DAMAGE THE PRIMARY MIRROR!
- Turn on the CCD using the PDU #5 in Google Chrome. The CCD is in slot 5, listed as SBIG STXL 6303.
- Check the weather. If you plan on staying all night, ensure it is still expected to be clear and that the relative humidity will not exceed 85%, as the telescope dome will automatically close for safety reasons at this point. Also, check the ambient temperature and take note of it for the next step.
- Open Maxim DL. Check the cooler set temperature and set it roughly 20 degrees below ambient temperature.
- Open ASCOM and press connect to telescope first, then open the dome tab and select connect to dome. To verify, select Direct Motion (still under the telescope dome tab) and press Go to home and verify that the dome is moving. The home position is 180 degrees azimuth.
- In Planewave there is a tab for each of the following with a button to enable it: rotator, focuser, Alt/Az, and field derotation. Once all are enabled, You may need to reset the field derotation by selecting mechanical angle--> -200 --> Goto. This resets the field derotation as it can only rotate for so long before being reset.
- Start taking Bias images in Maxim DL. With the mode on single, Set the type to Bias and the exposure time to 0.01s. You can identify hot pixels in this image and take note of them for later (you don’t want your stars on hot pixels). You can click on autosave and set up a script to take and save these images to the folder you set up. Make sure to set the name to something like "BIAS_2x2". Select options-> set save path to the folder you created. Once you start taking images, verify that they are saving to the folder you want. We have done whole nights of observing only to realize not a single image was saved.
- Start taking flats in Maxim DL. With the mode on single, Set the filter to R, the binning to 2x2, and the type to flats. Start with a single exposure time of 0.01s. Slowly increase the exposure time, taking images each time until max counts are 22-28k (this should be around 0.5 - 1s). Once you have your exposure time for flats chosen, you can click on autosave and set up a script with the same exposure time to take flats. Make sure to change the name to something like "FLAT_R_2x2". I recommend taking as many as 50 before your transit and 50 after if you have the time. Your folder should be the same as BIAS if you didnt change it, but still verify the images are saving to the correct folder again.
- Using Planewave, set the telescope to a position low in altitude that is 90 degrees to the dome opening--> your goal here is that if something falls in when you open the dome, it is not going to hit the primary mirror.
- Open the dome with ASCOM. Once you have verified it is open select slave to telescope. This makes the dome opening follow the telescopes pointing automatically.
- Using Planewave, set the telescope to the position of your transit target. To do this select view--> Find targets. This brings up a window where you can search your targets name. If it cannot find your target, you can manually put in the RA and DEC in the same place.
- Once you have confirmed the telescope has driven to the target you can start taking your images. Set the mode to single and the type to light. Ensure the binning is still set to 2x2 and the filter is still R. Start with 0.01s and slowly increase, aiming for roughly 25-30k max counts. Once you have your exposure time chosen, setup the autosave in the same way you did with flats and bias, making sure you change the name, exposure time, the mode to light, and the number of images to 999. You can abort the sequence whenever so we choose 999 because it is the max number you can set.
Shutdown
- Unslave the dome from the telescope in ASCOM.
- Turn off the fans in planewave.
- Close the pedals with Planewave shutter control.
- Rotate the telesocpe 90 degrees from the dome opening again to close the dome.
- In ASCOM under direct motion, select go to home to move the dome back to 180 degrees azimuth.
- Disconnect the dome in ASCOM.
- Disconnect the telescope in ASCOM.
- Disconnect the CCD in MaximDL and turn it off.
- Turn off the PDU #5 in Google Chrome.
- Disconnect Perseus commander.
- Disconnect Planewave interface shutter control.
- in Planewave interface, disable rotator, focuser, Alt/Az. Make sure you press STOP derotation in "Move" before disabling the field derotation.
TIPS
Make sure that you request that the security camera in the 1-meter dome room has its IR lights turned off before capturing your transit. There are certain angles where the IR light can hit the CCD, causing light leaks in your images like the one below. However, as long as you’re not using any comparison stars in the affected area, the image is still usable:
When taking your Bias images, you can see the location of hot pixels as extra bright single pixels. When determining the exposure times for your transit images later, ensure that your stars are not on any of these hot pixels. Some are significant, and some are negligible with the flat and bias corrections. Also, if your max count is too high but it’s only due to a hot pixel, you can ignore them and rely on the max count caused by other factors. MAKE SURE ANY MAX COUNT OVER 35K IS ONLY FROM A HOT PIXEL. TOO HIGH OF A MAX COUNT FROM OTHER FACTORS CAN DAMAGE THE CCD!
If your star is starting low in altitude and rising, make sure that you don’t choose too high of an exposure time. As the transit occurs, you will be seeing through less atmosphere with each image, so your max count may increase to numbers that could damage the CCD. Aim for 22-25k counts to leave ample room for an increase in pixel counts without damaging the CCD.
Section 3: Python Setup
Google Colab¶
Google Colab is great if you have a google account and you like to use google drive for storage. Its a free environment that you can use to run jupyter notebooks, and offers free access to powerful GPU's and CPU's. All York students are given a G-mail account automatically with 50 gigs of storage on google drive. Make sure you sign in at the top right corner of the webpage before proceeding. I reccomend signing in with your student account because you will need the extra stroage. You dont need to use google drive or google colab if you have a python environment setup with enough storage on your own pc.
- Importing this notebook to use
- Click on the "File" menu at the top left.
- select "Open notebook"
- Select Github and paste this link, which leads to the github page for this jupyter notebook: https://github.com/aidenweatherbee/Beginner_Nocode/blob/6a2390d0b9eec5f5179f3dc012bbd4bf39fad43d/TransitProcessing_Intermediate.ipynb
Python Libraries¶
There are many different python libraries that are made for anything from basic math and statistics to specific astonomical data processing algorithms. These are very easy to install, and just require running a codeblock like the one below with the words !pip install (name of library). Alot of these are already installed depending on whether your using google colab or github codespace or something else, but it doesnt hurt to run the install code again to check. Common libraries that you may use are:
numpy (basic math and statistics), matplotlib (plotting), astropy (Astronomical image processing), photutils (photometry), ccdproc (photometry for ccd cameras),
# run this to install the libraries necessary to use this notebook
!pip install numpy matplotlib astropy photutils ccdproc astroalign
Section 4: Image Calibration
Download your images Here, and get info about the images taken on the observing night Here. The first link is to the folder containing all of the 1 meter telescope images catagorized into folders by observing night. The second link is the observing logs that the person running the telescope makes while capturing the transit. These will give you a summary of all the images taken that night(exposure times, estimated seeing, any issues, target name, etc).
After you download the images, you will have something along the lines of:
- 20 bias frames, e.g., "Bias_2x2-0001"
- 20 flat frames, e.g., "Flat_R_2x2_0001"
- Some number of transit images, e.g., "KOI-13_LIGHT_R_3s_BIN2_-10C_001_20240519_222732_343_PA36.04" or "TOI2119b_R_2x2_correct-0011" depending on if the images were taken with Voyager or MaximDL
Ensure that both your transit images and your flat images contain the same filter, which should be red. This is indicated by the R in the names. The names of the transit images include the date and time the image was taken, but it is better to use the image metadata for this so your code works with images from any telescope and doesn't rely on a specific naming scheme.
Bias Frames¶
These are images taken with the smallest exposure time possible (0.01s at the YorkU observatory) and the shutter closed so there is no light. They will be used in the next section to correct for electric noise introduced during the readout process. They usually take about 20 of these when observing with the 1 meter because of the diminishing returns, but for exoplanet transits, you need very accurate noise removal, so the more you have, the better your noise correction. I recommend taking 50 before and 50 after the transit.
Flat Frames¶
These are images taken of a uniformly lit surface. At the YorkU observatory, they are taken with a lamp pointed at the telescope dome with the 1-meter telescope. With the 60cm telescope, we often take sky flats at twilight. They will be used in the next section to correct for the slightly different sensitivity of each pixel in the CCD camera. They also correct for any artifacts or dust in the optical path. Same deal for these as bias frames; although diminishing returns, the more you have, the better your noise correction. I found 50 before and 50 after the transit to work well.
Loading Bias Images¶
To load the images you probably want to split your images into 3 separate folders for Flat, Bias, and Transit images. If your using google colab you can upload these 3 folders to google drive to be accessible on google colab. You can then write a function that loads images from a given folder.
The first images you will work with are your Bias, so the below cobe block should be used to mount to your google drive(if using google colab) and make a function to load images. Load the bias images with the function you make.
Bias Combination¶
The next step is to combine all of your bias frames into a single image. You will use this to correct each of your flat frames and each of your transit frames. The code block below should be used to combine all of your bias frames with a tool like ccdproc.combine.
Loading Flat images¶
Your goal with the next block of code is to use the load_images_from_drive function to load your flats images that you uploaded to google drive. Apply it in the same way that the above code loads the bias images. You dont need to rewrite the function, just the part of the code that calls and uses the function to load the images.
Flat image correction¶
Once you have a combined bias image, and all of your flat images loaded, the next step is to use the bias image to correct each flat image. Using a for loop, the code block below should call each flat frame individually and subtracts the combined bias frame from it using ccdproc.subtract_bias or something alike. Once you have a list of bias subtracted flats, you want to normalize each frame by dividing by the median, then combine using median combination with the same function used to combine the bias images.
Normalize and Combine Flat Images¶
Now that your flat images have been bias subtracted, you have to normalize each frame by dividing by its mean, then you should combine them using the same library that was used to combine the bias images to make a single flat image.
Transit frame Flat and Bias Correction¶
Now that you have a combined bias, and a corrected and combined flat, we are going to correct each of the transit images with these frames using the same python libraries. Your goal in the block of code below is to use the load_images_from_drive to load your transit images and setup a for loop that loops through each image and uses ccdproc.subtract_bias followed by ccdproc.flat_correct to correct for flats and bias. You then want to save the images to your google drive or your computer drive depending on what your using. We do this because saving them in the system memory is not realistic if you have 1000 images unless you have a lot of RAM, and google colab only has 12-16Gb of RAM in the free version.
Background Subtraction and Alignment¶
Similar to your last block of code, setup a for loop and load in each of the images that you just saved to your drive one by one so that your not loading 1000 images into the system memory (you could even perform this in the previous block of code inside your for loop right after flat and bias correction). Background subtraction means making an estimation of the background noise/brightness in an image and subtracting it from your image. There are many different methods for making a model of the background to subtract. One tool I found to work well is the photutils.background Background2D with SExtractorBackground for the background estimator. This should only take 2 to 4 lines of code to do inside of your for loop. Your goal is to use the tool I mentioned (or some other method, there are likely many better ways) to make a model of the background for each image, then subtract this from the image.
Once you have your image background subtracted, directly after in the same for loop you then want to align the image. A common way to do this is to use the stars for alignment. Astroalign is a great tool for alignming your images, but there are many different ways. You can use a simple if statement to check whether the image your loading is the first image to skip alignment, then align all other images to the first image. One reccomendation I have is using a try-except block when aligning images. This is because A few of your images are always going to fail alignment for a number of reasons, and you dont want your code to stop running because of 1/1000 images failing to align.
Section 5: Aperture Test
The aperture test is for choosing an acceptable diameter to properly sum the total pixel brightness of each star. It involves increasing the aperture that you measure around the star so that it matches the star's size and doesn't include any extra background flux than needed, but still includes the entire star.
Reference stars are used to perform differential photometry (in the next section); by comparing the dips in brightness that both the transit and reference stars have in common, you can identify it as noise from Earth's atmosphere and remove it from your star's brightness curve.
You also need to identify which star is your transit star. First, get a finder chart from the Exoplanet Transit Database to help you find which star is yours. It's not necessarily the brightest or in the exact center of your image, so you need this to identify your star.
Once you have a list of your transit and your comparison stars, you can run an aperture test for each. The aperture test involves increasing the diameter of a circle centered on your star (from say 1 to 20), and taking the sum of all the pixels each time. You then plot the sum for each aperture. Your curve should look something like the image below. As you can see from the plot, an aperture around 5-7 would capture the whole transit star in this case while minimizing background noise.
So your goal in the code block below is to:
- Load the first transit image from your corrected and aligned images that you saved to your google drive.
- Find the stars (Maybe 15 brightest, Your transit star is likely amongst these if its a good transit) using one of the many tools available from photutils.detection. Save the positions and circle the stars in the image and display it so you can identify which is your transit star and which you will use as comparison stars. matplotlib.pyplot is a good tool for displaying your image and aperture test plots.
- Use photutils.aperture for the aperture test. Perform it on maybe the 15 brightest stars and plot the aperture vs pixel sum for each one. You can stop at around 15 pixel aperture as stars are going to be smaller than this. Your plots should look something like the plot above.
One way you can do this is to setup a for loop to go through the 15 brightest stars in the image, and a second for loop inside of the first one to loop through the apertures from 0-15 and sum the pixel count for each.
Section 5: Differential Photometry
Differential Photometry¶
This is the process of using the reference stars that you chose in the last section to remove common noise. The noise that the transit and reference stars have in common is mostly due to Earth's atmosphere, and we take advantage of that to remove this noise from the transit light curve. The simplest method is to just divide your transit star light curve by your comparison star curve. A much better method is to take the weighted average of several comparison stars and divide by this (this is the method I used). This is relatively simple and yields great results with a proper choice of comparison stars.
The first thing you want to do is create a function that will either extract the image number from a given image name, or the time the image was taken from the image metadata. You will use this inside of the for loop below so that you plot your transit in the order the imaegs were taken. If you have more than 999 transit images, the count in the name resets so you have to use the time the image was taken. You want to make sure you sort the data based on this with one of the many sorting algorithms.
In the block of code below:
Create a for loop to load each image in your corrected images folder one at a time and get the image number in the sequence or the time the image was taken (it wont necessarily load the images in order so we need to keep track of this for plotting the transit).
Create another for loop inside of the first for loop that goes through each star in your list of comparison and transit stars. You should sum the pixels inside the aperture with the same tool used in the aperture test. you want to end up with a list of stars and their aperture sums for each image.
You now want to perform Differential Photometry with your transit and comparison stars:
In the block of code below:
It may be a good idea to convert your list of fluxes to a numpy array for easier manipulation with numpy before doing this.
Calculate the weighted average of your comparison stars.
Divide the transit star by the weighted average of the comparison stars.
Plot The result- This is your exoplanet trasnit curve. Some examples of what it may look like are shown below (Good examples on the left, Bad on the right).
Below on the far left is an example of a transit of ToI-2119.01 b (50 flats, 100 bias), and in the middle-left is Hat-P-27 b (20 flats, 10 bias). On the middle-right is an example of Toi-1131.01 (20 flats, 10 bias) where there is only a 0.3% dip so it cannot be seen, and on the far right is KOI-13b where very slight cloud coverage, bad seeing, and no field derotation caused bad enough data that even the rigorous analysis described in this notebook was not enough to see any real transit. All were captured through the 1-meter telescope at York University.