ATCOR

Calculate atmospheric and terrain correction


EnvironmentsPYTHON :: EASI :: MODELER
Quick linksDescription :: Parameters :: Parameter descriptions :: Details :: Example :: References :: Related

Back to top

Description


ATCOR allows you to perform atmospheric correction on satellite images in preparation for operation such as GCP collection, segmentation, classification, or extraction of vegetation indices. ATCOR receives as input a haze-free image generated by HAZEREM (or a raw or orthorectified image without haze) and a terrain file (from TERSETUP) and generates a ground-reflectance image corrected by atmospheric and terrain effects. The output from ATCOR will contain two files: the output atmospherically corrected image and, optionally, the visibility map for the scene.
Back to top

Parameters


Name Type Caption Length Value range
FILI * String Input haze-free image 1 - 192  
DBIC Integer Database input channel list 0 -   1 -
SRCBGD String Source background value 0 - 192 Default: FILE
ASENSOR String Sensor name 0 - 192
CFILE String Calibration file (*.cal) 0 - 192  
MASKFILI String Input haze and cloud masks 0 - 192 1 -
TERFILE String Input terrain derivatives file 0 - 192  
ILLUFILE String Input illumination and cast shadow file 0 - 192  
MEANELEV Float Average elevation value 0 - 1
VISTYPE String Ground visibility 0 - 192 Default: constant, 30
VISFILO String Output visibility map. 0 - 192  
ATMDEF String Atmospheric definition 0 - 8 Rural | Desert | Urban | Maritime
Default: Rural
ATMCOND String Atmospheric conditions 0 - 15
SATILAZ Float Sensor tilt and azimuth angle 0 - 2 0.0 - 360
SAZANGL Float Solar zenith and azimuth angles (deg) 0 - 2  
ADJACEN String Range for adjacency effect 0 - 8 OFF | ON
Default: OFF
TOPONORM * String Topographic normalization method 4 - 30 Default: None
TERREFL Integer Number of terrain reflectance iterations 0 - 1 0 - 100
Default: 0
OUTUNITS String Output units 0 - 28 Default: 16bit_Reflectance
FILO * String Output atmospherically corrected image name. 1 - 192  
FTYPE String Output file type 0 - 4 Default: PIX
FOPTIONS String Output file options 0 - 64  

* Required parameter
Back to top

Parameter descriptions

FILI

Specifies the name of the input multispectral image from one of the supported sensors (see the ASENSOR parameter description).

The input image may be a raw image, an orthorectified image, or the output haze-free image from HAZEREM.

If the input file (FILI) contains a single channel, it is assumed to be the panchromatic file for the selected sensor.

DBIC

Optionally specifies the list of input channels to process. The specified channels must exist; by default, all channels from the input file are used.

If FILI does not contain metadata but has as many channels as sensor bands, this parameter may be left unspecified (empty). ATCOR will map the first channel to the first band, the second to the second band, and so on. To determine the expected number of bands for each sensor, verify the sensor files available in PCIHOME\atcor\cal\.

If FILI does not contain metadata and has more or fewer channels than bands for the selected sensor, DBIC must be specified. For instance, if the specified sensor is Landsat-7 and FILI contains all the reflective bands from Landsat (that is, six channels containing bands 1,2,3,4,5, and 7), DBIC should be specified as DBIC=1,2,3,4,5,6. If DBIC lists only 1 channel, it is assumed to be the panchromatic band.

If FILI contains the wavelength metadata information for each channel, this parameter may be left unspecified.

Note: When the input file contains the multispectral bands, DBIC should never list a channel number that contains a panchromatic or thermal band. When FILI contains a panchromatic file, DBIC should specify at most one channel. To process thermal bands, run ATCOR_T.

Ranges of channels or segments can be specified with negative values. For example, {1,-4,10} is internally expanded to {1,2,3,4,10}. When you are not specifying a range in this way, only 48 numbers can be specified explicitly.

SRCBGD

Specifies which pixels in the source image are to be considered as background (NoData) pixels. In general, if a pixel is considered NoData, the application handles the pixel in a special manner.

