MACCS (Multi-sensor Atmospheric Correction and Cloud Screening) est une chaîne de traitement de niveau 2A, qui, comme son nom l’indique, détecte les nuages et leurs ombres, estime l’épaisseur optique des aérosols, la quantité de vapeur d’eau, et corrige les effets atmosphériques. La chaîne a été développée conjointement par le CESBIO et le CNES. Le CESBIO a mis au point les méthodes et développé un prototype, tandis que le CNES a pris en charge la version opérationnelle de la chaîne, que le CESBIO a largement contribué à valider. Le développement de la chaîne opérationnelle a été confié par le CNES à la compagnie CS-SI, et depuis peu, sa validation est gérée par CAP Gemini et le CNES.
Plus récemment, le CNES+CESBIO et le DLR ont décidé de mettre en commun leurs efforts pour développer la chaîne MAJA (MACCS-ATCOR Joint Algorithm). Cette chaîne est une évolution de la chaîne MACCS dans laquelle des méthodes issues de la chaîne ATCOR du DLR seront ajoutées progressivement. MAJA V1.0 a MACCS aurait dû s’appeler MACCS V6.0, mais le CNES et le DLR ont préféré changer de nom pour célébrer leur entente dans ce domaine.
MAJA a la particularité de s’appliquer à des séries temporelles d’images de résolution décamétrique, et de faire une large utilisation de méthodes multi-temporelles. Ceci nous contraint à utiliser des satellites observant sous des angles de visée proches de la verticale, ou sous des angles constants. C’est le cas de Sentinel-2, Landsat8 et Venµs.
Comment accéder à MAJA ou aux produits MAJA.
Il y a plusieurs moyens d’accéder à des données traitées par MAJA, ou à MAJA lui-même :
- MAJA est exploité au CNES dans le segment sol MUSCATE de Theia (données disponibles ici) pour traiter les données des satellites SENTINEL-2, LANDSAT-8, ou Venµs.
- Depuis la version 4.2, MAJA est un logiciel open source, distribué sous la licence permissive Apache 2.0.
- MAJA est disponible gratuitement en version binaire, pour un système Linux. La mise en place de la chaîne dans votre environnement vous demandera un peu de travail, mais la dernière version de la chaîne a rendu cette tâche beaucoup plus aisée. Il peut cependant être plus simple, pour de petites production, d’utiliser la solution du traitement à la demande, ci-dessous.
- MAJA est aussi accessible dans PEPS, comme un traitement à la demande. il vous suffit de choisir les tuiles à traiter, puis de lancer le traitement. Vous pouvez le faire soit via l’interface web de PEPS, or en utilisant des lignes de commande. Il n’est cependant pas possile de lancer plus de 10 traitements en parallèle sur notre infrastructure.
- Cap Gemini propose un service de production des données MAJA (et WASP) à la demande. Vous trouverez les informations dans le document ci-joint
- MAJA est également utilisé dans de nombreux autres systèmes ou logiciels : Sen2Agri, Sen4cap, DLR, EEA Snow&Ice, KERMAP, CODE-DE, …
Une brève description de MAJA
Le document suivant fournit une description détaillée des méthodes utilisées dans MAJA. Si vous êtes pressé, en voici une description bien plus brève. Macroscopiquement, le fonctionnement de MAJA est expliqué dans le schéma ci-contre. Nous allons en étudier les différentes étapes.
Correction de l’absorption atmajasphérique.
Dans le cas de Sentinel-2 et de Venµs, qui disposent d’un canal 940 nm (resp 910 nm), situé dans une forte bande d’absorption de la vapeur d’eau, une première étape estime la quantité de vapeur d’eau dans la colonne d’air traversée par l’observation. Pour les autres satellites, ce sont des données météo qui sont utilisées. Puis on passe à la correction de l’absorption gazeuse. Cette phase est réalisée avec le code SMAC.
Imajage composite
Les étapes suivantes font un grand usage de méthodes multi-temporelles. Et pour cela, une série temporelle doit être traitée dans l’ordre chronologique. En sortie de chaque traitement, une image composite est mise à jour avec les derniers pixels non nuageux acquis. Cette image sert de référence au traitement de détection des nuages et d’estimation de l’épaisseur optique des aérosols.
Les majasques de nuages
La détection des nuage repose sur une batterie de tests, dont les plus importants et plus efficaces, sont :
- celui qui utilise la bande Cirrus (à 1380 nm) présente sur Landsat 8 et Sentinel-2 qui détecte les nuages hauts,
- le test multi-temporel, qui détecte une soudaine augmentation de la réflectance dans le bleu, signe de la présence d’un nuage.
- enfin, pour éviter des sur-détections, pour chaque nuage potentiellement détecté, un dernier test mesure le taux de corrélation d’un voisinage du pixel avec les images précédentes. Comme il est peu probable que plusieurs nuages successifs se ressemblent, au même endroit, si une bonne corrélation est obtenue avec l’une des images, le pixel n’est finalement pas classé nuageux
Après la détection des nuages, il faut aussi détecter leurs ombres, l’eau, et la neige.
Estimajation de l’épaisseur optique des aérosols
L’estimation de l’épaisseur optique combine plusieurs critères, décrits dans cette page, dans le calcul d’une fonction coût, qui est ensuite inversée par la méthode des moindres carrés non linéaires.
- Critère multi-temporel ; après correction atmosphériques, deux voisinages successifs non nuageux (celui de l’image en cours, et celui du satellite) doivent avoir quasiment les mêmes réflectances. Les écarts résiduels après correction atmosphérique sont inclus dans la fonction coût.
- Critère multi-spectral ; au dessus de la végétation, et aussi au dessus de nombreux sols nus, la réflectance de surface dans le bleu est proche de la moitié de la réflectance dans le rouge. Les écarts à cette relation après correction atmosphérique sont donc inclus aussi dans la fonction coût
- Minimum ou maximum de l’épaisseur optique : l’épaisseur optique ne peut pas être négative, et elle ne peut normalement pas dépasser la valeur estimée par la méthode du pixel sombre. Lorsque les erreurs dépassent ces seuils, une forte erreur est ajoutée dans la fonction coût.
La minimisation de cette fonction coût est réalisée sur un voisinage de pixels à 240 m, s’étendant sur environ deux kilomètres. Les résultats obtenus sont ensuite lissés, et les trous dûs au nuages sont bouchés, pour obtenir finalement une carte d’aérosols à une résolution de 5 km. Le type d’aérosols n’est pas estimé, c’est un paramètre de la méthode qui peut être fixé par zone géographique.
Correction atmajasphérique

