The Multi-Temporal Cloud Screening and Atmospheric Correction Software

MAJA is an Atmospheric Correction processor designed to produce land surface reflectances (Level 2A) from orthorectified Top-of-Atmospher satellite imagery (Level 1C). MAJA detects the clouds and their shadows, and estimates aerosol optical thickness (AOT) and water vapour to correct a given image for the atmospheric effects (absorption, scattering).

MAJA has been developed jointly by CESBIO and CNES, with contributions from the DLR. CESBIO developed the methods and a prototype, while CNES funded the operational version of the processor, with a strong support from CESBIO for the validation.

MAJA is unique in its dedication to high resolution time series and its extensive use of multi-temporal methods. For this reason, MAJA can only be applied to those optical missions that observe the Earth under constant viewing angles. This is the case for the Sentinel-2, VENµS, LANDSAT and Trishna satellites.

The L2A outputs are used to produce monthly syntheses of cloud-free reflectance distributed as L3A, produced by our WASP tool : the Weighted Average Synthesis Processor

Explore existing products

MAJA is operated in near real time by CNES to produce the Level 2A surface reflectances freely distributed on the THEIA portal.


If you don’t find the products you need on THEIA but feel uncomfortable installing MAJA on your own, you can still process Sentinel-2 tiles on the fly on PEPS (the CNES Sentinel Product Processing Platform).

Get the latest version

MAJA is distributed as an Open Source software since version 4.2 under Apache licence.

What’s new ? Check our changelog

Advanced users may get the source code right from the project’s GitLab. Please note that the ‘develop’ branch is under continuous changes, you may filter by tag to point to a given stable release.

Get support

If you struggle to use MAJA, have a look at the FAQ and feel free to post your question on the forum.

Report a bug

If you find a bug, we invite you to create a new issue on the GitLab of MAJA. This will ensure your request is handled and tracked correctly.



Majamask : a new standalone raster mask tool

You can now produce a simplified rastermask from both CLM and MG2 MAJA masks using a standalone, ‘pip’ installable, Python tool call majamask available here. The MAJA L2A products contain cloud (CLM) and geophysical (MG2) mask files. The mask layers are bitmasks, not to be confused with classified layers. Each pixel of a bitmask is […]


[Closed] Post-doc position : join the MAJA team !

CNES has opened a 2 years post-doc position within CESBIO laboratory, to help improve the processing of optical remote sensing images such as those of Sentinel2. The topic is entitled “Improvement of atmospheric adjacency effects modelling and correction”. The atmosphere tends to blur the optical images, and the modelling of this phenomenon is currently rather […]


An update on the use of CAMS 48r1

As announced in a previous post, the aerosol definition of the new 48r1 release of the CAMS auxiliary data has changed as compared to the former 47r1. At that time, we recommended to disable the use of CAMS data with MAJA before we adapt the code. Meanwhile, we have also tested the actual impact on […]


MAJA and the new CAMS aerosols 48r1

The Copernicus Atmospheric Monitoring Service (CAMS) is about to release a new version of its aerosol products on 27 June 2023, referred as 48r1. Their evolution has a direct impact on MAJA, and requires us to adapt the processor. MAJA will not be ready to support 48r1 before the next release scheduled for September 2023. […]


A new article on the validation of MAJA’s Sentinel-2 surface reflectances

Whether you are a user of the atmospheric correction processor MAJA or THEIA’s Sentinel-2 Level 2 products, you will probably be interested to read our new article on the validation of MAJA Sentinel-2 surface reflectances. The article is published in open access in Remote Sensing : Colin, J.; Hagolle, O.; Landier, L.; Coustance, S.; Kettig, […]