ATCOR

Calculate atmospheric and terrain correction


EnvironmentsPYTHON :: EASI :: MODELER
Batch ModeYes
Quick linksDescription :: Parameters :: Parameter descriptions :: Details :: 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 Length Value range
Input: Input haze-free image * Raster port 1 -    
Source background options String 0 -   Default: File Metadata
Source background values Integer 0 - 1024 Default: 0
Satellite sensor String 0 -  
Calibration file String 0 -    
InputBitmap: Input haze and cloud masks Bitmap port 0 -   1 -
InputTerr: Input terrain derivatives file Raster port 0 -    
InputIllum: Input illumination and cast shadow file Mixed port 0 -    
InputVis: Input visibility file Raster port 0 -    
OutputCorr: Output corrected image file * Raster port 1 -    
OutputVis: Output visibility map Raster port 0 -    
Approximate elevation Float 0 - 1
Visibility type String 0 -   Varying | Constant
Default: Constant
Ground visibility String 0 -    
Atmospheric definition String 0 - 1 Rural | Desert | Urban | Maritime
Default: Rural
Atmospheric condition String 0 - 1
Sensor tilt Float 0 - 1 0.0 - 360
Sensor azimuth Float 0 - 1 0.0 - 360
Solar azimuth Float 0 - 1 0.0 - 360
Solar zenith Float 0 - 1 0.0 - 90
Adjacency effect range String 0 - 1 OFF | ON
Default: OFF
TOPONORM topographic normalization method String 4 - 1 Default: None
Terrain reflectance iterations Integer 0 - 1 0 - 100
Default: 0
Output units String 0 - 1 Default: 16bit_Reflectance
Scaling factor String 0 -    

* Required parameter
Back to top

Parameter descriptions

Input: Input haze-free image

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.

Source background options

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

Available options are:

See the Source Background Values parameter for specific examples.

Source background values

Specifies the source background value(s) when the following options are specified for the Source Background Options parameter:
Note: Specify multiple values in 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.
For example:

Satellite sensor

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.

Calibration file

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.

InputBitmap: Input haze and cloud masks

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.

InputTerr: Input terrain derivatives file

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).

InputIllum: Input illumination and cast shadow file

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.

InputVis: Input visibility file

Optionally specifies the name of the input file that contains the ground visibility previously computed for the input scene.

When processing the panchromatic band under VARYING atmospheric conditions, this parameter must be specified.

OutputCorr: Output corrected image file

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

OutputVis: Output visibility map

Optionally specifies the name of the output file to receive the visibility map.

Approximate elevation

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.

Visibility type

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

Available options are:

If an input visibility map is provided, this parameter is ignored.

Ground visibility

Optionally specifies, in kilometers, the ground visibility required to describe the atmospheric conditions at the time of image acquisition.

By default, a constant visibility of 30 km is used for the entire scene, which describes clear conditions. When an input 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.

If an input visibility map is provided, this parameter is ignored.

Atmospheric definition

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:

Atmospheric condition

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.

Sensor tilt

Optionally specifies, in degrees, the satellite tilt angle. 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 tag:

Sensor azimuth

Optionally specifies, in degrees, the heading angle (or azimuth), clockwise from due North. The angle is between 0.0 and 360.0 degrees; the default is 0 degrees (North).

The satellite azimuth angle is required only when the Sensor Tilt angle is greater than or equal to 3 degrees.

If this parameter is not specified, ATCOR will derive the information from the following metadata tag:

Solar azimuth

Specifies the solar azimuth angle (0-360 degrees) at the time of image acquisition.

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

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

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

Solar zenith

Specifies the solar zenith angle (0-90 degrees) at the time of image acquisition.

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 metadata tags found at the file level of the input file:

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

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

Adjacency effect range

Optionally specifies the range of correction values to apply to the adjacency effect.

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 topographic normalization method

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:

Terrain reflectance iterations

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.

Output units

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.

Scaling factor

Optionally specifies scaling factor by which to multiply the reflectance units.

This parameter applies only if Output Units are specified as Scaled_Reflectance.

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

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.