NASA Logo
Transition of MODIS SST Processing to the OBPG

Transition of MODIS SST Processing to the OBPG

Bryan Franz
NASA Ocean Biology Processing Group
17 February 2006

Generation of the Sea Surface Temperature (SST) products from the MODIS sensors has historically been performed using software developed by the Rosenstiel School of Marine and Atmospheric Science (RSMAS) at the University of Miami. The RSMAS software is known formally as PGE10, and informally as modsst. In the future, processing and distribution of the MODIS SST products will be performed by the Ocean Biology Processing Group (OBPG). The OBPG will generate the Level-2 SST products using the Multi-Sensor Level-1 to Level-2 software (msl12), which is the same software used to generate the MODIS ocean color products. The use of common software simplifies integration of SST processing into the OBPG processing system, and also minimizes software maintenance costs. The immediate goal is to transfer all current SST processing logic from modsst into msl12. To this end, the latest available version of modsst and several past versions were examined, and the required algorithms were implemented into msl12. The impementation was then verified through comparison with standard archive products from the most recently available MODIS/Aqua reprocessing (MODAPS/DAAC Collection 4). A description of the algorithms as determined from analysis of the RSMAS code is provided in this document. Recent modifications are specifically identified, as these are not reflected in the current archive products used for verification. Details of the implemention within msl12 are provided, and comparisons between the msl12 and modsst processing results are shown.

The short-wave SST algorithm makes use of MODIS bands 22 and 23 at 3.959 amd 4.050 um. The brightness temperatures are derived from the observed radiances by inversion (in log space) of a the radiance versus blackbody temperature relationship. For msl12, these relationships were precomputed for the spectral response of each MODIS channel, and the tables were then stored in HDF files to be loaded at run-time. In modsst, the radiance versus blackbody temperature relationship was computed at run-time. The algorithm for computing short-wave SST (sst4) from observed brightness temperatures is shown below.

sst4 = a0 + a1*BT39 + a2*dBT + a3*(1.0/mu-1.0)

where:

dBT = BT39 - BT40
BT39 = brightness temperature at 3.959 um, in deg-C
BT40 = brightness temperature at 4.050 um, in deg-C
mu = cosine of sensor zenith angle

The coefficients a0, a1, a2, and a3 are derived and continuously verified by RSMAS based on match-ups between the satellite retrievals of brightness temperature and field measurements of sea surface temperature. As currently implemented, these coefficients can be time-dependent. The coefficients are provided to msl12 through external files, which are in a columnated ascii format of "sensor start-date end-date a0 a1 a2 a3". A link to the MODIS/Aqua file is here, and the MODIS/Terra file is here.

The short-wave infrared bands near 4um are affected by bright reflective sources such as sun glint. Due to such contamination, the short-wave SST product is not considered valid for daytime use.

The long-wave SST algorithm makes use of MODIS bands 31 and 32 at 11 amd 12 um. The brightness temperatures are derived from the observed radiances by inversion (in linear space) of the radiance versus blackbody temperature relationship. For msl12, these relationships were precomputed for the spectral response of each MODIS channel, and the tables were then stored in HDF files to be loaded at run-time. In modsst, the radiance versus blackbody temperature relationship was computed at run-time. The nonlinear SST algorithm was tuned for two different regimes based on brightness temperature difference. The algorithm for computing long-wave SST (sst) from observed brightness temperatures is shown below.

dBT <= 0.5
sst = a00 + a01*BT11 + a02*dBT*bsst + a03*dBT*(1.0/mu-1.0)

dBT >= 0.9

sst = a10 + a11*BT11 + a12*dBT*bsst + a13*dBT*(1.0/mu-1.0)

0.5 < dBt < 0.9

sstlo = a00 + a01*BT11 + a02*dBT*bsst + a03*dBT*(1.0/mu-1.0)
ssthi = a10 + a11*BT11 + a12*dBT*bsst + a13*dBT*(1.0/mu-1.0)
sst = sstlo + (dBT-0.5)/(0.9-0.5)*(ssthi-sstlo)

