This last assignment is for the physics crowd. Their search for planets around stars other than our own is a young and exciting field of astronomy. One of the primary tools is the Kepler probe currently in space. It detects planets around other stars by staring continuously at the exact same region of space. If a planet transits in front of a star (i.e. it passes between the telescope and the star), the star's brightness will ever so slightly decrease. If this dimming is detected at regular intervals, it is safe to assume that it is caused by a transiting planet.
Kepler tracks about 100.000 stars, and in the image above there are actually 4.5 million stars. The analysis of this much data can only be done by computers. In this assignment we will write a program that attempts to find a planet.
You are given 24 files, each representing the average of an hour of observation. We want you to write a Java program that finds out which pixels change. You can write your tool however you want, but you must follow the usual Java conventions, and you should write sensible code. You may use as many classes and/or methods as you wish. It is important to come up with a decent structure to solve this problem. I solved the problem in one class, with 5 methods.
Your tool should write an image file that puts a little red rectangle around the stars that have planet candidates around them. It should also output in some fashion (either as file, or on the terminal), for every pixel that changes, the brightness for every frame. Make a plot of the brightness of every pixel that changes. This will allow us to see the transit of a planet in front of a star.
Submit the image produced by your tool, and the plots for the brightness. You should also submit your Java program and a description of how it works.
HashSet). Make sure you don't store pixels multiple times.