Une fois connue l’épaisseur optique des aérosols, nous pouvons calculer les réflectances de surface. Pour celà, nous utilisons des tableaux précalculés, à partir du code de transfert radiatif SOS (Successive Orders of Scattering, Lenoble, 2007). Ces mêmes tableaux sont aussi utilisés pour l’estimation des aérosols.Les réflectances ainsi obtenues peuvent être utilisées pour mettre à jour l’image composite.Avant d’éditer le produit de sortie, il reste cependant à corriger deux autres points, déjà détaillés dans ce blog, les effets d’environnement et les effets de pentes en présence de relief.
Contributeurs
Le développement de MACCS a démarré depuis plus de 10 ans, et de très nombreuses personnes y ont contribué au cours de ces années :
- au CESBIO (H.Tromp, V. Debaecker, M. Huc, P.Gely, B.Rouquié, J.Colin et O.Hagolle),
- au CNES (B. Petrucci, D.Villa-Pascual, Camille Desjardins, Pierre Lassalle, Peter Kettig, Sophie Coustance),
- au DLR (A.Makarau, R.Richter, P. Angelo)
- Chez CS-SI (T.Feuvrier, C.Ruffel, A.Bricier, B.Esquis, J.Brossard)
- Chez Cap Gemini (M.Farges, G.Rochais, E.Durand)
- Chez Magellium (E. Hillairet)
- Chez Thales (Johannes Staufer)
References
Nous avons publié quatre articles dans des revues à comité de lecture, sur les méthodes et la validation de MAJA :
- 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.
Bonjour,Je suis actuellement étudiant (en stage) et je cherche des renseignements quand à la possibilité de masquer les nuages et les terres émergées.Mon but dans ce stage et d’arriver à détecter des navires à partir des images optiques fournis par sentinel-2.Toutes sources me serait utile. C’est pourquoi je voulais savoir si il était possible d’avoir les algorithmes correspondant, ou des pistes de recherches (des publications, sites interessant etc…) ?Sachant que je pense avoir fait le tour de vos explications (qui m’ont aidé à y voir plus clair tout de même !).Je ne sais pas si vous en avez les moyens et la possibilité mais cela me serait grandement utile afin de m’avancer dans mon projet (qui me semble à l’heure actuel impossible pour moi.. mais ne désespérons pas !)En vous remerciant par avance de toute réponse,Lionel Dété