Skip to main content

A sensor invariant Atmospheric Correction (SIAC)

Feng Yin

Department of Geography, UCL

ucfafyi@ucl.ac.uk

PyPI version conda py version Docker Image Size (latest by date) Documentation 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.

Citation:

Yin, F., Lewis, P. E., & Gómez-Dans, J. L. (2022). Bayesian atmospheric correction over land: Sentinel-2/MSI and Landsat 8/OLI. EGUsphere, 2022, 1–62. doi:10.5194/egusphere-2022-170

Auxillary data needed (Automatically downloaded by SIAC):

  • MCD43 :
    • 16 days before and 16 days after the Sentinel 2 / Landsat 8 sensing date.
    • This has been updated to automatically download data from Google Earth Engine (GEE), which is much faster than the preivous way. This means you will need to register to get access to GEE at here.
    • Or you can still use the previous way to download the data by adding the Gee = False in the SIAC_S2 or SIAC_L8 class, i.e. SIAC_S2(**kwargs, gee=False) or SIAC_L8(**kwargs, gee=False).
  • ECMWF CAMS Near Real Time prediction:
  • Global DEM:
  • Emulators:
    • Emulators for atmospheric path reflectance, total transmittance and single scattering Albedo, and the emulators for Sentinel 2 and Landsat 8 trained with 6S.V2 are packed in the current repository.

Installation:

You will need to have Gdal and Lightgbm installed and it is suggested to install them with:

  • conda:
    conda install -c conda-forge gdal lightgbm
    
  • mamba:
    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
    

GEE authenticate:

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

Usage:

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)
    

Outputs from SIAC_S2

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 specify 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

Outputs from SIAC_L8

All the outputs from SIAC are within the original L8/L9 L1C folder.

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

LICENSE

GNU GENERAL PUBLIC LICENSE V3

Metadata

Release files for SIAC 2.3.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for SIAC 2.3.6
File Size Uploaded
SIAC-2.3.6.tar.gz 26.8 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for SIAC 2.3.6
File Interpreter ABI Platform
SIAC-2.3.6-py3-none-any.whl Python 3 none any Details

Total release size: 53.7 MB

Release files / SIAC-2.3.6.tar.gz

Download URL SIAC-2.3.6.tar.gz
Size 26.8 MB
Tags Source
SHA-256 checksum
How to use checksums
ffe09248d679c59496069ed728dd7f878027362ffb15994b9778c34cb54c3d3c
BLAKE2b-256 checksum
How to use checksums
5ef1192f5731491becf51cc1b0c9b71ce249f26b5f979f534c0037fd0db92613
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.1

Release files / SIAC-2.3.6-py3-none-any.whl

Download URL SIAC-2.3.6-py3-none-any.whl
Size 26.9 MB
Tags Python 3
SHA-256 checksum
How to use checksums
374fa16e54d1720b86acdb38134b2d9b1bc1adc57bd83e9bfc03436cd1291d25
BLAKE2b-256 checksum
How to use checksums
9cdbf9eca39f9613391d897b289a39b2f18245683f22fb57aa492994dc1da83e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.1

Release history Release notifications | RSS feed

This release

2.3.6 This release

2 release files

2.3.5

1 release file

2.3.4

1 release file

2.3.3

2.3.2

1 release file

2.3.1

1 release file

2.3.0

1 release file

2.2.0

1 release file

2.1.3

1 release file

2.1.2

1 release file

2.1.1

1 release file

2.0.9

3 release files

2.0.8

3 release files

2.0.7

2 release files

0.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page