where:

dBT = BT11 - BT12
BT11 = brightness temperature at 11 um, in deg-C
BT12 = brightness temperature at 12 um, in deg-C
bsst = baseline SST, which is either sst4 (if valid) or sstref (from oisst)
mu = cosine of sensor zenith angle

At night, where sst4 retrieval is reliable, the algorithm uses sst4 for the bsst value. For daytime SST, the algorithm uses a reference SST source (sstref) for bsst, where sstref is operationally derived from the weekly Reynolds oisst product, bilinearly interpolated to the pixel location. The coefficients a00, a01, a02, and a03 and a10, a11, a12, and a13 are derived and continuously verified by RSMAS based on match-ups between the satellite retrievals of brightness temperature and field measurements of sea surface temperature. As currently implemented, these coefficients can be time-dependent. The coefficients are provided to msl12 through external files, which are in a columnated ascii format of "sensor start-date end-date ai0 ai1 ai2 ai3", with each pair of lines corresponding to low and high dBT difference cases, respectively. A link to the MODIS/Aqua file is here, and the MODIS/Terra file is here.

For the MODIS instrument on Terra, the retrieved long-wave SST is further augmented by a time-dependent, mirror-side specific bias. The adjustment varies from -0.2 deg-C to 0.1 deg-C over the mission lifespan, and it is applied to mirror-side 1 only. The mirror-side correction was developed by RSMAS, and the tabulated values are available here.

The msl12 code was already capable of generating standard MODIS long-wave SST products. The primary change associated with this effort is the update of algorithm coefficients for MODIS instrument on Terra. Previous versions of msl12 did not have support for the time-dependence or the mirror-side correction. These changes were recently implemented on modsst, in preparation for Terra collection 5 processing. The MODIS/Aqua coefficients have not changed in several years.

A series of quality tests are performed for each sst or sst4 retrieval. The quality tests are used by modsst to set the quality levels, which are then used to control the binning process. For the msl12 implementation, each quality test was assigned a bit in a product-specific flag array. A separate, 16-bit flag product was created for both the short-wave (sst4) and long-wave (sst) products (flags_sst4 and flags_sst, respectively). The 16 flag bits were assigned as follows:

Bit Name Description 00 ISMASKED Pixel was aready masked 01 BTBAD Brightness temperatures are bad 02 BTRANGE Brightness temperatures are out-of-range 03 BTDIFF Brightness temperatures are too different 04 SSTRANGE SST outside valid range 05 SSTREFDIFF SST is too different from reference 06 SST4DIFF Longwave SST is different from shortwave SST 07 SST4VDIFF Longwave SST is very different from shortwave SST 08 BTNONUNIF Brightness temperatures are spatially non-uniform 09 BTVNONUNIF Brightness temperatures are very spatially non-uniform 10 BT4REFDIFF Brightness temperatures differ from reference 11 REDNONUNIF Red-band spatial non-uniformity or saturation 12 HISENZ Sensor zenith angle high 13 VHISENZ Sensor zenith angle very high 14 Spare Spare 15 Spare Spare

The quality tests described above are used by modsst to set quality levels between 0 and 3, where 0 indicates best quality. This same concept was implemented in msl12, primarily to allow for comparison with the modsst-derived quality and thus verify implementation of the quality tests. The quality level determination varies between day and night conditions, and between the short-wave and long-wave SST products. The following tables show the quality test bits and associated quality levels. If no bits are set then the quality level is 0, but for short-wave SST retrievals in daylight the quality level is always set to 3 (bad). The quality level information for each SST product, sst and sst4, can now be output by msl12 as products qual_sst and qual_sst4, respectively.

Daytime Long-Wave SST

Quality Bit Minimum Quality Level
ISMASKED 3
VHISENZ 3
BTBAD 3
BTRANGE 3
SSTRANGE 3
BTVNONUNIF 3
SSTREFDIFF 3
BTNONUNIF 2
REDNONUNIF 2
HISENZ 1

