MACCS (Multi-sensor Atmospheric Correction and Cloud Screening) is a level 2A processor, which detects the clouds and their shadows, and estimates aerosol optical thickness (AOT), water vapour and corrects for the atmospheric effects. The processor was jointly developed by CESBIO and CNES. 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. More recently CNES+CESBIO and DLR joined their efforts to develop a joint processor named MAJA, for MACCS-ATCOR Joint Algorithm. MAJA is an evolution of MACCS, in which a couple of methods inspired by ATCOR software have been added. MAJA V1_0 could have been called MACCS V6.0, but we wanted to celebrate the association of both entities with a new name.
MAJA's distinctive feature is its dedication to high resolution time series and its wide use of multi-temporal methods. For this reason, MAJA can only be applied to the optical missions which observe the earth under constant viewing angles. It is the case for Sentinel-2, VENµS, LANDSAT and Trishna satellites.
How to access MAJA code and products ?
There are several ways to acces to MAJA itself or to its products:
- MAJA runs at CNES within the Muscate ground segment of Theia (data are available here). It is used there to process Sentinel-2, LANDSAT and VENµS data over seleted zones.
- Since version 4.2, MAJA is an open source software, released under the permissive Apache licence 2.0
- MAJA is also freely available in binary versionfor a few linux distributions. MAJA is a bit complicated to use, and requires memory, disk space and computer power., however, the last MAJA version has simplified the processing, and, on CNES github platform, we are providing a tutorial to explain how to set it to work.
- MAJA also runs within PEPS, as an on-demand processor. Just select the granules you need, and submit the processing. This can be done either through the peps web interface, or through a command line interface. However, the infrastructure is limited to 10 processings in parallel. Processing whole continentts could take years...
- CAP Gemini is offering an on demand production service based on MUSCATE. Information on this service is available from the following document
- MAJA is also used in several other platforms or softwares, Sen2Agri, Sen4cap, DLR, EEA Snow&Ice, KERMAP, CODE-DE, ...
A short description of MAJA
The following ATBD document provides a detailed description of the methods used in MAJA. But if you lack time, here is a much shorter description. MAJA is briefly described in the joined figure. The text below provides some information for the main boxes.
In the case of Sentinel-2 and Venµs, which include a water vapour channel at 940 nm (resp. 910nm) in a strong water vapour absorption band, a first step consists in estimating the atmospheric water vapour content. For the other satellites, weather analysis data can be used. After that, the processor can correct for the gaseous absorption using the SMAC model.
The next steps deeply involve multi-temporal methods. Of course, to do that, a time series must be processed in chronological order. After each processing, a composite image is updated with with the unclouded pixels from the processed date. This composite image is used as a reference for the cloud detection and the AOT estimate.
The cloud majasks
Our cloud detection method is based on a large number of tests, the most efficient of which are :
- a test based on the cirrus band (at 1380 nm), available on Landsat 8 and Sentinel-2, which detects very well the high clouds (above 2000m)
- a multi-temporal test, which detects a steep increase of the blue surface reflectance, which is the sign of presence of a cloud.
- and finally, to avoid over detections of clouds, for each potential detected by one of the previous tests, a last test measures the correlation of the pixel neighbourhood with the previous images. As it is unlikely that two different clouds at the same location on successive dates have the same shape, if a large correlation is observed, the pixel is finally not declared as a cloud.
Aerosol optical thickness estimajate
The aerosol optical thickness (AOT) estimate combines several criteria in the computation of a global cost function, which is then inverted using non linear least mean squares inversion.
- A multi-temporal criterion : after atmospheric correction, two successive observations of the same neighbourhood should provide nearly the same surface reflectances. The squared residuals after atmospheric correction are inserted in the cost function.
- A multi-spectral criterion : above vegetation, and also above many bare soils, the surface reflectance in the blue is close to half the reflectance in the red. The squared residuals to this relation after atmospheric correction are also added to the cost function.
- Optical Thickness minimum and maximum : AOT cannot be negative, and should not get higher that the one measured using the dark pixel method. When the AOT values are above maximum or under minimum, a high cost is added to the cost function.
The cost function evaluation is evaluated using neighbourhoods of coarse resolution pixels (240m), spreading over 2 kilometres. The obtained AOT images are then smoothed, the gaps are filled to obtain finally an AOT map with a 5 km resolution. The aerosol type is not estimated, it is a processing parameter which can be fixed per geographic region.
Once the AOT is known, we can retrieve the surface reflectances. To do that, we are using look-up tables (LUT) which are computed using the SOS radiative transfer code (Successive Orders of Scattering, Lenoble, 2007). These LUT are also used in the AOT estimation. The surface reflectance of the cloud free pixels obtained there are used to update the composite image, which will be used for the processing of the next image in the time series. Before editing the output product, we still need to correct for two other points, already described in this blog : the adjacency effects and the effects of terrain slopes on the illumination.
MAJA development started in 2005, and the contributor list is starting to be quite long :
- at CESBIO : H.Tromp, V. Debaecker, M. Huc, P.Gely, Bastien Rouquié, Jérôme Colin, O.Hagolle,
- at CNES : B. Petrucci, D.Villa-Pascual, Camille Desjardins, Pierre Lassalle, Peter Kettig, Sophie Coustance
- at DLR : A. Makarau, R.Richter, P. d'Angelo
- at CS-SI : T.Feuvrier, C.Ruffel, A.Bricier, B. Esquis, J.Brossard
- at CAP Gemini : M.Farges, G. Rochais, E.Durand
- at Magellium : E. Hillairet
- at Thales-IS : J.Staufer
For more details, we have published 4 papers about MAJA's methods and validation :
- A multi-temporal method for cloud detection, applied to FORMOSAT-2, VENµS, LANDSAT and SENTINEL-2 images, O Hagolle, M Huc, D. Villa Pascual, G Dedieu, Remote Sensing of Environment 114 (8), 2008, 1747-1755
- Correction of aerosol effects on multi-temporal images acquired with constant viewing angles: Application to Formosat-2 images, O Hagolle, G Dedieu, B Mougenot, V Debaecker, B Duchemin, A Meygret, Remote Sensing of Environment, 2010, 112 (4), 1689-1701
- A Multi-Temporal and Multi-Spectral Method to Estimate Aerosol Optical Thickness over Land, for the Atmospheric Correction of FormoSat-2, LandSat, VENμS and Sentinel-2 Images, O Hagolle, M Huc, D Villa Pascual, G Dedieu, Remote Sensing 7 (3), 2015,,2668-2691
- SPOT-4 (Take 5): Simulation of Sentinel-2 Time Series on 45 Large Sites, O Hagolle, S Sylvander, M Huc, M Claverie, D Clesse, C Dechoz, Remote Sensing 7 (9), 2015, 12242-12264
- Validation of Copernicus Sentinel-2 Cloud Masks Obtained from MAJA, Sen2Cor, and FMask Processors Using Reference Cloud Masks Generated with a Supervised Active Learning Procedure. Baetens, L.; Desjardins, C.; Hagolle, O. Remote Sens. 2019, 11, 433.