nitpix - Calculates sea surface temperature from AVHRR data.

SYNOPSIS

nitpix  [ parameter=value ... ]  [ inputfile outputfile ]
nitpix  [ parameter=value ... ]  [ inputfile ... directory ]

Parameters are: sst_method, cos_sat_zen, ch4_delta, ch2_max, ch2_delta, ch3_minus_ch4, base_temp, temp_step, box_lines, box_samples, min_ch4_temp, min_sun_reflect, daytime, day_sun_elev, force_tests, nonlinear_sst.

DESCRIPTION

nitpix is an implementation of the MultiChannel Sea Surface Temperature (MCSST) algorithm (MClain et al., 1985). It also provides a variation of the MCSST algorithm as described by Bernstein (1982). See nitpix for details on the algorithms and a list of references.

nitpix is table-driven. It uses the ASCII data file nitpix.coef, the location of which is defined by the SATDATA environment variable. See this file for more information.

Brightness temperatures that contain contributions from land and clouds cannot be used to estimate sea surface temperature. To eliminate this data from the sea surface temperature algorithm, the following tests are utilized:

Within a box of user specified size (the default is 3 x 3) all sea surface and cloud-free data must satisfy the condition

        MAX ( avhrr_ch4 - center avhrr_ch4 ) < user specified value

In addition, daytime data passing the previous test must then satisfy

        MAX ( avhrr_ch2 - center avhrr_ch2 ) < user specified value

and

        CENTER (avhrr_ch2) < user specified value

Nighttime cloud-free data must also satisfy:

        AVERAGE (avhrr_ch3 - avhrr_ch4) > user specified value

The solar reflection angle should not be too small (no SUN GLINT condition)

        sun_reflection > min_sun_reflect   (user specified value)

ch4 brightness temperature should not be too small:

        CENTER (avhrr_ch4) > min_ch4_temp   (user specified value)

If a channel is missing (e.g., channel 2 at night) the corresponding test is skipped. If a cloud is detected, the pixel at the center of the box is set to bad_value.

Input and output of this function can be:

1) a list of input datasets followed by a directory

2) one input dataset, followed by one output dataset. In the first case, output datasets are named the same as the inputs and are placed in the output directory. For example, if input dataset is INDIR/zzz, and the output directory is OUTDIR, the output dataset is OUTDIR/zzz.

The input data are 16-bit, scaled, calibrated, AVHRR data produced via the avcal, lac, or gac functions. The data are unpacked with the following equations:

            Temperature (K) = 273.15 + (Scaled temperature)/100

            Temperature (C) =          (Scaled temperature)/100

            Albedo          =          (Scaled Albedo)/100

All input temperature data must have the same units and scaling. All user specified temperature limits are assumed to have the same units as the input data.

The output data are byte-scaled sea surface temperatures with the same units as the input dataset. The true temperature is reconstructed from the following equation:

            Temperature = base_temp + byte-scaled temp * temp_step

PARAMETERS

sst_method

Enter mc to compute MCSST's (using channels 4 and 5). Enter bz to compute sea surface temperature using Bernstein's variation (using channels 3 and 4). Enter tw to compute triple-window sst (using channels 3, 4 and 5). Bernstein's algorithm should only be used at night or in cases where sun glint is not a problem.

Valid responses are [mc, bz, tw]. The default is mc.

cos_sat_zen

Specifies the maximum satellite zenith angle by flagging data that have cos(satellite zenith angle) of less than cos_sat_zen as bad_value. Zenith angle is measured against vertical (See angles). If the satellite is directly overhead, the angle is zero and the cosine is 1.

The valid range is [0.0 to 1.0]. The default is 0.6.

ch4_delta

This is the user specified maximum value for the following test:

        MAX ( avhrr_ch4 - center avhrr_ch4 ) > user specified value

Within each box the absolute value of (each channel 4 value - the center channel 4 value) is computed. If it exceeds the user specified value, the data element is assumed to be cloudy.

The valid range is [positive numbers]. The default is 0.3. Units for this parameter are the same as the input temperature units.

ch2_max

This is the user specified maximum value for the following test;

        CENTER (avhrr_ch2) > user specified value

If, within each box, the center channel 2 value exceeds the user specified value, the data element is assumed to be cloudy. This test is only used for daytime data.

The valid range is [positive numbers]. The default is 3.0.

ch2_delta

This is the user specified maximum value for the following test:

        MAX ( avhrr_ch2 - center avhrr_ch2 ) > user specified value

Within each box the absolute value of (each channel 2 value - the center channel 2 value) is computed. If it exceeds the user specified value the pixel is assumed to be cloudy. This test is only used on daytime data.