Available options are:
Note: To specify multiple values, use a comma-delimited list. The first value is applied to the first channel, the second value to the second channel, and so on. If fewer values are specified than the number of input channels, the last value is repeated for all remaining channels. If more values are specified than the number of input channels, the extra values are ignored.

ASENSOR

Optionally specifies the name of the sensor used to capture the input image.

See the Function Details section for a list of supported sensors.

If this parameter is not specified, the function checks for the PlatformName metadata tag at the file level.

If this parameter is not specified and the PlatformName metadata tag is not found, the function will error.

CFILE

Optionally specifies the path and name of the text file that contains, for each band, the calibration coefficients used to transform the values from the image to absolute radiance values. This information is typically provided with the data set as an offset and a gain for each channel.

The specified text file should contain the band number, offset and gain, and the units for each. The following shows an example of a calibration file for SPOT images:
              c0       A    [mW/cm2 sr micron], A[m2 sr micron/W]
              1   0.00       1.299124
              2   0.00       1.586023
              3   1.529015   1.413787
              4   0.00       8.179361
            

The atcor\cal\ folder in the CATALYST Professional installation directory contains sample calibration files for every sensor supported by ATCOR. Each row in a calibration file lists the calibration coefficients for each sensor band; the bands are listed in increasing band order.

Ensure that the offset (c0) and gain (c1) values correspond to the scene. These values must be provided in the expected units for the specific sensor (shown at the top right of the calibration file).

If this parameter is not specified, ATCOR will read the RadiometricTransOffset, RadiometricTransGain, and RadiometricTransUnits metadata tags for each channel in the input file. If the Calibration File (CFILE) parameter is not specified, or if the coefficients cannot be derived from the metadata, ATCOR will use the calibration files stored in the CATALYST Professional atcor\cal\ folder for the specified sensor.

Important: It is strongly advised that you do not modify the number of rows in these files, because they indicate the nominal bands for each sensor.

For more information, see Preparing data for atmospheric correction.

MASKFILI

Optionally specifies the name of the input file that contains the Haze and Cloud mask produced by MASKING for the reference image. The specified file must match exactly the geocoding of the input image and the mask for cloud and haze. ATCOR assumes the first bitmap found to be the haze mask, and the second to be the Cloud mask.

TERFILE

Optionally specifies the name of the input file that contains the DEM, slope, aspect, and sky view produced by TERSETUP for the input image.

If the terrain file is not provided, the atmospheric correction will be applied assuming a constant elevation value (see the MEANELEV parameter).

ILLUFILE

Optionally specifies the name of the input illumination file that contains the illumination map and topographic cast shadow bitmap produced by ILLUMCAST for the input image.

If the illumination file is not provided, the information is computed on-the-fly when a Terrain Derivatives file (TERFILE) is provided.

MEANELEV

Optionally specifies, in meters, an approximated average elevation value used to apply a constant atmospheric correction.

If a Terrain Derivative file (TERFILE) is provided, this parameter may be left unspecified. If TERFILE is not provided, and this parameter is empty, an approximated elevation value is calculated from the system DEM file gmted2010. If both a Terrain Derivative file (TERFILE) and an Approximate Elevation value (MEANELEV) are specified, the MEANELEV value is ignored.

VISTYPE

Optionally specifies the ground visibility and atmosphere type required to describe the atmospheric conditions at the time of image acquisition.

Supported values are:

By default, a constant visibility of 30 km is used for the entire scene, which describes clear conditions. When a visibility file is not provided and the specified visibility type is VARYING, a visibility map is computed for the scene. This visibility map is used to more accurately specify the atmospheric conditions for different areas of the scene, at the time the image was acquired.

The following websites provide historical empirical measurements of visibility in the United States and Canada:
In general, a constant atmosphere type should be used for images captured over flat areas with a single land cover type dominating the scene. A constant atmosphere should also be used if the bands required to compute the varying atmosphere type are not available. At minimum, the varying atmosphere type requires either of the following combinations:

If a request is made to compute a visibility map (VISTYPE = "VARYING") and none of the combinations listed above can be found, ATCOR will error. These bands should be identified either through the metadata or by the VISIRCHN metadata tag in the image file.