In the latest version of modsst, the above quality levels below 3 are incremented by 1 if the red band reflectance is high (rho_t > 0.05) and the retrieved SST is cold (sst-sstref < -1 deg-C).

Nighttime Long-Wave SST

Quality Bit Minimum Quality Level
ISMASKED 3
BTBAD 3
BTRANGE 3
SSTRANGE 3
BT4REFDIFF 3
SSTREFDIFF 3
BTVNONUNIF 2
VHISENZ 2
SST4DIFF 2
BTNONUNIF 1
SST4VDIFF 1
HISENZ 1

In the latest version of modsst, the above quality levels below 3 are incremented by 1 if the BTNONUNIF bit is set for the short-wave SST product.

Note that the SST4DIFF and SST4VDIFF are reversed from expectation. This appears to be an implementation error in modsst which will be corrected in msl12.

Nighttime Short-Wave SST

Quality Bit Minimum Quality Level
ISMASKED 3
BTBAD 3
BTRANGE 3
SSTRANGE 3
BT4REFDIFF 3
SSTREFDIFF 3
BTVNONUNIF 2
VHISENZ 2
SST4DIFF 2
BTNONUNIF 1
SST4VDIFF 1
HISENZ 1

Note that the SST4DIFF and SST4VDIFF are reversed from expectation. This appears to be an implementation error in modsst which will be corrected in msl12.

As previously stated, the goal of this initial effort is to transfer to msl12 all SST retrieval and quality assessment logic currently implemented in the modsst code of RSMAS. To verify that all relevant algorithm changes and quality tests have been captured, a pair of MODIS/Aqua scenes were ordered from the Goddard DAAC, including the Level-1B, geolocation, Level-2 SST, and Level-2 SST QC products. The two scenes included one daytime granule (2005 118 17:55) and one nighttime granule (2005 100 07:05), both from the collection 040 modsst/MODAPS processing. The Level-1B and geolocation were processed through msl12 to produce the long-wave SST product and associated quality flag and quality level products (sst,flags_sst,qual_sst) and the short-wave SST product and associated quality flag and quality level products (sst4,flags_sst4,qual_sst4). The links below show comparison images and difference histograms for the SST and brightness temperatures, and comparison images of the quality levels (red=3, green=2, blue=1, black=0).

The SST algorithm coefficients described above are as proposed for the planned Collection 5 processing by MODAPS. For Aqua processing, the algorithm coefficients have not changed relative to Collection 4, which is why the comparisons in the previous section are identical between msl12 and the modcol products retrieved from the DAAC. However, RSMAS has proposed a number of changes to the quality assessment. These updates in the "most recent" version were noted in the discussion above. In addition, some minor implementation errors were identified and fixed. The changes were implemented for MSL12 V5.3.1. They are summarized below.

Quality Flag Changes

The OBPG has made some minor changes beyond the "Collection 5" updates. These have not yet been vetted with RSMAS or the user community. The changes were implemented in MSL12 v5.3.3. They are summarized below.

Quality Flag Changes

Bit Name Description
14 SSTREFVDIFF SST is too different from reference

The Level-2 products produced by msl12 include a standard set of flags associated with each pixel, stored in the l2_flags SDS. Most of these flags have no explicit meaning for SST, as they were designed to work in the reflected solar regime. This includes the cloud flag. The bits of interest for SST are the SSTFAIL and SSTWARN. In previous versions of msl12, SSTFAIL was set when long-wave SST could not be calculated, and SSTWARN was set when long-wave SST was very different from the reference SST (Reynolds). These bits will now be set based on the SST quality levels described above. The SSTWARN or SSTFAIL bits in l2_flags will only be set if one or both of the SST products (sst or sst4) is requested for output to the Level-2 file.

Level-2 Flags

Bit Name Description
27 SSTWARN SST quality is reduced
28 SSTFAIL SST quality is bad