The valid range is [positive numbers]. The default is 0.25.

ch3_minus_ch4

This is the user specified maximum value for the following test:

       AVERAGE ( avhrr_ch3 - avhrr_ch4 ) < user specified value

Within each box the average of (each channel 3 value - its corresponding channel 4 value) is computed. If it is less than the user specified value the pixel is assumed to be cloudy. This test is only used on nighttime data.

The valid range is [any number]. The default is 0.0. Units for this parameter are the same as the input temperature units.

base_temp

The base temperature used in scaling the real temperature values to 8-bit bytes. For example, if the scaling is with base_temp=10 and the temp_step=0.1, then 10.1 is stored as 1, 10.2 is stored as 2, ... and 35.5 is stored as 255. The bad_value is stored as 0 and is not mapped into 10.0.

The valid range is [any number]. The default is 0. Units for this parameter are the same as the input temperature units.

temp_step

The temperature increment for the 8-bit values. For example, the byte values 201 and 203 would differ in actual units by 2 * temp_step.

The valid range is [any number]. The default is 0.1. Units for this parameter are the same as the input temperature units.

box_lines

[ OPTIONAL ] This parameter specifies the number of lines (or height) in the cloud screening box.

Valid range is [1,2,3,4,5]. The default is 3. This parameter must be specified explicitly on the command line.

box_samples

[ OPTIONAL ] This parameter specifies the number of samples (or width) in the cloud screening box.

Valid range is [1,2,3,4,5]. The default is 3. This parameter must be specified explicitly on the command line.

min_sun_reflect

Minimum allowable solar reflection angle in degrees. Pixels with less than the minimum solar reflection angle will be classified as contaminated by sun glint and will not be used in further computations.

                        reflected    pixel
          satellite         sun      normal    sun
                 .             \       |       /
                    .           \      |      /
                       .   ref   \     |     /
                          .       \    |    /
                             .     \   |   /
                                .   \  |  /
                                   . \ | /
                                      \/

The default value is 0 degrees, which essentially negates the test. A value around 50 degrees would be a good starting point for those wishing to use this test.

min_ch4_temp

Minimum allowable channel 4 brightness temperature. Pixels with ch4 brightness temperature less than this minimum will be classified as covered by high cloud, and will not be used in further computations.

The default value is 0 degrees. Units for this parameter are the same as the input temperature units.

daytime

OPTIONAL. Enter find to find time of the day from the data. Enter day or night to force the day time to one of these values.

Valid responses are [find, day, night]. The default is find.

day_sun_elev

OPTIONAL. Used only if daytime=find. If the solar elevation angle at the center of the input data is less than day_sun_elev, then night is assumed. Otherwise, day is assumed.

Valid responses are in the range [-90, 90] degrees. The default is 6 degrees.

force_tests

OPTIONAL. Enter yes to run all possible tests, based on the channels present in the input data, regardless of day or night considerations. Enter no to run only the appropriate tests, based on day or night.

Valid responses are [yes, no]. The default is no.

nonlinear_sst

OPTIONAL. Enter yes to further process sea surface temperatures into NOAA NLSST's. Formulas for this conversion are satellite and sst_method specific, and are maintained in nitpix.coef. Enter no to skip this conversion.

Valid responses are [yes, no]. The default is no.

EXAMPLES

Estimate sea surface temperature for the TeraScan dataset named "big" using the MultiChannel Sea Surface Temperature Algorithm.

[1] % nitpix big2 mcsst.big
sst_method     : char( 2) ? [mc]
cos_sat_zen    : real     ? [0.6]
ch4_delta      : real     ? [0.3]
ch2_max        : real     ? [3]
ch2_delta      : real     ? [0.25]
ch3_minus_ch4  : real     ? [0]
base_temp      : real     ? [0]
temp_step      : real     ? [0.1]
min_sun_reflect: real     ? [50]
min_ch4_temp   : real     ? [0]

Estimate sea surface temperature for the TeraScan dataset named "big" using Bernstein's variation of the MultiChannel Sea Surface Temperature Algorithm.

[2] % nitpix big2 bernstein.big
sst_method     : char( 2) ? [mc] bz
cos_sat_zen    : real     ? [0.6]
ch4_delta      : real     ? [0.3]
ch2_max        : real     ? [3]
ch2_delta      : real     ? [0.25]
ch3_minus_ch4  : real     ? [0]
base_temp      : real     ? [0]
temp_step      : real     ? [0.1]
min_sun_reflect: real     ? [50]
min_ch4_temp   : real     ? [0]

SEE ALSO

avhrr, nitpix, avin, avcal, avfilt3, avfix, satvis.


Last Update: $Date: 1998/06/23 17:04:16 $