User's Guide

TASSELCP

Generates a tasseled cap image from either an MSS or TM image.

Function:

Generates a tasseled cap image from either a Landsat MSS or TM image. Because of the complexities involved with display and extraction of information contained in multispectral scanner data, a variety of approaches have been taken to combine multiple band responses into a lesser number of features which reduce the overall data volume and/or enhance the ability to extract particular types of scene class information. The tasseled cap transformations of MSS and TM data accomplish the above goals by providing linear combinations of the original sensor bands which respond primarily to particular physical scene class characteristics and capture considerably more of the total data variability (in scenes dominated by vegetation and soils) in one-half the original number of bands.

Parameters:

Subcommand -APPLY:
Applies the default coefficients. The coefficients, either default or user-specified, are applied to the given image to create bright, green, and wet bands.

IN
Input image. The Landsat MSS or TM image to be used in the calculations. The data type may be BYTE, INTEGER*2, INTEGER*4, or REAL*4. A window may be specified.

OUT
Output image. The output image consisting of bright, green, and/or wet bands determined by the BANDS parameter. The output data type is determined from the ODTYPE parameter.

BANDS(BRIGHT,GREEN,WET)
Output bands desired. Not all three bands need to be created. If desired, the bright band can be created alone, the bright band along with the green band can be created, or all three bands can be created.

PRINT(TERM)
Output destination. The destination of the output.

  = --:        No Report
  = TERM:      Terminal.  Output is sent to the
               user's terminal.
  = LP:        Line printer.  Output is sent to
               the printer defined by $PRINTER.
  = Filename:  User-supplied filename.  Output
               is sent to the user-supplied file
               with the extension ".prt".

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


  = SAME:  Same as input
  = BYTE:  BYTE      (8-bit unsigned integer)
                     (0 through 255)
  = I*2:   INTEGER*2 (16-bit signed integer)
                     (-32768 through 32767)
  = I*4:   INTEGER*4 (32-bit signed integer)
                     (-2147483648 through 2147483647)
  = R*4:   REAL*4    (32-bit signed real)
                     (System dependent)

BRIGHTCO(0.2909,0.2493,0.4806,0.5568,0.4438,0.1706)
Brightness coefficients. Brightness, a weighted sum of all six bands, is a measure of overall reflectance (e.g., differentiating dry from wet soils). The defaults are for Landsat 5 Thematic Mapper (TM) data. If Landsat 4 TM defaults are to be used, they are 0.3037, 0.2793, 0.4743, 0.5585, 0.5082, and 0.1863 .

GREENCO(-0.2728,-0.2174,-0.5508,0.7221,0.0733,-0.1648)
Greenness coefficients. Greenness is a contrast between near-infrared and visible reflectance and is thus a measure of the presence and density of green vegetation. The defaults are for Landsat 5 Thematic Mapper (TM) data. If Landsat 4 TM defaults are to be used, they are -0.2848, -0.2435, -0.5436, 0.7243, 0.0840, and -0.1800 .

WETCO(0.1446,0.1761,0.3322,0.3396,-0.6210,-0.4186)
Wetness coefficients. Wetness is a contrast between shortwave-infrared (SWIR) and visible/near-infrared (VNIR) reflectance, providing a measure of soil moisture content, vegetation density, and other scene class characteristics. The defaults are for Landsat 5 Thematic Mapper (TM) data. If Landsat 4 TM defaults are to be used, they are 0.1509, 0.1973, 0.3279, 0.3406, -0.7112, and -0.4572 .
Subcommand -CREATE:
Creates and applies coefficients. Given the values of the mean dry soil, wet soil, green vegetation, and dry vegetation, the user can calculate the brightness, greenness, and wetness coefficients. This subcommand also applies the calculated coefficients.

IN
Input image. The Landsat MSS or TM image to be used in the calculations. The data type may be BYTE, INTEGER*2, INTEGER*4, or REAL*4. A window may be specified.

OUT
Output image. The output image consisting of bright, green, and/or wet bands determined by the BANDS parameter. The output data type is determined from the ODTYPE parameter.

