Skip to content
Sentinel 2 and Landsat 8 Atmospheric correction
Branch: master
Clone or download
Latest commit 744e68d Feb 23, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
SIAC passed now Feb 22, 2019
docs adapt the docs Feb 20, 2019
.gitignore try to debug requests Sep 24, 2018
.readthedocs.yml docs debug Nov 9, 2018
.travis.yml build it very time Feb 15, 2019
AUTHORS.rst adapt the docs Feb 20, 2019 adapt the docs Feb 20, 2019 update to Version 2 Sep 17, 2018 version file has to be in SIAC package Feb 19, 2019 add doi Feb 21, 2019
environment.yml fix docs Jan 29, 2019
requirements.txt add gdal Feb 14, 2019 version file has to be in SIAC package Feb 19, 2019

A sensor invariant Atmospheric Correction (SIAC)

Feng Yin

Department of Geography, UCL

PyPI version conda py version build Documentation Status codecov Coverage Status Lisence DOI

This atmospheric correction method uses MODIS MCD43 BRDF product to get a coarse resolution simulation of earth surface. A model based on MODIS PSF is built to deal with the scale differences between MODIS and Sentinel 2 / Landsat 8. We uses the ECMWF CAMS prediction as a prior for the atmospheric states, coupling with 6S model to solve for the atmospheric parameters. We do not have topography correction and homogeneouse surface is used without considering the BRDF effects.

Data needed:

  • MCD43 : 16 days before and 16 days after the Sentinel 2 / Landsat 8 sensing date
  • ECMWF CAMS Near Real Time prediction: a time step of 3 hours with the start time of 00:00:00 over the date, and data from 01/04/2015 are mirrored in UCL server at:
  • Global DEM: Global DEM VRT file built from ASTGTM2 DEM, and most of the DEM over land are mirrored in UCL server at:
  • Emulators: emulators for atmospheric path reflectance, total transmitance and single scattering Albedo, and the emulators for Sentinel 2, Landsat 8 and MODIS trained with 6S.V2 can be found at:


  1. Directly from github
pip install
  1. Using PyPI
pip install SIAC
  1. Using anaconda
conda install -c f0xy -c conda-forge siac

To save your time for installing GDAL:

conda install -c conda-forge gdal>2.1

The typical usage for Sentinel 2 and Landsat 8:

from SIAC import SIAC_S2
SIAC_S2('/directory/where/you/store/S2/data/') # this can be either from AWS or Senitinel offical package
from SIAC import SIAC_L8                                                                           

An example of correction for Landsat 5 for a more detailed demostration of the usage is shown here

Examples and Map:

A page shows some correction samples.

A map for comparison between TOA and BOA.



You can’t perform that action at this time.