Plus de 1000 téléchargements en deux ans pour le code de correction atmosphérique MAJA

=>

Nous avons commencé à distribuer MAJA gratuitement en juillet 2017, il y a moins de deux ans, et le logiciel a déjà été téléchargé plus de 1000 fois (1068 précisément aujourd'hui). Celà représente en moyenne plus de deux téléchargements par jour de semaine, et ces dernières semaines, nous avons atteint environ 4 téléchargements par jour. Bien sûr, c'est probablement beaucoup moins que Sen2cor, qui dispose d'un financement confortable pour le rendre facile à installer et à utiliser sur un ordinateur personnel, sous Windows, IOS ou Linux. Mais les deux logiciels ne jouent pas dans la même catégorie: Sen2cor a été conçu pour fonctionner du côté client, tandis que MAJA a été conçu pour être robuste et efficace dans les environnements de production.

 

MAJA ne fonctionne que sur linux, et ses algorithmes multi-temporels le rendent moins facile à utiliser. MAJA fait des calculs beaucoup plus complexes que Sen2cor, en deux fois moins de temps que Sen2cor grâce à une bonne parallélisation utilisant la bibliothèque Orfeo Toolbox C++ Library. Malgré cette complexité, beaucoup d'utilisateurs semblent avoir réussi à le faire fonctionner.


Comparaison de séries temporelles d'images de MAJA (Gauche) and Sen2cor (droite) sur la région de Naples. Les masques de nuages sont soulignés en vert, et les ombres en jaune. Cliquez sur l'image pour l'agrandir.

La version de MAJA que nous recommandons actuellement est la version 3.3 qui apporte de nombreuses améliorations.

Deux outils permettent de faire tourner MAJA efficacement :
- Sen2Agri, pour lequel MAJA (et son ancienne version MACCS) a été téléchargé environs 700 fois
- Start-MAJA, qui est un petit orchestrateur que j'ai d'abord développé pour mon usage personnel, puis publié en open source sur github. Il a été téléchargé 450 fois et a reçu 18 étoiles sur la plateforme github du CNES , et 45 sur mon dépôt github personnel, où il était disponible avant de basculer vers celui du CNES.

Les téléchargements de STart-MAJA sur github pendant la dernière quinzaine

 

Cependant, il n'est pas facile de savoir combien d'utilisateurs ont réussi à l'installer correctement, et combien ont échoué. Nous savons que certains utilisateurs parviennent à l'installer facilement. Nous recevons souvent des commentaires et des questions lorsque les utilisateurs ne réussissent pas immédiatement, et nous ne connaissons pas la proportion de ceux qui abandonnent. Nous serions heureux de recevoir plus de retours sur les difficultés rencontrées et sur le taux de succès. N'hésitez pas à nous informer !

MAJA est un logiciel développé par la société CS-SI pour le compte du CNES (service DNO/OT/IS, Imagerie Spatiale). Les méthodes ont été définies par le CESBIO avec des apports du DLR. D'autres services du CNES (DSO/SI/MO, physique de la mesure optique) et compagnies (Magellium, Cap Gemini, Thales-IS) on apporté leur concours à son développement et sa validation.

 

More than 1000 downloads of MAJA atmospheric correction software

=>

We started distributing MAJA as a free software in July 2017, less than 2 years ago, and it already reached 1000 downloads (1043, as a mater of fact).  MAJA was in fact downloaded twice per working day, and in the very last weeks, we had about 4 downloads a day ! Of course it is probably much less than Sen2cor, which is a software with a comfortable  funding to make it easy to install and use on a personal computer, under Windows, IOS or Linux systems. But both software are not in the same category, Sen2cor was designed to run on client side,  while MAJA was designed  to be robust and efficient in production environments.

 

MAJA only works on linux systems, and its multi-temporal features make it less easy to use. MAJA does much more complex computations than Sen2cor, about twice faster thanks to a good parallelization using the Orfeo Toolbox C++ Library. Still, despite this complexity, a lot of users seem to have managed to make it work and seem to be happy with it.

Comparison of MAJA (left) and Sen2cor (right) time series over Naples, Italy. Cloud masks are outlined in green, shadows in yellow. click on the image to enlarge.


We recommend the use of the latest version 3.3 which brings a lot of improvements.

 

Users can run MAJA through 2 main launchers:

  • Sen2Agri, for which MAJA (or its former MACCS version) was downloaded almost 700 times
  • Start-MAJA, which is a little scheduler I developed first for my own usage and then released as open source on github. It has been downloaded 450 times and has received 18 stars on the CNES github platform, and 45 on my github repository, where it was available before moving to CNES's.

Last fortnight clones of Start-MAJA scheduler

However, it is not easy to know how many users managed to install it properly, and how many failed. We know some users manage to install it easily. We often receive feedback and questions when users do not succeed at once, and we do not know the proportion who give-up. We would be happy to receive feedback emails and know if you succeeded, and if you are happy with the results.

 

 

MAJA 3.3 is available, with a LOT of improvements

What's new ?

Pfew ! It has been quite long, but MAJA 3.3 is available, and it improves a LOT of things !

  • Some bugs have been fixed, like the one which caused detection of cloud or cloud shadows on the edges of the images
  • It seems we have finally solved the bugs that plagued the CAMS option since we released MAJA V3.0. Since V3.0, this option uses the Copernicus Atmosphere aerosol forecasts to set the aerosol type before retrieving the aerosol optical thickness (AOT) from Sentinel-2 data
  • We now also use CAMS AOT as a default value, when it is not possible to estimate AOT using the images, for instance above a snow covered landscape or for small gaps in a large cloud cover. Before that, we used 0.1 everywhere as a default value. The default value is used in the cost function with a very low weight, it has no impact when conditions for AOT estimates are good, but a large impact in bad conditions.
  • The cirrus correction module was over correcting the impact of thick cirrus clouds, providing images with dark clouds. We have limited the correction in order to get more realistic values
  • We have improved the cloud detection, with a better compromise between false positives and false negatives. We also handle better the variation against altitude of the cirrus cloud detection with band 10 (1.38 µm). MAJA 3.3 is the version with which we obtained the results of our recently published article. This paper shows that MAJA has slightly better performances than FMask 4.0, and much better performances than Sen2Cor.

Moreover, when we validated the results, we figured out that one of the parameters in our settings had a wrong value (10 instead of 1). It is easy to make such errors, because there are about 150 parameters in MAJA, and it's easy to make an error. We have set up a version management of MAJA settings since 2017, but the erroneous value was already there before that. And this value has a big impact ! The standard deviation of errors in AOT estimates is reduced by 30 to 40% !!

The W_dark parameter controls the weight of the dark pixel method in the AOT estimation. This method is just supposed to be used as a safeguard in case the multi-temporal or multi-spectral methods provide wrong results. It should therefore have a low weight, but with a weight of 10, it was in fact the method which had the highest weight in our estimates. As this method provides a maximum value of the AOT, it tended to reduce the provide too low AOTs. This improvement is therefore a great piece of news, but it comes with some shame not to have found this error before.

 

AOT validation against AERONET for 10 sites with the wrong W_dark value AOT validation against AERONET for 10 sites with the correct W_dark value

The blue dots correspond to validation obtained in good conditions, while red dots correspond to less reliable validation points.

These are the results of comparison of version 3.3 with CAMS activated, changing only the W_dark parameter, but if we compare with the results of version 3.1, the improvement is even more impressive :

AOT validation against AERONET for 10 sites, version 3.1/td> AOT validation against AERONET for 10 sites version 3.3, with the correct W_dark value

How to access MAJA ?

Here is how to access MAJA 3.3 :

  • MAJA 3.3 is distributed as a free software for non commercial purposes from CNES free software site (select the 3.3 TM version in the download tab). If you need it for commercial purposes, you just have to ask me for a different licence, but it still will be free of charge.
  • The best way to use MAJA is to run it with Start_MAJA, which is a simple python code that runs MAJA for a whole time series for a given Sentinel-2 tile. The Strart MAJA readme also explains how to get the good settings, with the good W_dark value, how to prepare the DEM or how to get CAMS data.
  • PEPS on-demand processing facility will be updated soon, but it is still working with MAJA 3.2 so far
  • THEIA is also running MAJA 3.2. We will update first the wdark parameter, and then MAJA 3.3 and then start production with CAMS, hopefully before summer. If everything goes well, we will then start a reprocessing of all our data set. So, stay tuned on this information channel.

Sentinel-2 Level 3A products : syntheses or composites ?

=>

For the past few months, Copernicus has been distributing Level 3A products for the Sentinel-2 mission as part of the S2GM (Sentinel-2 Global Mosaics) .

 

This ambitious project aims to provide monthly, quarterly or annual Level 3A products worldwide. The user defines his zone and period of interest and orders the product. The web site seems to be hosted by SInergise, and as everything done by this company, is easy and very straightforward to use.

 

The call for tender, with two or three million euros, was launched by the Copernicus program of the European Union two years ago. It required the use of ESA Level 2A official products obtained with Sen2Cor. For this reason, we decided not to participate because our Level 3A method, which calculates a weighted average of non-cloudy observations, requires very good cloud masks, which is not quite the case of Sen2cor products.

 

The tender was won by a consortium of Brockman Consult, Geoville and SInergise companies. To compensate for the poor quality of cloud detection, the authors of the S2GM product had to use a BAP method: "Best Available Pixel". This method chooses for each pixel the best date according to certain criteria (no cloud or shadow detected, minimum reflectance in the blue, maximum NDVI ...). This method minimizes cloud disturbances when clouds are not detected correctly, but also has the disadvantage of suddenly changing the date from one pixel to another, which causes artifacts and noise. Outputs are therefore composite products , which assemble pieces of images acquired for the different dates available over the period.

 

Theia Level 3 products are not composites, but syntheses, which use all cloudless observations of a single pixel over the entire monthly observation period to find the value that best represents the surface reflectance we would have had at the central date of the product. Theia's syntheses use the WASP (Weighted Average Synthesis Processor) chain, which calculates a weighted average of surface reflectances over a month, after atmospheric correction and detection of clouds obtained from Level 2A products generated by our MAJA channel , of course. If the clouds are badly detected, they enter into the synthesis and disturb it.

Comparison of a synthesis obtained with WASP + MAJA, with a composite product from S2GM + Sen2cor, on the Toulouse region, in October 2018. (Click on image to enlarge)

The animation provided above shows a full resolution comparison over Toulouse region, of a synthesis of WASP and of the corresponding composite of S2GM obtained on the same date in October 2018. We see very quickly that the composite of S2GM is very noisy, much more than the synthesis from WASP. It is quite often possible to locate the areas where the synthesis tool has chosen to change the date in its composite. You will also notice the appearance of many white dots, which are in fact pixels without clouds, but quite bright that Sen2Cor systematically classifies as clouds.

 

In short, provided you have a good level 2A product, syntheses can provide much better results than composites.

 

 

Produits de Niveau 3A: Synthèses ou composites ?

=>

Copernicus diffuse depuis quelques mois des produits de niveau 3A pour la mission Sentinel-2 dans le cadre du projet S2GM (Sentinel-2 Global Mosaics).

 

Ce projet très ambitieux a pour but de fournir, à l'échelle mondiale, des synthèses mensuelles, trimestrielles ou annuelles. L'utilisateur définit sa zone et sa période d'intérêt et commande le produit. Le site est très bien conçu et très évident à utiliser.

 

L'appel d'offres, doté de deux ou trois millions d'€uros quand même, avait été lancé par le programme Copernicus de l'Union Européenne il y a deux ans. Il imposait d'utiliser les produits officiels de niveau 2A de l'ESA, obtenus avec Sen2Cor. C'est pour cette raison que nous avons décidé de ne pas participer, car notre méthode de synthèse, qui calcule une moyenne pondérée des observations non nuageuses, a besoin de très bons masques de nuages, ce qui n'est pas tout à fait le cas des produits de Sen2cor.

 

L'appel d'offres a été remporté par un consortium composé des sociétés Brockman Consult, Geoville et SInergise. Pour compenser la piètre qualité de la détection des nuages, les auteurs du produit S2GM ont dû utiliser une méthode BAP : "Best Available Pixel". Cette méthode choisit, pour chaque pixel la meilleure date selon certains critères (pas de nuage ou d'ombre détecté, réflectance dans le bleu minimale, NDVI maximal...). Cette méthode permet de minimiser les perturbations nuageuses lorsque les nuages sont mal détectés, mais présente aussi l'inconvénient de changer brutalement de date d'un pixel à l'autre, ce qui cause des artefacts et du bruit. Les sorties sont donc des produits composites, qui assemblent des morceaux d'images acquis lors des différentes dates disponibles sur la période.

 

Les produits de Niveau 3 de Theia ne sont pas des composites, mais des synthèses, qui utilisent toutes les observations sans nuage d'un même pixel sur la période d'observation mensuelle en entier pour trouver la valeur qui représente le mieux la réflectance de surface qu'on aurait eu à la date centrale du produit. Les synthèses de Theia utilisent la chaîne WASP (Weighted Average Synthesis Processor), qui calcule une moyenne pondérée des réflectances de surface sur un mois, après correction atmosphérique et détection des nuages obtenus à partir de produits de niveau 2A générés par notre chaîne MAJA, bien sûr. Si les nuages sont mal détectés, ils entrent dans la synthèse et la perturbent.

Comparaison d'une synthèse obtenue avec WASP+MAJA, avec un produit composite issu de S2GM+Sen2cor, sur la région de Toulouse, en Octobre 2018. (cliquer sur l

L'animation fournie ci-dessus présente une comparaison sur la région de Toulouse, et à pleine résolution, d'une synthèse de WASP et du composite correspondant de S2GM obtenu à la même date en octobre 2018. On constate très vite que le composite de S2GM est très bruités, beaucoup plus que les synthèses issues de WASP. Il est assez souvent possible de repérer les zones où l'outil de synthèse a choisi de changer de date dans son composite. Vous remarquerez aussi l'apparition de nombreux points blancs, qui sont en fait des pixels sans nuages, mais assez brillants que Sen2Cor classe systématiquement comme nuages.

 

Bref, à condition d'avoir un bon produit de niveau 2A, les synthèses peuvent fournir de bien meilleurs résultats que les composites.