BANDS(BRIGHT,GREEN,WET)
Output bands desired. Not all three bands need to be created. If desired, the bright band can be created alone, the bright band along with the green band can be created, or all three bands can be created.

PRINT(TERM)
Output destination. The destination of the output.

  = --:        No Report
  = TERM:      Terminal.  Output is sent to the
               user's terminal.
  = LP:        Line printer.  Output is sent to
               the printer defined by $PRINTER.
  = Filename:  User-supplied filename.  Output
               is sent to the user-supplied file
               with the extension ".prt".

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


  = SAME:  Same as input
  = BYTE:  BYTE      (8-bit unsigned integer)
                     (0 through 255)
  = I*2:   INTEGER*2 (16-bit signed integer)
                     (-32768 through 32767)
  = I*4:   INTEGER*4 (32-bit signed integer)
                     (-2147483648 through 2147483647)
  = R*4:   REAL*4    (32-bit signed real)
                     (System dependent)

DRYSOIL(0.0,0.0,0.0,0.0,0.0,0.0)
Mean dry soil. The pixel value considered to be the mean value for dry or bright soil. It is used, along with the WETSOIL parameter, to calculate the brightness coefficients. In addition, it is used with GRNVEG to produce the greenness coefficients and with DRYVEG to produce the wetness coefficients.

WETSOIL(0.0,0.0,0.0,0.0,0.0,0.0)
Mean wet soil. The pixel value considered to be the mean value for wet or dark soil. It is used, along with the DRYSOIL parameter, to calculate the brightness coefficients.

GRNVEG(0.0,0.0,0.0,0.0,0.0,0.0)
Mean green vegetation. The pixel value considered to be the mean value for green vegetation. It is used, along with the DRYSOIL parameter, to calculate the greenness coefficients.

DRYVEG(0.0,0.0,0.0,0.0,0.0,0.0)
Mean dry vegetation. The pixel value considered to be the mean value for dry vegetation. It is used, along with the DRYSOIL parameter, to calculate the wetness coefficients.

Examples:

  1. LAS> tasselcp-create in=landsat5.mss out=tasselout.bgw bands=(bright,green,wet) print=term odtype=same drysoil=(125.0,100.0,240.0) wetsoil=(10.0,15.0,20.0) grnveg=(75.0,85.0,60.0) dryveg=(35.0,20.0,45.0)

    The DRYSOIL, WETSOIL, GRNVEG, and DRYVEG parameters are used to calculate the brightness, greenness, and wetness coefficients. Once the coefficients are generated, they are applied to the input image LANDSAT5.MSS to produce a three-band image TASSELOUT.BGW consisting of three bands considered to be bright, green, and wet bands. The data type is the same as the input image.

  2. LAS> tasselcp-apply in=landsat4.tm out=tasselout.bgw bands=(bright,green,wet) print=lp odtype=i*2 brightco=(0.3037,0.2793,0.4743,0.5585,0.5082,0.1863) greenco=(-0.2848,-0.2435,-0.5436,0.7243,0.0840,-0.1800) wetco=(0.1509,0.1973,0.3279,0.3406,-0.7112,-0.4572)

    The BRIGHTCO, GREENCO, and WETCO parameters are applied to the image LANDSAT4.TM, giving a three-band image TASSELOUT.BGW. A report is generated and written to the desired printer showing the parameter used along with the orthogonality. The output data type is INTEGER*2.

Description/Algorithm:

There are two subcommands, -CREATE and -APPLY, involved with the tasseled cap transformation module. If the brightness, greenness, and wetness coefficients are known, then the -APPLY subcommand should be run; otherwise, the user needs to supply pixel values from their particular image to the -CREATE subcommand. This subcommand generates the necessary coefficients and optionally applies them.

Within the -CREATE subcommand the following algorithm is applied:

  For the brightness coefficients:
  _______________________________

	 For all bands, 1 to N, do the following:
Step 1. BVALUE = SQRT(((DRYSOIL(BAND 1) - WETSOIL(BAND 1)) ** 2) +
                       (DRYSOIL(BAND 2) - WETSOIL(BAND 2)) ** 2) +
                                 .
                                 .
                                 .
                                 .
                       (DRYSOIL(BAND N) - WETSOIL(BAND N)) ** 2))
	   
