GEE ACOLITE
Atmospheric correction for Sentinel-2 imagery on Google Earth Engine using the ACOLITE Dark Spectrum Fitting (DSF) method.
Description
gee_acolite adapts the ACOLITE atmospheric correction to Google Earth Engine workflows. A single global AOT is estimated per image using ACOLITE LUTs (client-side), while all pixel operations run server-side on GEE.
Key features:
- Dark Spectrum Fitting: darkest pixel, percentile, or intercept methods
- AOT Estimation: single fixed AOT per image via LUT interpolation
- Atmospheric Correction: full LUT-based surface reflectance retrieval
- Water Quality Products: SPM, turbidity, chlorophyll-a, Rrs, bathymetry indices
- Cloud & Water Masking: integration with Sentinel-2 Cloud Probability
Installation
pip install gee_acolite
ACOLITE
gee_acolite requires ACOLITE for LUT loading and atmospheric calculations. ACOLITE is not on PyPI — download it from its official repository and add it to your Python path:
import sys
sys.path.append('/path/to/acolite')
import acolite as ac
from gee_acolite import ACOLITE
Quickstart
import sys
sys.path.append('/path/to/acolite')
import ee
import acolite as ac
from gee_acolite import ACOLITE
from gee_acolite.utils.search import search
ee.Initialize(project='your-cloud-project-id')
roi = ee.Geometry.Rectangle([-0.40, 39.27, -0.28, 39.38])
images = search(roi, '2023-06-01', '2023-06-30', tile='30SYJ')
settings = {
's2_target_res': 10,
'dsf_spectrum_option': 'darkest',
'l2w_parameters': ['spm_nechad2016', 'chl_oc3', 'pSDB_green'],
}
ac_gee = ACOLITE(ac, settings)
corrected, final_settings = ac_gee.correct(images)
Requirements
- Python ≥ 3.11
earthengine-api≥ 0.1.350numpy≥ 1.20.0scipy≥ 1.7.0netcdf4≥ 1.7.0- ACOLITE (separate installation)
Documentation
Full documentation including API reference, examples, and architecture diagrams is available at: https://aouei.github.io/gee_acolite
Water Quality Products
| Product | Description |
|---|---|
spm_nechad2016 |
Suspended particulate matter — 665 nm (Nechad 2016) |
spm_nechad2016_704 |
SPM — 704 nm |
spm_nechad2016_740 |
SPM — 740 nm |
tur_nechad2016 |
Turbidity — 665 nm (Nechad 2016) |
chl_oc2 |
Chlorophyll-a OC2 |
chl_oc3 |
Chlorophyll-a OC3 |
chl_re_mishra |
Chlorophyll-a NDCI (Mishra) |
pSDB_green |
Pseudo satellite-derived bathymetry — green |
pSDB_red |
Pseudo satellite-derived bathymetry — red |
Rrs_B* |
Remote sensing reflectance (all 13 bands) |
Contributing
Contributions are welcome! Please fork the repository, create a feature branch, and submit a pull request.
License
GNU General Public License v3.0 — see LICENSE for details.
Citation
If you use this package in your research, please cite:
@software{heredia_sergio_2026_gee_acolite,
author = {Heredia, Sergio},
title = {gee\_acolite},
year = {2026},
version = {1.0.1},
publisher = {Zenodo},
doi = {10.5281/zenodo.18367865},
url = {https://doi.org/10.5281/zenodo.18367865}
}
And the original ACOLITE paper:
@article{vanhellemont2019,
author = {Vanhellemont, Quinten and Ruddick, Kevin},
title = {Adaptation of the dark spectrum fitting atmospheric correction for aquatic applications of the Landsat and Sentinel-2 archives},
journal = {Remote Sensing of Environment},
volume = {225},
pages = {175--192},
year = {2019},
doi = {10.1016/j.rse.2019.03.010}
}
Acknowledgments
This package is based on the ACOLITE software developed by RBINS (Royal Belgian Institute of Natural Sciences).
Contact
- GitHub: @Aouei
- Email: sergiohercar1@gmail.com
Metadata
Release files for gee-acolite 1.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| gee_acolite-1.2.0.tar.gz | 24.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| gee_acolite-1.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 49.4 kB
Release files / gee_acolite-1.2.0.tar.gz
| Download URL | gee_acolite-1.2.0.tar.gz |
|---|---|
| Size | 24.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
05ce9f07b8e5d89d8d0967969453915753b6322571569ca32e2c8e8c3f1f3702
|
|
BLAKE2b-256 checksum How to use checksums |
0f0c9dd899c1b8825d9e8db2b34bc6324d3559363a271e38bd12da97866cb64f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 4, 2026.
Transparency logRelease files / gee_acolite-1.2.0-py3-none-any.whl
| Download URL | gee_acolite-1.2.0-py3-none-any.whl |
|---|---|
| Size | 25.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
067b23c6f69f73968d2ed65bccea065f892e30985fa92acc34fc16c77b1edbec
|
|
BLAKE2b-256 checksum How to use checksums |
45bde57d8b6ccf136aa1ed6c4bca8bb651481444c71f8715b5db658cde49cb33
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 4, 2026.
Transparency log