Challenge Overview
Project Overview
The Cassini spacecraft is orbiting Saturn in an extended mission to study the planet, its satellites and rings. In this challenge series, NASA via the Harvard IQSS NASA Tournament Lab is looking to the community to develop software that can automatically detect anomalies and features of interest in Saturn's rings. This contest forms part of the initial and important steps needed to prepare the images taken from the Cassini spacecraft for the anomaly detection software.
Competition Task Overview
In this contest, NASA is looking to you to develop code that can load a given image file, compute ring intercept geometry (code provided from previous assembly), align and subtract the intercept geometry from the image and save the resulting image. The resulting image will more clearly show possible anomalies in Saturn's rings. Code is provided that use parameters to create two 2-D arrays with the same dimensions as the image. One contains the value of the intercept radius in km at each pixel; the other contains the inertial longitude in degrees. These 2-D arrays are known as the backplane. The backplane does not always align correctly with the image, a pixel offset might exist (Horizontal and vertical shift). Your task is to find the best alignment and then subtract the rings in the image such that mostly non-ring objects remain. The resulting image should be saved for further processing during the Marathon Match.
You will be provided with:
- A comma delimited index file, which contains information about the images that should be converted. Detail of each column will be provided in the forums.
- Image files (.IMG) and label files (.LBL). The file format of these will be provided in the forums.
- Java source code that can calculate the backplane given the above information. You can modify and re-use the software as you like.
Your required tasks:
For each row in the index.tab file:
- Load the .IMG
- Calculate the backplane. (Given the parameters in the index file row, and the .LBL file.)
- Find the best fit pixel offset between the backplane and the loaded image. (Horizontal and Vertical alignment). Part of this challenge is for you to figure out how to measure and find the best alignment. Extra detail provided in the forums.
- Subtract Saturn's rings from the image by using the aligned backplane. (Tip: The mean Grey colour for a ring ( at a specific distance in km ) can be calculated from the image and then subtracted.)
- Save the resulting image as a new .IMG file with a new filename. (Append "_SUB" to the original filename).
- Save a new .LBL file, containing exactly the same data as before, except for the new .IMG file name in the "POINTERS TO DATA OBJECTS" section. (Append "_SUB" to the original filename).
- Save the resulting image as a .PNG file.
Your solution should be able to run from the command-line, with the index file given as argument.
Final Submission Guidelines
Below is an overview of the deliverables:
- Code for your solution. The supplied code of a previous assembly contest can be modified and used as a starting point.
- A solution with minimum or no external dependencies is preferred and will score more points. Using building and testing dependencies such as Maven, Ant, JUnit are ok.
- Detail tests are not required, however accuracy tests that illustrates that the software works correctly are required.
- A complete and detailed deployment document, explaining how to compile and execute your application including configuration information.