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 homogeneous surface is used without considering the BRDF effects.
Please refer to the SIAC Docker usage instruction inside Docker
folder.
Yin, F., Lewis, P. E., and Gómez-Dans, J. L.: Bayesian atmospheric correction over land: Sentinel-2/MSI and Landsat 8/OLI, Geosci. Model Dev., 15, 7933–7976, https://doi.org/10.5194/gmd-15-7933-2022, 2022.
Gee = False
in the SIAC_S2
or SIAC_L8
class, i.e. SIAC_S2(**kwargs, gee=False)
or SIAC_L8(**kwargs, gee=False)
.You will need to have gdal and Lightgbm installed, and it is suggested to install them with:
conda install -c conda-forge gdal lightgbm
mamba install -c conda-forge gdal lightgbm
Then you can install SIAC:
Directly from GitHub
pip install https://github.com/MarcYin/SIAC/archive/master.zip
If you have not used GEE python API before, you will need to authenticate to GEE first after you installed SIAC:
In terminal:
earthengine authenticate --auth_mode=notebook
Or in python:
import ee
ee.Authenticate()
The typical usage of SIAC for and Landsat 8&9:
Sentinel 2
from SIAC import SIAC_S2
global_dem = '/vsicurl/https://gws-access.jasmin.ac.uk/public/nceo_ard/DEM_V3/global_dem.vrt'
cams_dir = '/vsicurl/https://gws-access.jasmin.ac.uk/public/nceo_ard/cams/'
SIAC_S2('/directory/where/you/store/S2/data/', global_dem = global_dem, cams_dir=cams_dir)
Landsat 8
from SIAC import SIAC_L8
global_dem = '/vsicurl/https://gws-access.jasmin.ac.uk/public/nceo_ard/DEM_V3/global_dem.vrt'
cams_dir = '/vsicurl/https://gws-access.jasmin.ac.uk/public/nceo_ard/cams/'
SIAC_L8('/directory/where/you/store/L8/data/', global_dem = global_dem, cams_dir=cams_dir)
Landsat 9
from SIAC import SIAC_L8
global_dem = '/vsicurl/https://gws-access.jasmin.ac.uk/public/nceo_ard/DEM_V3/global_dem.vrt'
cams_dir = '/vsicurl/https://gws-access.jasmin.ac.uk/public/nceo_ard/cams/'
SIAC_L8('/directory/where/you/store/L9/data/', global_dem = global_dem, cams_dir=cams_dir)
All the outputs from SIAC are specified in the siac_output.json
within the original S2 L1C folder:
An example of the siac_output.json
The following table specifies a list of the outputs from SIAC and their corresponding meanings:
Abbreviation | Description | Scale | Comments |
---|---|---|---|
siacLog |
Siac log file | N/A | |
toaOvrs |
Toa reflectance RGB overviews | N/A | |
boaOvrs |
Surface reflectance RGB overviews | N/A | |
toaOvrFull |
Toa reflectance RGB overview full resolution | N/A | |
boaOvrFull |
Surface reflectance RGB overviews | N/A | |
viewAngles |
View angles for each band | 0.01 | 2 bands GeoTiff: B1 view azimuth, B2 view zenith |
sunAngles |
Sun angles for each band | 0.01 | 2 bands GeoTiff: B1 sun azimuth, B2 sun zenith |
SurfaceReflectance |
Surface reflectance for each band | 0.0001 | |
SurfaceReflectanceUncertainty |
Surface reflectance uncertainty for each band | 0.0001 | |
atmoParas |
Atmospheric parameters | N/A | aerosol optical depth[-], total column of water vapour [ $g/cm^2$ ] and total column of ozone [ $cm-atm$ ] |
atmoParasUncs |
Atmospheric parameter uncertainties | N/A | |
Cloud probability |
Cloud | 0.01 | |
Version |
Version of the SIAC software | N/A | |
CleanPixelPercentage |
Clean pixel percentage | N/A | |
ValidPixelPercentage |
Valid pixel percentage | N/A |
All the outputs from SIAC are within the original L8/L9 L1C folder.
A page shows some correction samples.
A map for comparison between TOA and BOA.
GNU GENERAL PUBLIC LICENSE V3