If none of the combinations of bands listed above are available, the CONSTANT visibility type must be specified. The VARYING atmosphere requires a sufficient amount of reference pixels, determined based on the comparison of the Red and NIR (or SWIR) values. If, after several attempts, a sufficient amount of reference pixels cannot be found, ATCOR errors and the CONSTANT atmosphere type must be selected instead.

When the VARYING atmosphere type is used and the input file (FILI) contains no SWIR bands (wavelengths from 1.6 to 2.2.micrometers), the T1, T2, and T3 values are used to calculate the reference pixels, as follows:

A pixel is considered 'reference' if its top-of-the-atmosphere reflectance value (or computed index) meets the ranges set by T1, T2, and T3. When T1, T2, and T3 are not specified, the default values of 0.5, 0.02, and 0.8 are used, respectively. These thresholds apply only to the VARYING visibility; if T1 or/and T2, or/and T3 are set for a CONSTANT visibility type, ATCOR will error.

VISFILO

Optionally specifies the path and file name of the computed visibility map under varying atmospheric conditions (VISTYPE = VARYING).

If this parameter is not specified, the visibility map is not saved.

The generated visibility map should be used to process the panchromatic and thermal bands under varying atmospheric conditions.

ATMDEF

Specifies the atmospheric definition to use during the correction process.

The range of conditions in the boundary layer of the atmosphere (up to 3 km) is represented by four different aerosol models (rural, urban, maritime or desert) for each of several meteorological ranges between 2 and 50 km, and as a function of humidity.

Supported values are:

ATMCOND

Optionally determines the level of humidity used to estimate the water vapor column.

The water vapor content may be automatically computed if the sensor has spectral bands in water vapor regions (for example, 920-960 nm). If the scene does not contain spectral bands in water vapor regions (for example, Landsat TM, SPOT, IKONOS, GeoEye, etc.), the water vapor column may be inferred based on the season (summer, fall, winter).

Supported values are:

Tropical applies to latitudes between 0 and ±15 degrees and subarctic to latitudes between 45-60 (or -45 to -60). By default, when a band in the water vapor region is not present, ATCOR will estimate the atmospheric condition based on the center of the scene and the acquisition date, available from the metadata. If the atmospheric condition cannot be estimated and this parameter is not defined, ATCOR will error.

For more information about how ATCOR defines the atmospheric condition, see the Details section.

SATILAZ

Optionally specifies the satellite tilt and azimuth angles. The satellite azimuth angle is required only when the tilt angle is greater than or equal to 3 degrees. If the sensor has a nadir view (looking perpendicular to the Earth), the tilt angle's value is 0 degrees (default for nadir view sensors).

Sensors that use a tilt angle during image acquisition include:
If this parameter is not specified, ATCOR will derive the information from the following metadata tags:

SAZANGL

Optionally specifies, respectively, the solar zenith angle (0-90 degrees) and the solar azimuth angle (0-360 degrees) at the time of image acquisition. Both the solar zenith and solar azimuth angles are required when running ATCOR.

SAZANGL = [<zenith>, <azimuth>]

Note: The solar zenith angle can be computed from the solar elevation as follows:
Solar zenith = 90 degrees - solar_elevation (in degrees)

If the solar zenith angle is outside of the range [20-70] degrees, ATCOR will error, because it cannot determine the atmospheric tables required for the correction.

If this parameter is not specified, the function will attempt to derive the necessary values from any one of the following three combinations of metadata tags found at the file level of the input file:

If this parameter is not specified, ATCOR will try to retrieve the SolarZenith and Solar Azimuth values from the metadata tags in the input file. If none of the combinations listed above can be found in FILI and if this parameter is not specified, ATCOR will error.

Note: The solar zenith and azimuth angles can be computed using SOLARZAZ.

ADJACEN

Optionally specifies whether a correction for the adjacency effect is required. This parameter is composed of a keyword and an optional filter size.

Available options are:

The adjacency is the radiation reflected from the neighborhood and scattered energy into the viewing direction. The effect is a result of atmospheric scattering, and depends on the reflectance contrast between a target pixel and its large-scale neighborhood, and decreases with wavelength. It reduces the apparent surface contrast by decreasing the top-of-the-atmosphere radiance over bright pixels and increasing the brightness of the dark pixels.