Step 2. BRIGHTCO(BAND 1) = (DRYSOIL(BAND 1) - WETSOIL(BAND 1)) / BVALUE
        BRIGHTCO(BAND 2) = (DRYSOIL(BAND 2) - WETSOIL(BAND 2)) / BVALUE
                                      .
                                      .
                                      .
                                      .
        BRIGHTCO(BAND N) = (DRYSOIL(BAND N) - WETSOIL(BAND N)) / BVALUE


  For the greenness coefficients:
  ______________________________

	 For all bands, 1 to N, do the following:
Step 1. GVALUE=((GRNVEG(BAND 1) - DRYSOIL(BAND 1)) * BRIGHTCO(BAND 1) +
	        (GRNVEG(BAND 2) - DRYSOIL(BAND 2)) * BRIGHTCO(BAND 2) +
                          .
                          .
                          .
                          .
                (GRNVEG(BAND N) - DRYSOIL(BAND N)) * BRIGHTCO(BAND N))
	  
Step 2. GRNTEMP(BAND 1)=(GRNVEG(BAND 1) - DRYSOIL(BAND 1)) - (GVALUE *
                             BRIGHTCO(BAND 1))
        GRNTEMP(BAND 2)=(GRNVEG(BAND 2) - DRYSOIL(BAND 2)) - (GVALUE *
                             BRIGHTCO(BAND 2))
        GRNTEMP(BAND N)=(GRNVEG(BAND N) - DRYSOIL(BAND N)) - (GVALUE *
                             BRIGHTCO(BAND N))
Step 3. DIVVAL=SQRT((GRNTEMP(BAND 1) ** 2) + (GRNTEMP(BAND 2) ** 2) +
                    (GRNTEMP(BAND N) ** 2))
           GREENCO(BAND 1) = GRNTEMP(BAND 1) / DIVVAL
           GREENCO(BAND 2) = GRNTEMP(BAND 2) / DIVVAL
                                     .
                                     .
                                     .
                                     .
           GREENCO(BAND N) = GRNTEMP(BAND N) / DIVVAL


  For the wetness coefficients:
  ____________________________

	 For all bands, 1 to N, do the following:
