The first definitive planet found around a Sun-like star was found by Didier Queloz and Michel Mayor, earning them the 2019 Nobel prize in Physics. Since that time, the number of known planets has grown exponentially large. Now, astronomers are moving beyond discovering planets to learning about their atmospheres. In this simulator you will be recovering spectra from exoplanet systems to understand what their atmospheres are made of.
The source code for this notebook is available at https://github.com/eas342/interactive_lc.
The webpage you are in is actually an app - much like the ones on your cellphone. This app has sliders that you will drag back and forth to better understand the science and concepts.
There is some code hidden behind the page to generate the plots. It is simpler to go through if you leave it off. However, if you wish to view the code, it can be toggled on/off with the button below.
# Text that follows a "#" is known as a comment.
# Comments can be used to describe what the cell's code is actually doing.
import lightcurve_slider # This loads the necessary code to for the whole notebook
lightcurve_slider.HTML('''<script>
code_show=true;
function code_toggle() {
if (code_show){
$('div.input').hide();
} else {
$('div.input').show();
}
code_show = !code_show
}
$( document ).ready(code_toggle);
</script>
<form action="javascript:code_toggle()"><input type="submit" value="Click here to toggle on/off the code that does the plotting."></form>''')
lightcurve_slider.practice_slider()
Finally, there will be some terminology used in this notebook. You can hover over the text for more information.
Let's start with an exoplanet transit lightcurve. This is a plot that shows how the brightness of a star + planet system changes with time as the planet goes in front of the star. The x axis is the time in hours the y axis is the brightness in percent. The time is shown relative to central transit, which is when the planet and star line up.
lightcurve_slider.lightcurve_slider(free_radius=False)
The next plot is another exoplanet transit lightcurve. Now, we have added a new variable, the planet radius. Here, we give the planet radius in Earth radii. The radius of the Earth is just under 4,000 miles.
lightcurve_slider.lightcurve_slider()
Now let's explore what happens if a planet has an atmosphere. Some colors of light (wavelengths) will pass through the atmosphere whereas some colors of light will get absorbed or scattered. You can notice this on our home planet during sunsets where blue light is scattered away by the atmosphere and red light passes through the atmosphere. From the perspective of space, the Earth looks slightly bigger at blue wavelengths than red. Let's look at what happens to the effective size of a planet at each color when you add an atmosphere to a planet. The slider below controls the thickness of the atmosphere in Earth radii. The x and y axes are effectively rulers to measure the size of the planet in Earth radii.
lightcurve_slider.scattering_slider(plots=['planet'])
The way astronomers visualize the above color picture of a planet is through a transmission spectrum. This is a plot of the size of the planet in Earth radii versus wavelength. The wavelength is measured in units of microns. A micron is one millionth of a meter. A typical width of a human hair is 75 microns (Smith 2002, Industrial Metrology)
lightcurve_slider.scattering_slider(plots=['planet','spectrum'])
Now that we have built some understanding of exoplanet transit lightcurves in Section 1 and Section 2, we'll examine them at different wavelengths. The lightcurve and planet radius can be different from one wavelength to the next because some light passes through the atmosphere while other light is absorbed. You will now examine the lightcurve for different colors with a variable for the thickness of an atmosphere in Earth radii.
lightcurve_slider.scattering_slider(plots=['planet','spectrum','lightcurve'])
Now that we have a feeling for how transmission spectra work, let's consider different types of models. The atmospheric sizes have been made larger than reality to make them easier to see.
The following atmospheric model contains water vapor. The molecules of water will vibrate and rotate at some wavelengths better than others so the planet looks bigger at those wavelengths near 2.6 microns.
lightcurve_slider.example_spectra(atmospheres=['H2O'])
The following atmospheric model contains methane. Like water, the molecules of methane will vibrate and rotate at some wavelengths better than other. However, methane is has a different configuration of atoms so the planet looks bigger at near 3.4 microns.
lightcurve_slider.example_spectra(atmospheres=['CH4'])
Carbon dioxide is yet another configuration of molecules with two oxygen atoms on opposite sides of the carbon. The symmetry of the molecule means that there are only a few ways to vibrate carbon dioxide. This planet will look bigger at 2.8 microns and 4.4 microns but smaller at most other wavelengths.
lightcurve_slider.example_spectra(atmospheres=['CO2'])
If a planet has no atmosphere, all wavelengths will reach the ground. An airless planet will therefore look the same size at all wavelengths.
lightcurve_slider.example_spectra(atmospheres=['No Atmosphere'])
You are now playing the role of an astronomer. You measure the lightcurve of a planet at different wavelengths and this is shown below as a scattering of points at each color. You will need to figure out what the radius of the planet (in Earth radii) is for that wavelength.
lightcurve_slider.transmission_spec_slider(mysteryNum=1)
Now you have found a transmission spectrum of the planet that best matches the data.
lightcurve_slider.example_spectra()
lightcurve_slider.transmission_spec_slider(mysteryNum=2)
Now you have found a transmission spectrum of the planet that best matches the data.
lightcurve_slider.example_spectra()
lightcurve_slider.transmission_spec_slider(mysteryNum=3)
Now you have found a transmission spectrum of the planet that best matches the data.
lightcurve_slider.example_spectra()
lightcurve_slider.transmission_spec_slider(mysteryNum=4)
Now you have found a transmission spectrum of the planet that best matches the data.
lightcurve_slider.example_spectra()
Congratulations! You are now figuring out what planet atmospheres are made of or if a planet lacks an atmosphere. In real atmospheres, we will get a mix of molecules that can tell us about the planets' chemistry and someday even help us find life elsewhere in the Universe. Astronomers are exploring real planet atmospheres with current and future telescopes such as the James Webb Space Telescope. You can read about the Webb Telescope and see Images of it at jwst.nasa.gov/.