The adjacency effect causes a certain amount of blurring, known as crosstalk. This effect is often noticeable at the boundary of adjacent features; for example, roads passing through a forest may appear blurred. The adjacency effect is especially important for sensors of high spatial resolution, such as RapidEye, KazEOSat-2 and SPOT and is usually negligible for low spatial resolution sensors such as AVHRR and Landsat.

TOPONORM

Optionally specifies whether or not to perform topographic normalization when calculating ground reflectance. Default is None

The Topographic normalization correction is based on the illumination map and the solar zenith angle. When the atmospheric correction uses a constant elevation value (see MEANELEV / Approximate Elevation), this parameter is ignored, because the topographic effects are dismissed.

If an input terrain derivatives file (TERFILE) is specified, TOPONORM can be specified as follows:
[<METHOD>][<FUNCTION>],[<THRSANG>],[<CORRFACT>]
where:
The options for METHOD: would be:

If None or Lambertian are selected the remaining values in the parameter string are ignored.

This parameter can receive up to four different values, which set the following correction functions:
When a Terrain Derivative (TERFILE) file is specified, this parameter is used otherwise ignored. The effects of the threshold illumination are scene-dependent and its effect varies according to local topography. If the topographic correction must be increased on the steepest slopes, the following rules are recommended, to define the threshold angle:

TERREFL

Optionally specifies the number iterations used to apply adjacency effect corrections.

When the adjacency effects are omitted (ADJACEN=OFF), this parameter is ignored.

To omit the terrain iterations, specify 0 for this parameter, which will result in faster processing.

OUTUNITS

Optionally specifies the output units for the atmospherically corrected image.

Available options are:
Note: With Pure Reflectance, reflectance values greater than one (1) are possible over very bright areas in which specular reflectance is occurring; that is, all light is reflected in one direction. Such situations occur typically over roofs of buildings (mirror reflection), water (sun glint), and, to a lesser extent, over snow and very thick clouds.

FILO

Specifies the name of the output file to receive the atmospherically corrected scene.

The specified file must not already exist. The output file will contain as many channels as the input file (FILI) or the same number of channels specified in DBIC. The bit depth is determined by the OUTUNITS parameter.

FTYPE

Specifies the output file format type, represented by a three- or four-letter code. The format type must be a GDB-supported file type.

Supported formats include, among others:

For example, this parameter could be set as follows: TOPONORM = "None" TOPONORM = "Lambertian" TOPONORM="Empirical,1,32.4532,75

For a complete list of GDB-recognized file types and their codes, see GDB file formats in the Technical Reference section of the CATALYST Professional Online Help.

FOPTIONS

Specifies the file creation options to be applied when creating the output file. These are specific to the file format; in each case, the default of no options is allowed. This parameter can be used to specify compression schemes, file format subtypes, and other information.

Different options are available for different file types (see the FTYPE parameter). The options are described in GDB file formats in the Technical Reference section of the CATALYST Professional Online Help.

Back to top

Details

ATCOR is the core algorithm of the atmospheric correction package. It reduces the influence of the atmosphere (water vapor and aerosol type), solar illumination, sensor viewing geometry, and terrain illumination on the digital numbers composing optical imagery. This is especially useful when performing multi-temporal analysis and automated feature extraction.

The method applied in ATCOR was developed by Dr. Rudolf Richter from the DLR institute. This method is applicable to optical sensors with a small swath angle where the scanning angle effects on radiance and transmittance is negligible. The algorithm works with a database of atmospheric correction functions stored in lookup tables, for different altitude profiles of pressure, humidity, and aerosol type. The method computes the ground reflectance for each pixel, in each spectral band; this can then be used as input to derive vegetation indices, leaf area index, and energy balance or to compare reflectance values from certain features in the image against spectral libraries.