Step 1. WVALUE(BAND 1) = DRYVEG(BAND 1) - DRYSOIL(BAND 1) 
        BTEMP = ((DRYVEG(BAND 1) - DRYSOIL(BAND 1) * BRIGHTCO(BAND 1))
        GTEMP = ((DRYVEG(BAND 1) - DRYSOIL(BAND 1) * GREENCO(BAND 1))

	WVALUE(BAND 2) = DRYVEG(BAND 2) - DRYSOIL(BAND 2) 
        BTEMP = BTEMP + (WVALUE(BAND 2) * BRIGHTCO(BAND 2))
        GTEMP = GTEMP + (WVALUE(BAND 2) * GREENCO(BAND 2))
                  . 
                  .
                  .
                  .
	WVALUE(BAND N) = DRYVEG(BAND N) - DRYSOIL(BAND N) 
        BTEMP = BTEMP + (WVALUE(BAND N) * BRIGHTCO(BAND N))
        GTEMP = GTEMP + (WVALUE(BAND N) * GREENCO(BAND N))
	   
Step 2. WVALUE(BAND 1)=WVALUE(BAND 1) - ((BTEMP * BRIGHTCO(BAND 1)) + 
                       (GTEMP * GREENCO(BAND 1)) 
        DIVVAL = WVALUE(BAND 1) * WVALUE(BAND 1)

	WVALUE(BAND 2)=WVALUE(BAND 2) - ((BTEMP * BRIGHTCO(BAND 2)) + 
                       (GTEMP * GREENCO(BAND 2)) 
        DIVVAL = DIVVAL + (WVALUE(BAND 2) * WVALUE(BAND 2))
                                  .
                                  .
                                  .
                                  .
	WVALUE(BAND N)=WVALUE(BAND N) - ((BTEMP * BRIGHTCO(BAND N)) + 
                       (GTEMP * GREENCO(BAND N)) 
        DIVVAL = DIVVAL + (WVALUE(BAND N) * WVALUE(BAND N))

Step 3. DIVVAL = SQRT(DIVVAL)
        WETCO(BAND 1) = WVALUE(BAND 1) / DIVVAL
        WETCO(BAND 2) = WVALUE(BAND 2) / DIVVAL
                .
                .
                .
                .
        WETCO(BAND N) = WVALUE(BAND N) / DIVVAL

   Where:
       DRYSOIL = Mean dry soil value for each band
       WETSOIL = Mean wet soil value for each band
       GRNVEG = Mean green vegetation value for each band
       DRYVEG = Mean senesced value for each band


     For the calculation of orthogonality:
     ____________________________________

Brightness/Greenness or BG
  BG = (BRIGHTCO(BAND 1) * GREENCO(BAND 1)) + (BRIGHTCO(BAND 2) *
        GREENCO(BAND 2)) + 
                                       .
                                       .
                                       .
                                       .  
                       +   GREENCO(BAND N)) * (BRIGHTCO(BAND N)  


Brightness/Wetness or BW
  BW = (BRIGHTCO(BAND 1) * WETCO(BAND 1)) + (BRIGHTCO(BAND 2) *
        WETCO(BAND 2)) +  
                                     .
                                     .
                                     .
                                     .
                         + WETCO(BAND N)) * (BRIGHTCO(BAND N) * 


Greenness/Wetness or GW
  GW = (GREENCO(BAND 1) * WETCO(BAND 1)) + (GREENCO(BAND 2) *
        WETCO(BAND 2)) + 
                                    .
                                    .
                                    .
                                    .
                         + WETCO(BAND N)) * (GREENCO(BAND N) * 

Within the -APPLY subcommand the following algorithm is applied to every image pixel:


	BRIGHTNESS = (BRIGHTCO(BAND 1) * PIXELVAL(BAND 1)) + 
                                 .
                                 .
                                 .
                                 .
                     (BRIGHTCO(BAND N) * PIXELVAL(BAND N))


        GREENNESS = (GREENCO(BAND 1) * PIXELVAL(BAND 1)) + 
                               .
                               .
                               .
                               .
                    (GREENCO(BAND N) * PIXELVAL(BAND N))


	WETNESS = (WETCO(BAND 1) * PIXELVAL(BAND 1)) + 
                           .
                           .
                           .
                           .
                  (WETCO(BAND N) * PIXELVAL(BAND N))
	
Reference:

R. D. Jackson, 1983. Spectral Indices in n-Space, Remote Sensing of
Environment, 13:409-421. 

Nonfatal Error Messages:

  1. [tasselcp-warn] Nonfatal error encountered

    A nonfatal error was encountered during processing. The image data is probably valid and is therefore saved. The message that is displayed immediately preceding this message is the specific error that was encountered from a library routine. Processing continues.

  2. [tasselcp-close] Error closing images

    An error occurred while trying to close the appropriate files. They may be left on disk even with the global $DELFLG being turned on.

  3. [tasselcp-minmax] Error updating the minmax information

    An error occurred in updating the DDR file with the minimum and maximum pixel values. The image data is saved.

Fatal Error Messages:

  1. [tasselcp-alloc] Error allocating dynamic memory

    An error occurred while trying to dynamically allocate buffer space.

  2. [tasselcp-fatal] Fatal error encountered

    A fatal error was encountered during processing. The output image is not deleted; however, it is probably not valid. The error message that is displayed immediately preceding this message is the specific error that was encountered.

  3. [tasselcp-openin] Error opening input image

    An error was encountered attempting to open the input image.

  4. [tasselcp-openout] Error opening output image

    An error was encountered attempting to open the output image.

  5. [tasselcp-images] Input images are of different sizes

    The images specified have a different number of lines and/or samples. Respecify by using the windowing option.

User Note:

  1. The calculations are based upon an image with six or less bands. Normally, this module is used to give brightness, greenness, and wetness bands from either Landsat MSS or TM data.