The Kuiper belt is a ring of bodies in our Solar System that extends beyond the orbit of Neptune — the eight planet from the Sun. Pluto — the ninth planet from the Sun — was the first object to be discovered in the Kuiper belt. Correction, ex-planet, because in 2005 the International Astronomical Union (IAU) officially downgraded it to the status of dwarf planet.

Both the discovery of Pluto and its cancellation as a planet are due to the blink comparator1, a viewing apparatus used by astronomers to find differences between two photographs of the night sky. It permits rapidly switching from viewing one photograph to viewing the other, "blinking" back and forth between the two taken of the same area of the sky at different times. This allows to more easily spot objects in the night sky that changed position. In photographs taken a few days apart, rapidly moving objects such as asteroids, comets and planets stand out because they are jumping back and forth between two positions, while all the other fixed stars stand still. This also relates to the fact that the term planet is derived from the Greek πλανήτης (planētēs), which itself goes back to πλανὰομαι (planáomai), meaning wandering. The animation below shows an example of a blink comparator that switches back and forth between two images taken by Clyde Tombaugh on January 23 and 29, 1930 at the Lowell Observatory. Note that he marked his discovery of Pluto with arrows.

blink comparator:Pluto
Photographs of the night sky taken by Clyde Tombaugh at the Lowell Observatory on January 23 and 29, 1930. The position of Pluto is marked in both photographs using an arrow.

Michael E. Brown2, a professor of planetary astronomy at the California Institute of Technology (Caltech), has refined the idea of the blink comparator by learning a computer how to compare the photographs with each other. This way his team has discovered many trans-Neptunian objects, most notably, the dwarf planets Eris in the Kuiper belt and Sedna in the Oort cloud.

Brown had actually set himself as a target to discover a tenth planet in our Solar System, but ironically he did not increment but decrement the planet counter by one. The fact that Eris turned out to be 27% more massive than Pluto, led the IAU to define the term "planet" formally for the first time. This definition excluded Pluto and reclassified it as a member of the "dwarf planet" category. His twitter handle shows that Michael Brown has fully embraced the plutokiller nickname in the meantime.

plutokiller
Tweet3 by Michael E. Brown (July 14, 2015).

Michael Brown published his memoirs about how he became responsible for the reclassification of Pluto from planet to dwarf planet in a 2010 book entitled How I Killed Pluto and Why It Had It Coming4.

Assignment

In this assignment we will process text files containing photographs of the night sky. A photograph has $$m$$ lines containing $$n$$ characters each, and thus represents an $$m \times n$$ grid of characters. The grid contains a dash (-) at positions where no star was observed in the photograph, and an asterisk (*) at positions where a star was observed in the photograph. If we index the rows of the grid from top to bottom, and the columns from left to right, we can represent the position of each star as a tuple $$(r, k)$$ containing its row index $$r$$ (int) and column index $$k$$ (int).

----------*-
----*-----*-
----*-------
------------
------------
-*---*------
*-----*-*---
-**---------
----*-*-----
------*-*---
*------**-*-

The above example shows two photographs taken a few days apart of the same area of the sky at different times, where one photographs covers the other. Click here to simulate a switch comparator that allows to switch between both photographs. Do you see the moving stars that we have highlighted in bold face? These are our candidate planets. The goal of this assignment is to automatically find these candidate planets using a computer. This is done in the following way:

All functions that take the locations of two text files containing photographs of the night sky may assume that both photographs have the same size (same number of rows and columns) without having to check this explicitly.

Example

The following interactive session assumes that the text files photo1.txt5 and photo2.txt6 are located in the current directory.

>>> coordinates('photo1.txt7')
{(10, 8), (5, 5), (6, 8), (6, 6), (7, 1), (10, 7), (9, 8), (10, 10), (6, 0), (1, 4), (0, 10), (1, 10), (5, 1), (8, 6), (10, 0), (9, 6), (2, 4), (7, 2), (8, 4)}
>>> coordinates('photo2.txt8')
{(10, 8), (4, 7), (6, 8), (7, 1), (10, 7), (10, 10), (9, 8), (6, 0), (0, 7), (1, 4), (7, 7), (8, 7), (1, 10), (5, 1), (10, 0), (9, 6), (2, 4), (7, 2), (8, 4)}

>>> divergence('photo1.txt9', 'photo2.txt10')
({(8, 6), (5, 5), (0, 10), (6, 6)}, {(4, 7), (7, 7), (0, 7), (8, 7)})

>>> planets('photo1.txt11', 'photo2.txt12')
{(4, 7): {(5, 5), (6, 6)}, (8, 7): {(8, 6)}, (7, 7): {(8, 6), (6, 6)}, (0, 7): {(0, 10)}}

>>> print(comparator('photo1.txt13', 'photo2.txt14'))
-------n--o-
----*-----*-
----*-------
------------
-------n----
-*---o------
*-----o-*---
-**----n----
----*-on----
------*-*---
*------**-*-

If we put the two photographs from the above example on top of each other, we obtain the result that is graphically represented in the figure below. The dictionary returned by the function planets represents a mapping that has been indicated using blue arrows.

star map
This is the result obtained if the two photographs from the example are put on top of each other. The dictionary returned by the function planets represents the mapping that is indicated by the blue arrows.

Epilogue

This assignment first appeared during an examination on January 20, 2016. Coincidence or not, but on the very same day The Astronomical Journal published an article15 in which Michael E. Brown and his colleague Konstantin Batygin from the California Institute of Technology predict the location where a new planet must be located at the outskirts of our Solar System.

Now, Brown and Batygin need earthbound witnesses to confirm that Planet 9 exists. Just as Neptune was originally inferred by wobbles spotted in Uranus's orbit, the existence of Planet 9 can be inferred by the aligned Kuiper Belt objects. But without a verifiable observation, it's still a theoretical discovery. The pair are hoping to crowdsource that job, getting as many telescopes looking as possible across the globe. They've made the challenge easier by mapping Planet 9's orbit; now skywatchers have to pinpoint where it is on that very long path.

New Horizons:Plut
This photo of Pluto was made during the New Horizons spacecraft's historic flyby of the dwarf planet in July 2015. New Horizons is now sailing into the Kuiper Belt for a rendezvous with another small world. (source: Time Magazine16, best space photo 2015)

The name of the planet will be crowd-sourced too, if the researchers get their way — as opposed to being proposed by the discoverer and then approved by the International Astronomical Union (IAU), which is the usual way of doing things. Brown's and Batygin's personal name preference is "George", a hat-tip to British astronomer William Herschel, who discovered Uranus and wanted to name it Georgium Sidus (the Georgian Planet) after King George III. That might be a hard sell to the IAU — to say nothing of nearly all other stargazers, who tend to like a little more lyricism in their cosmos.

Whatever the planet is eventually called, its very existence will do more than simply add to the population of the solar system. It will also add to its mystery. Even in our tiny corner of the universe, it seems, there can still be big surprises lurking.

Epilogue

Illinois considers Pluto a planet.17