The CATALYST Professional Atmospheric Correction package comprises three main functions:
  • HAZEREM: generates a haze-corrected image by correcting the radiometric variability caused by haze, thus reducing some of the atmospheric effect on the image in the raw domain. This produces a better-looking image, ready for analysis or operations such as automated GCP collection, color balancing, or mosaicking, without relying on the accuracy of atmospheric lookup tables.
  • TERSETUP: calculates the slope, aspect, and sky view rasters from an input DEM, in preparation for atmospheric correction over rugged terrain. This function outputs a PCIDSK file that holds the DEM, slope, aspect, and sky view channels required by ATCOR.
  • ATCOR: the final step in the atmospheric correction workflow, ATCOR eliminates topographic and atmospheric content from imagery data. It computes ground (or at-surface) reflectance of terrain on satellite imagery, reduces the atmospheric (water vapor, aerosol) and terrain reflection on a scene, and prepares the data for analysis. Output from ATCOR output is an atmospherically and terrain-corrected reflectance image and, optionally, a visibility map.

ATCOR receives as input a haze-free image, the cloud and cloud shadow, water, ice/snow and saturated pixel masks, and the terrain derivatives and illumination map for each scene to process to compute the visibility map and apply the atmospheric LUT to the scene, so that the atmospheric addition to the DN of each pixel can be removed. ATCOR allows users to prepare their data for analysis, such as GCP collection, segmentation, classification, or extraction of vegetation indices. ATCOR depends heavily on the quality of the visibility map and the accuracy of the atmospheric tables (based on MOTRAN1 code), as well as on the quality of the haze-free scene and terrain derivatives.

The input file (FILI) and MASKFILI (InputBitmap) file should have an overlap of 100%. ATCOR will error if the input Haze and Cloud mask file (MASKFILI) and illumincation file (ILLUFILE) do not fully overlap with FILI. If a terrain derivatives file (TERFILE) is provided, ATCOR uses the intersection with the image provided in FILI to define the output extents. If TERFILE and FILI overlap by less than 33 x 33 pixels, ATCOR will error.

The metadata and scene geometry is then used to populate all ATCOR required parameters. ATCOR verifies if the values provided trough the metadata (or trough the parameters) are within the expected range; if this is not the case, it errors.

The bands and sensor name will either be derived from metadata tags in the image file or from the VISIRCHN and ASENSOR metadata tags available in the output file generated by HAZEREM. If the output from HAZEREM does not contain these tags, ATCOR checks the metadata from FILI. If ATCOR still cannot determine the sensor and spectral range for each channel, it errors and prompts the user to provide the required metadata tags in the input cloud and haze mask file.

ATCOR uses the visibility raster (or value, when VISTYPE="Constant") to compute the atmospheric LUT. The computed visibility map is then used with the viewing geometry and DEM-derived products to retrieve the values from ATCOR's database for path radiance (LP), transmittance (T), irradiance (Es), global flux (EG), and a contribution from terrain reflectance in an iterative process to retrieve the at-ground surface reflectance value of each pixel.

The following table describes how the ATMCOND parameter is automatically defined by ATCOR:

Latitude
(less than)

Dec 22 to Jun 21 Mar 22 to Jun 21 Jun 22 to Sep 21 Sep 22 to Dec 21
80        
70   Mid. Lat. Winter Mid. Lat. Winter  
60 Mid. Lat. Winter Mid. Lat. Winter Subarctic Summer Mid. Lat. Winter
50 Mid. Lat. Winter Subarctic Summer Subarctic Summer Subarctic Summer
40 Subarctic Summer Subarctic Summer Mid. Lat. Summer Mid. Lat. Summer
30 Mid. Lat. Summer Mid. Lat. Summer Tropical Tropical
20 Tropical Tropical Tropical Tropical
10 Tropical Tropical Tropical Tropical
0 Tropical Tropical Tropical Tropical
-10 Tropical Tropical Tropical Tropical
-20 Tropical Tropical Mid. Lat. Summer Tropical
-30 Mid. Lat. Summer Mid. Lat. Summer Mid. Lat. Summer Mid. Lat. Summer
-40 Subarctic Summer Subarctic Summer Subarctic Summer Subarctic Summer
-50 Subarctic Summer Subarctic Summer Mid. Lat. Winter Subarctic Summer
-60 Mid. Lat. Winter Mid. Lat. Winter Mid. Lat. Winter Mid. Lat. Winter
-70        
-80        

