Finding the Ingredients of Other Worlds

By Everett Schlawin and the NSF OIR Lab's Teen Astronomy Cafe Team

Version 0.91

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.

How to Use This Webpage

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.

In [1]:
# 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>''')
Loading BokehJS ...
Out[1]:
Adjust the slider below to 5.0.
In [2]:
lightcurve_slider.practice_slider()
Hover your cursor over the green text below.

Finally, there will be some terminology used in this notebook. You can hover over the text for more information.

1. Introduction: Planet Lightcurves

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.

Drag the slider to change the time.
Watch what happens to the brigthness (Lightcurve) and the planet crossing the star (Star View)
In [3]:
lightcurve_slider.lightcurve_slider(free_radius=False)
When does the brightness change? Why do you think it is 100% at the beginning and end?

2. Planet Radius

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.

Drag the slider for the Radius to see how it affects the lightcurve and view of the star and planet.
Drag the Time slider to a different position to see how it affects the geometry there.
In [4]:
lightcurve_slider.lightcurve_slider()
Does increasing the planet radius make the dip deeper or shallower?
How does the planet radius affect when the brightness starts to drop below 100%?

3. A Planet Spectrum

Planet Size in Different Colors

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.

Drag the slider to change the atmospheric thickness.
In [5]:
lightcurve_slider.scattering_slider(plots=['planet'])
At which color does the planet appear biggest?
How could you tell if a planet has an atmosphere?

A Spectrum Plot

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)

Drag the slider to change the atmospheric thickness.
In [6]:
lightcurve_slider.scattering_slider(plots=['planet','spectrum'])
How would you describe the spectrum when the slope of this line is zero?
How would you describe the atmosphere when the slope of this line is zero?

A Multi-Colored Lightcurve

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.

Drag the slider to change the atmospheric thickness.
In [7]:
lightcurve_slider.scattering_slider(plots=['planet','spectrum','lightcurve'])
What kind of measurement could you make to find out if a planet has an atmosphere?

4. Example Planet Atmospheres

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.

A water vapor atmosphere

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.

Inspect the spectrum below.
In [8]:
lightcurve_slider.example_spectra(atmospheres=['H2O'])

A methane atmosphere

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.

Inspect the spectrum below.
In [9]:
lightcurve_slider.example_spectra(atmospheres=['CH4'])

A Carbon Dioxide Atmosphere

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.

Inspect the spectrum below.
In [10]:
lightcurve_slider.example_spectra(atmospheres=['CO2'])

No Atmosphere

If a planet has no atmosphere, all wavelengths will reach the ground. An airless planet will therefore look the same size at all wavelengths.

Inspect the spectrum below.
In [11]:
lightcurve_slider.example_spectra(atmospheres=['No Atmosphere'])
At which level (in Earth radii) do you think a spacecraft would reach the ground for these planets?

5. Mystery Planet Atmospheres

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.

Mystery Planet 1

Drag the sliders to make the lines match the points of each color, forming lines of best fit.
In [12]:
lightcurve_slider.transmission_spec_slider(mysteryNum=1)

Now you have found a transmission spectrum of the planet that best matches the data.

In [13]:
lightcurve_slider.example_spectra()
Compare your transmission spectrum to the models. What kind of atmosphere did you find?

Mystery Planet 2

Drag the sliders to make the lines match the points of each color, forming lines of best fit.
In [14]:
lightcurve_slider.transmission_spec_slider(mysteryNum=2)

Now you have found a transmission spectrum of the planet that best matches the data.

In [15]:
lightcurve_slider.example_spectra()
Compare your transmission spectrum to the models. What kind of atmosphere did you find?

Mystery Planet 3

Drag the sliders to make the lines match the points of each color, forming lines of best fit.
In [16]:
lightcurve_slider.transmission_spec_slider(mysteryNum=3)

Now you have found a transmission spectrum of the planet that best matches the data.

In [17]:
lightcurve_slider.example_spectra()
Compare your transmission spectrum to the models. What kind of atmosphere did you find?

Mystery Planet 4

Drag the sliders to make the lines match the points of each color, forming lines of best fit.
In [18]:
lightcurve_slider.transmission_spec_slider(mysteryNum=4)

Now you have found a transmission spectrum of the planet that best matches the data.

In [19]:
lightcurve_slider.example_spectra()
Compare your transmission spectrum to the models. What kind of atmosphere did you find?

6. Conclusions

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/.

If you are doing this for a class, turn in your answers to the yellow questions. If you are doing it for fun, you're done!
In [ ]: