User's Guide

MSSCOLOR

Create a simulated natural color image from a MSS image.

Function:

MSSCOLOR extrapolates from all MSS channels to generate a blue band and a simulated natural color image. Landsat MSS contains green and red bands, but does not contain a blue band. Input MSS data must have been previously corrected for atmospheric haze. (See User Note 2.)

Parameters:

IN
Input image. The input image must contain four bands but may be windowed, subbanded, and of any data type. This algorithm was developed for haze corrected MSS imagery with satellite channels 4, 5, 6, and 7.

OUT
Output image. Name of the output simulated natural color image. The output image will have the same number of lines and samples as the input but will have 3 bands (for red, green, blue) instead of 4.

ODTYPE(SAME)
Output data type. The data type of the output image.

  = SAME: Same as input 
  = BYTE: Byte
  = I*2:  Integer*2
  = I*4:  Integer*4
  = R*4:  Real*4

Example:

  1. LAS> msscolor in=corrected out=niceone

    A simulated natural color image named NICEONE will be generated from the atmospherically corrected image, CORRECTED.

Description/Algorithm:

Landsat MSS includes channels with sensitivities in the green, red, and infrared portions of the wavelength spectrum. Channel 4 (0.5 to 0.6 micron) is green sensitive, channel 5 (0.6 to 0.7 micron) is red sensitive, and channels 6 and 7 (0.7 to 0.8 and 0.8 to 1.1) are infrared sensitive. Airborne sensors such as MSS often do not contain a blue channel because atmospheric haze often contaminates blue data. MSSCOLOR extrapolates from all MSS bands to create a blue band as part of a natural color image.

Using a ratio of MSS channels 5 and 6, the input pixel is classified as all vegetation, a mixture of vegetation and soil, all soil, or water. Based on this classification, various formulas are selected to compute the output image. The functions used to create the output image have a discontinuity where the ratio of channels 5 and 6 equals 1.5. At this discontinuity, a small change in input values (1 brightness value) can give large changes in output values (20 brightness values).

The algorithm includes the following calculations:

1. For each pixel, the ratio of channels 5 and 6 is first calculated: 

   if (chan6 == 0.0)
      ratio = chan5
   else
      ratio = chan5 / chan6

2. If (ratio < 0.56), the pixel is classified as vegetation and the 
   output values are calculated as follows:

   red   = 0.75  * chan5 
   green = 1.50  * chan4 
   blue  = 1.125 * chan4 - 0.1875 * chan6

3. If (0.56 <= ratio < 0.65), the output data is a weighted mixture of 
   the vegetation and soil calculations which appear in steps 2 and 4: 

   weight = (ratio - 0.56) / (0.65 - 0.56) 

   red    = weight * chan5 + (1.0 - weight) * 0.75 * chan5 
   green  = weight * 2.0 * chan4 + (1.0 - weight) * chan4  
   blue   = weight * 1.5 * chan4 - 0.25 * chan6 + 
	    (1.0 - weight) * 2.0 * chan4 - 
	    0.35 * chan5 - chan7 

   red   = red   * 0.75 
   green = green * 0.75
   blue  = blue  * 0.75  

4. If (0.65 <= ratio < 1.50), the pixel is classified as soil: 

   red   = 0.5625 * chan5
   green = 0.75   * chan4
   blue  = 0.75   * (2.0 * chan4 - 0.35 * chan5 - chan7)

5. If (1.50 <= ratio), the pixel is classified as water:

   red   = 0.75 * chan5
   green = 0.75 * chan4
   blue  = 0.75 * (2.0 * chan4 - chan5) 

Nonfatal Error Messages:

    None.

Fatal Error Messages:

  1. [msscolor-fatal] Fatal error encountered

    A fatal error was encountered. The message displayed preceding this message was the error encountered. Processing terminates.

  2. [msscolor-memory] Unable to allocate memory for <xxxxx>

    An error occurred attempting to dynamically allocate memory. Rerun, and if the error persists, contact the system administrator.

  3. [msscolor-nbands] IN does not have 4 bands

    The input image is required to have four bands as would correspond to MSS channels 4, 5, 6, and 7 in that order.

  4. [msscolor-window] Images specified by IN do not have the same window size

    The image components specified for IN must all have the same number of lines and samples.

User Notes:

  1. This algorithm was developed for haze corrected MSS imagery with satellite channels 4, 5, 6, and 7. The algorithm may be applicable to data from other sensors that approximate the spectral sensitivities of MSS. This general applicability has not been tested.

  2. "Dark object subtraction" is a simple atmospheric correction. This correction assumes that haze adds a uniform offset to each image band. To determine this "uniform offset", one could execute MINMAX or PIXCOUNT-NOBCKGRD and find the minimum brightness value for each band. Haze is more pronounced in visible data than in infrared; reasonable haze offsets are 20, 10, 4, and 3 for channels 4, 5, 6, and 7 respectively. The offsets can be subtracted out via MAP. Suppose for example that the user found an offset of 20 for channel 4 (image band 1). An suitable call to MAP would be:

    map in="mss(:1)" out=chan4 from=(0 20 255) to=(0 0 235)

  3. The algorithm for this routine was based on the MIPS (Mini Image Processing System) routine MSSBLUE. MIPS documentation is available from the USGS at Flagstaff, Arizona. These applications produce slightly different results because the MIPS routine rounds intermediate results to reduce processing time while MSSCOLOR does not.

  4. Look-up tables are utilized for byte images, reducing CPU time by approximately 40%.