For those cells (latitude and time of the year) where the atmospheric condition is not defined, ATCOR errors. An error message is relayed, stating that the atmospheric condition cannot be defined, and prompting the user to specify the Atmospheric Condition (ATMCOND) parameter.

Supported sensors

The following sensors are supported:
  • ALI
  • ALOS Avnir-2
  • Aster
  • Cartosat PAN
  • CBERS-4
  • CBERS-4A
  • Deimos-1
  • Deimos-2
  • DMC
  • Dragonette
  • DS-EO
  • FASat-Charlie
  • Formosat-2
  • FORMOSAT-5
  • Geoeye-1
  • GF1
  • GF2
  • GF4
  • GF6
  • GF7
  • Gokturk1
  • IRS-1A
  • IRS-1B
  • IRS-1C
  • IRS-1D
  • IRS-P6
  • Ikonos-2
  • Jilin-1
  • KazEOSat-2
  • KOMPSAT-2
  • KOMPSAT-3
  • KOMPSAT-3A
  • Landsat-4 MSS
  • Landsat-5 MSS
  • Landsat-4 TM
  • Landsat-5 TM
  • Landsat-7 ETM+
  • Landsat-8
  • Maxar-Legion
  • OrbView-3
  • PeruSAT-1
  • PlanetScope
  • Pleiades
  • QuickBird
  • PlanetScope
  • RapidEye
  • Resourcesat-2
  • SAC-C
  • Sentinel-2
  • SPOT-1
  • SPOT-2
  • SPOT-3
  • SPOT-4
  • SPOT-5
  • SPOT-6
  • SPOT-7
  • SuperView
  • Thaichote (THEOS)
  • TripleSat
  • WorldView-2
  • WorldView-3
  • WorldView-4
  • ZY1E
  • ZY3
  • ZY3-2
Note: When specifying a sensor, use the exact syntax, as shown in the preceding list.
Back to top

Example

Atmospherically correct essen1000.pix Landsat-4/5 TM sensor with a previously haze-removed image.

HOTImg_essen100.pix was created by previously running HAZEREM.

        EASI>fili	=	"essen100_hazefree.pix"
        EASI>dbic	=
        EASI>srcbgd	=	""
        EASI>asensor	=	""
        EASI>cfile	=	"tm_standard.cal"
        EASI>maskfili	=	"HOTImg_essen100.pix"
        EASI>terfile	=	""
        EASI>illufile	=	""
        EASI>meanelev	=
        EASI>vistype	=	"constant,23.0"
        EASI>visfilo	=	""
        EASI>atmdef	=	"Urban"
        EASI>atmcond	=	"summer"
        EASI>satilaz	=
        EASI>sazangl	=	27.9,115.3
        EASI>adjacen	=	""
        EASI>toponorm =      ""
        EASI>terrefl	=	0
        EASI>outunits	= "16bit_Reflectance"
        EASI>filo	=	"error100_corrected.pix"
        EASI>ftype	=	""
        EASI>foptions=	""

        EASI>run ATCOR
      
Back to top

References

Richter, R. (1998) Correction of Satellite Imagery over mountainous terrain. Applied Optics, 37 (18), 4004-4015.

Richter, R. (1996) Atmospheric Correction of Satellite Data with Haze Removal Including a Haze/Clear Transition Region. Computers & Geosciences, 22 (6), 675-681.

Zhang, Y., Guindon, B., Cihlar, J. (2002) An Image Transform to characterize and compensate for spatial variations in thin cloud contamination of Landsat Images. Remote Sensing of Environment, 82, 173-187.

Richter, R. (2010) Atmospheric / Topographic Correction for Satellite Imagery - ATCOR2/3 User Guide). DLR - German Aerospace Center, 1-165.

Richter, R., et al (2006) An automatic atmospheric correction algorithm for visibile/NIR imagery. International Journal of Remote Sensing, 27 (10), 2077-2085.

© PCI Geomatics Enterprises, Inc.®, 2026. All rights reserved.