The Yerkes Image Processor is a python based program that combines 3 FITS images into a colored RGB image and can link up with SAO DS9 for simple image alignment. With this processor, we are stressing simplicity and flexibility. There are other products, such as Salsa J, MIRA or PixInsight, if someone is looking for an image processor with higher end functions. Here is the Image Processor User's Manual. For automatic data reduction we have developed the Image Pipeline.
Goal:
To create an easy to use program for creating colored JPEG's from FITS images.
- Turn the python program into a Windows .exe file (Alex)
- Start without numdisplay (Alex)
- Create different scaling functions for more aesthetically pleasing and more scientifically accurate images (Becca)
- Create a smoothing function to reduce noise and remove bad pixels (Lily)
- Create User's Manual (Lily and Alex)
Ideas / Questions / Requests:
- Program needs to be faster, maybe what is slow is sorting (idea: make sort on lower resolution image)
- Idea: filter for bad pixels
- In addition to having a downloadable version of the program, could we possibly offer a browser based version as well?
- Have one flat for each color image
- Option for having clear image (to use as luminance)
- Adjust dark exposure time to match exposure time of each image (if different images have different exposure times)
- Scaling for each color (could also do real relative scaling based on exposure time)
- The resulting JPEG does not display itself in the current .exe programs. (fixed)
- The program should be able to start without numdisplay and print an error message (fixed)
- The program produces several error messages on Windows 7
- The program seems to corrupt the original image files after being selected multiple times.
- Windows version does not currently interact with DS9.
- The smoothing function was created to remove bad pixels and all together 'clean up' the images being used by the Image Processor. The function can be accessed below under the heading 'smoothing1f.py'. This function works by taking the data from the image and creating an array out of the data. The program then creates an two more arrays. One of these arrays is an composed of zeros in the shape of a 5x5 square of pixels, while the other is composed of zeros in the same shape as the original array of data [examples: medianarray=zeros((5,5)) and cessorarray=zeros(dataarray.shape) ]. The function then subtracts the minimum values from the original data array. It then runs a loop over the remaining pixels, excluding the pixels at the edge of the image. The loop takes the data from a square box around a central pixel (medianarray=dataarray[column-1:column+2,row-1:row+2]). It then replaces the data of the central pixel with the median of the data around the central pixel. The loop then moves on to the next pixel, and so on. In this way, the function removes any 'bad' pixels and makes the images less 'fuzzy'.
- There were two other candidates for the smoothing function. One of these took a larger 'box' of data from around the central pixel, while the other replaced the data with the average of the 'box' instead of the median. The current function was by far superior to these others, which could leave bad pixels untouched or destroy parts of the image instead of making it less 'fuzzy'.
- This is an example of a cleaned image, as opposed to an uncleaned image (you can click on the image to make it bigger):