Skip to content
This repository has been archived by the owner. It is now read-only.
LINT (Longitudinal Investigation of Non-Transparency): using flats from CCDs to find the amount of dust, debris, or other contamination present on a sensor's surface.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Longitudinal Investigation of Non-Transparency (LINT): using flats from CCDs to find the amount of dust, debris, or other contamination present on a sensor's surface. This program uses flats from CCDs to find the amount of dust, debris, or other contamination present on a sensor's surface.

The code will:

  • Load flats (fits).
  • Subtract overscan and mask overscan regions (if overscanSubtractBOOL is "True").
  • Scale the flats to a common mean.
  • Stack the flats using a median.
  • Subtract the average sky value.
  • Multiply the values by -1 to make to make attenuation spots appear positive to photometry code.
  • Run Source Extractor on the image to detect the debris.
  • Print a detailed map of the debris locations.
  • Analyze and plot histograms showing the amount of contamination.
  • Batch process data to show the accumulation of debris over time.

Programs, packages, and wrappers:

  • Interpreter: python 3
  • PyDev:
  • Numpy: 1.11.0
  • Astropy: 1.3
  • Python-dev: python-dev 2.7.5-5ubuntu3
  • Eclipse: eclipse-platform 3.8.1-5.1
  • SExtractor: 2.19.5-2
  • Matplotlib: 1.5.1-1ubuntu1



  • Test for issues with your astropy installation.


  • Load fits files image data into a 3D array.
  • Saves data to a fits file.
  • Makes a directory for output products and move output products into it.
  • Scans the images to insure that they are all the same size dimensionally.


  • Load LINT.config.


  • Subtract and remove overscan (if overscanSubtractBOOL bool is true).


  • Scales the images using a common mean (find the mean of all of the data and scale the data so that every image has that same baseline mean).
  • Stack the images, using a median, into a single flat field image (median the images: meaning that the resulting value in a pixel in the final image is the median of the values in that same pixel in the input images).


  • Subtracts the average sky value from the median stacked image.


  • Call SExtractor and send commands to process the stacked and inverted image.
  • Record the output from SExtractor.


  • Performs cuts to remove objects that are not debris.
    • Flags: no gremlins in photometry.
    • Flux: only want divots in original image.
    • SNR: signal to noise ratio. Calculate the signal-to-noise ratio as FLUX_ISO / FLUXERR_ISO, that is, the isophotal flux (photometry derived from the counts above the threshold minus the background) divided by the RMS error for the isophotal flux; in other words, the signal divided by the noise.
    • FWHM: Full Width at Half Maximum. Very small values may be anomalous and not represent debris.
  • Make histograms of:
    • Area of debris.
    • Debris versus clean area.


  • Create a list that groups the fits files by date.
  • Run LINT on pre-grouped (by date) fits files.
  • Plot the debris accumulation over time as: scatter plot.

To do:

  • Add logger.
  • Add help command in optional arguments.
  • Check to see if dependencies are installed.
  • Mask bad pixel columns.
  • Test installation code.

This research makes use of:

  • Astropy, a community-developed core Python package for Astronomy (Astropy Collaboration, 2013).
  • Bertin, E. & Arnouts, S. 1996: SExtractor: Software for source extraction, Astronomy & Astrophysics Supplement 317, 393
  • PyDev for Eclipse Fabio Zadrozny
  • Hunter, J. D. Matplotlib: A 2D graphics environment. 2007
You can’t perform that action at this time.