I am looking for an algorithm which can be tuned in python or R for atmospheric correction for Landsat 7 ETM.

Searching Google I have found only a few algorithms in ENVI or ERDAS which are not possible to alter the parameters or maybe I am wrong. Can anyone help me to find an algorithm sufficient for Landsat 7 in order to perform atmospheric correction?


you could also check the Atmospheric and Radiometric Correction of Satellite Imagery (ARCSI) Python library, which supports a range of sensors, including Landsat 4,5,7 and 8.

To complement the comments below, there is a very clear tutorial available here and a comprehensive introduction & tutorial written by the author here

  • 2
    I would agree, ARCSI is a really useful and free package. They also provide some easy to follow instructions on how to achieve it too. – AWGIS May 29 '18 at 13:20
  • Thanks to everyone I think ARCSI is a good choice. I will make a try of it. – morteza May 29 '18 at 14:33
  • 2
    A simple 'How to' for ARSCI is here: spectraldifferences.wordpress.com/2014/05/27/arcsi. It's worth noting that this is likely only available for OSX and linux. windows distributions are not so readily available nor maintained – Nathan Thomas May 30 '18 at 1:21

In R, there are landsat package (CRAN)

landsat provides basic tools for working with satellite imagery such as automated georeferencing and cloud detection. It contains functions for radiometric normalization, and several different approaches to atmospheric correction. Four topographic correction algorithms have been implemented. Other useful functions such as bare soil line and tasseled cap calculations have been included. While these functions were developed with Landsat data in mind, they are suitable for use with satellite imagery from other platforms as long as appropriate calibration data are used.

and satellite package

computes an atmospheric scattering correction and converts the sensors digital numbers to reflectances using
* absolute radiance correction
* DOS2: a dark object substraction model by Chavez (1996)
* DOS4: a dark object substratcion model by Moran et al. (1992)

  • Yes, of course, I actually want to have the possibility to change the parameter (tune the parameter) in order to reach the best result. Therefore in R, there is the only function which is already implemented to used and I am not sure if I can have access to manipulate the parameter – morteza May 29 '18 at 14:30
  • 1
    @morteza: Source codes are available for both packages. You can always modify them the way you want to get desired results. – Tung May 29 '18 at 14:34
  • 1
    Oh yes, I did not think so. Thanks. – morteza May 29 '18 at 15:58

I have also found a source code useful which is provided in RStoolbox package in R.Therefore I have attached the link here for other users and developers which might be useful for them as well.

Radiometric Calibration and Correction in R (RStoolbox)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.