MAJA 4.2 est disponible et devient un logiciel libre.
MAJA est un logiciel de détection de nuage et de correction atmosphérique de qualité, développé par le CNES et le CESBIO, avec des contributions du DLR. Il est codé par CS GROUP. MAJA est utilisé pour traiter les données Sentinel-2 par le Pôle Theia, par les projets Sen2Agriet Sen4cap de l’agence spatiale Européenne, par le DLR, par le projet Neige&glace de l’agence Européenne de l’environnement, par la société KERMAP. et la plate-forme CODE-DE.
Nous souhaitions depuis longtemps faire de MAJA un logiciel libre, et nous y sommes enfin arrivés ! Après des années de discussions internes au CNES, la décision avait été prise cet hiver de libérer le code avec la version 4.2. Il nous a fallu 6 mois pour rendre cette décision effective, en partie pour terminer la validation et corriger les derniers bugs, et en partie pour mener un audit du code afin de vérifier que MAJA n’inclue pas de code avec des licences incompatibles avec la licence Apache version 2.0.
En conséquence, vous pouvez maintenant lire, télécharger, modifier et compiler le code à partir de cette adresse:
https://github.com/CNES/MAJA
Vous vous rendrez compte que MAJA n’est pas un logiciel simple et qu’il s’appuie sur des caractéristiques avancées du langage C++. Cependant, si moi-même, un pythoniste amateur, j’ai pu y modifier quelques lignes, les vrais pros de l’informatique devraient y arriver.
Bien sûr, nous continuons à distribuer des exécutables MAJA pour linux (Ubuntu, Redhat),et la version 4.2 peut déjà être téléchargée depuis:
https://logiciels.cnes.fr/en/content/maja
Le développement de MAJA a commencé il y a 12 ans, et depuis lors, la bibliothèque Orfeo Tool Box, sur laquelle MAJA s’appuie, a considérablement évolué. Il nous a donc semblé nécessaire de mettre MAJA à jour pour s’appuyer sur le mécanismes des applications OTB, et pour recoder l’orchestrateur des modules en python. La version 4 n’est donc qu’une simple mais importante mise à jour du code, avec peu d’améliorations concernant les méthodes, sauf une importante : lisez ce billet jusqu’au bout !
Voici la liste de nouveautés de la version 4.2 :
- C’est la première version libre de MAJA !
- L’orchestration a été réécrite en python, mais nous avons préservé les interface pour facilité la transition vers la version 4. Les seuls changements, légers, concernent les paramètres de traitement (GIPP). Les formats de MUSCATE sont les formats nominaux, mais les formats natifs ont été conservés provisoirement.
- Nous avons inclus un nouveau script pour aller chercher les données CAMS (Copernicus Atmosphere Monitoring service). Les données CAMS permette de contraindre le type d’aérosols dans les estimations d’épaisseurs optiques d’aérosols. Le nouveau (depuis juillet 2019) et l’ancien format de CAMS sont supportés. Nous devrions donc enfin pouvoir utiliser CAMS dans la production opérationnelle de Theia.
- Notre interface en ligne de commande pour lancer des traitements sur des séries temporelles entières, start-maja, a été inclus dans MAJA. Il a été complètement réécrit par Peter Kettig, et a gagné en clarté et modularité. Et Peter en a profité pour y ajouter de nouvelles possibilités bien pratiques :
- Les MNT sont générés automatiquement. Il suffit de spécifier la tuile à traiter, et start_maaja préparera le MNT correspondant, s’il n’existe pas déjà.
- Les paramètres de traitement (GIPP) et les LUTS sont aussi téléchargés automatiquement
- Nous avons implémenté un masque de neige pour VENµS (qui n’a pas de bande dans le moyen infra-rouge)
- Une dernière évolution a un fort impact positif sur la qualité de nos produits: il est possible d’améliorer la résolution des masques de nuages grâce à l’amélioration de la rapidité du module qui recherche les ombres de nuages. MAJA V4.2 peut maintenant détecter les nuages et les aérosols à une résolution de 120m au lieu de 240m avec une perte de temps de seulement 10% par rapport à la version 3.5.
![]() | ![]() |
Masque de nuage à 240m de résolution, exemple sur la Guyane Française | Masque de nuage à 120m de résolution. Les petits nuages et leurs ombres sont bien mieux détectés |
Un grand merci à Manuel Grizonnet et Pierre Lassalle, qui ont démarré la transformation de MAJA, et à Peter Kettig, qui a suivi le développement et réécrit et amélioré start-maja.Le codage a été rélisé par CS-SI, notamment par Benjamin Esquis et Julie Brossard. La participation de Jérôme Colin du CESBIO (CNRS) a été essentielle pour la validation. Pour ma part, j’ai seulement beaucoup insisté pour que l’on corrige le bug qui ralentissait les traitements à 120 m de résolution..
Merci aussi à ceux qui nous ont aidé à libérer le code de MAJA: cela nécessitait un changement culturel, et dans ce registre, le travail de pionniers de l’Orfeo ToolBox (OTB) au sein du CNES a été essentiel.