Class AtmosphericCorrection

java.lang.Object
noaa.coastwatch.util.AtmosphericCorrection

public class AtmosphericCorrection extends Object

The AtmosphericCorrection class performs a simplified atmospheric correction algorithm to transform MODIS top-of-atmosphere reflectance data to corrected reflectance data. The correction accounts for molecular (Rayleigh) scattering and gaseous absorption (water vapor, ozone) but performs no aerosol correction. No real-time input or ancillary data is required. See Descloitres et al, The MODIS Rapid Response Project: Near-Real-Time Processing for Fire Monitoring and Other Applications, MODIS Science Team Meeting, Jul 7, 2004 for some details and example imagery.

This routine was originally written by Jacques Descloitres for use with the MODIS Rapid Response Project, NASA/GSFC/SSAI (see http://rapidfire.sci.gsfc.nasa.gov). It was converted from the C source file tc_corr.c to Java and documented, but the algorithm remains the same.

Since:
3.8.0
Author:
Peter Hollemans
  • Method Details

    • getInstance

      public static AtmosphericCorrection getInstance()
    • correct

      public void correct(int width, int height, int[] bandNumbers, float[][] bandReflect, float[] solarZenith, float[] solarAzimuth, float[] satZenith, float[] satAzimuth, float[] relAzimuth, float[] elev)
      Corrects a set of MODIS band reflectance values for atmospheric effects.
      Parameters:
      width - the data width in pixels.
      height - the data height in pixels.
      bandNumbers - the array of MODIS band numbers for correction in the range [1..16], or 0 if a band is included in the reflectance data but should not be corrected.
      bandReflect - the MODIS band reflectance values as [bands][width*height]. The bands should be in the same order as the band numbers array. Reflectance values are modified in-place, or set to Float.NaN if no correction could be applied.
      solarZenith - the solar zenith angles in degrees.
      solarAzimuth - the solar azimuth angles in degrees, or null if the relative azimuth is supplied.
      satZenith - the satellite zenith angles in degrees.
      satAzimuth - the satellite azimuth values in degrees, or null if the relative azimuth is supplied.
      relAzimuth - the relative azimuth angle between solar and satellite views, or null if the solar and satellite azimuth angles are supplied.
      elev - the elevation of the data in meters above sea level, or 0 for ocean data.