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.

Spot the odd one out

=>

There is an odd image in this time series of L2A products of the 31TCJ Sentinel-2 tile (Toulouse region). Can you guess which one ?

 

Yes it is the last one, acquired on the 26th of February. But what's odd with it ?

  • The black South East corner ? No, just a different orbit
  • The date ? Close enough...
  • Two images separated by one day (25 th, 26 th of January) ? You're boiling !

Continue reading

Trouvez l'intrus

=>

Parmi cette série temporelle d'images de niveau 2A de la tuile 31TCJ (Toulouse), il y a une intruse. Saurez vous déviner laquelle ?

 

Oui, c'est la dernière,, acquise le 26 Février. Mais qu'a t'elle de spécial ?

  • Le coin noir au sud-est ? Oui, mais c'est juste le résultat d'une orbite diffférente. Je ne vais quand même pas écrire tout un article là dessus.
  • La date ? Oui, vous chauffez.
  • Deux images séparées par un seul jour (les 25 et 26 février ?) ? Ah, là, vous brulez !

Continue reading

WASP source and executable are now openly available

WASP (Weighted Average Synthesis Processor) is the tool we use to compute the nice (mostly) cloud free syntheses of Sentinel-2 surface reflectances, as shown in the images below. A full resolution viewer is also available in this post, or you may also download the products you can download from Theia. As promised (but it took a while to get the allowance), we have just released it as an open source software and we are also providing a compiled version for linux platforms.

The WASP method was developed at CESBIO by O.Hagolle, in 2007, during the preparation of the Venµs mission. It then evolved and improved with the help of several persons at CESBIO (V.Debaecker, M.Huc, D.Morin, M.Kadiri). Then an operational version was developed by CS Romania within the Sen2Agri consortium funded by ESA, which is distributed as open source. WASP was finally adapted to work in Theia context, and improved by P.Kettig. Peter also set up distribution of the software.

So finally, here is how you can download the software :

  • the source code is available within CNES github repository. You will also find there a forum (issues) and a readme file to compile and use the software.
  • but P.Kettig also compiled an executable version (which is tested on Redhat and Ubuntu), which is available from CNES software distribution server. Until now, only a couple of users have used it, so in case of problems, please open an issue on the github platform.

 

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.

 

New paper ! An active learning cloud detection tool to generate reference cloud masks for Sentinel-2. Application to the validation of MAJA, Sen2cor and FMask cloud masks

Example of reference cloud mask generated by ALCD, and comparison with the cloud masks generated by three operational processors (Sen2cor, FMask and MAJA). True positive invalid pixels appear in blue, true negative in green, false negative in red and false positive in purple..

It is not that frequent when the work of a trainee ends up as a peer reviewed publication, but Louis Baetens was a brilliant trainee. In a six months training period at CESBIO, funded by CNES, here is what Louis Baetens did:

  • developed an active learning method to generate reference cloud masks for Sentinel-2, using multi-temporal data as input
  • validated the quality of the produced masks (around 99% overall accuracy)
  • generated cloud and shadow masks covering 32 entire Sentinel-2 images
  • produced these same scenes with Sen2cor 2.5.5, FMask 4.0 and MAJA 3.3
  • evaluated the results using ALCD masks
  • wrote a report and a user manual for ALCD
  • released the masks and tools on open access platforms
  • And wrote (with Camille and myself) a scientific publication

 

The publication was just released by remote sensing :

Baetens, L.; Desjardins, C.; Hagolle, O. 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. Remote Sens. 2019, 11, 433.

 

The remaining of the post provides a plain language summary (but it's better to read the paper !)

Continue reading

A pause in MUSCATE production, end of February

The MUSCATE production centre will be offline for a week from February 25th to March 4th (or maybe the week after, please see Theia's RSS feed to see the exact date). This pause will be necessary to upgrade the processing centre to V2.5. As a result, we will not be able, for a week, to process Sentinel-2 data in real time, and hope it will not be too inconvenient to you. In case you need some data urgently, you can ask PEPS to produce MAJA L2A data for you during that period.

 

The main change regards the internal format used by MUSCATE for Sentinel-2 Level 2A products. This internal format is different from the external format that we distribute, and this results in unnecessary product format conversions, as well as the necessity to develop drivers for the various formats (internal and external) for the processors that use Sentinel-2 L2A data within MUSCATE. To enable this modification, it will be necessary to convert all the L2A data from the internal format to the external format, which will take a whole week.

 

MUSCATE V2.5 will bring other improvements, such as the integration of MAJA 3.1, with possibility to use Copernicus Atmosphere data, or a new version of LIS, the processor that delivers the snow maps.

MUSCATE  V2.6 is also ready and queuing to be installed, with MAJA 3.2, WASP and the possibility to process Venµs L2A data within MUSCATE and not externally on Venµs ground segent.

 

 

 

Diffusion d'un premier lot des données Sentinel-2A de niveau 2A sur le Sahel

Il y a quelques semaines, nous annoncions la sélection d'une nouvelle zone de production de données Sentinel-2 au niveau 2A par Theia, au Sahel. La production a démarré, et Theia a déjà produit les tuiles de la zone UTM28 (à l'ouest). Les tuiles en vert foncé existaient déjà, mais nous avons rajouté celles en vert clair, qui permettent de couvrir l'ensemble du Sénégal, la Gambie,  une partie de la Guinée Bissau, de la Guinée, et le nord de la Sierra Leone.

 

Les données disponibles ont été traitées du premier janvier 2017 à hier, soit plus de deux ans de données. Les nouvelles données seront maintenant traitées en temps réel au fur et à mesure de leur arrivée.

Nous procéderons de même avec les différentes zones  de l'ouest vers l'est : UTM29, UTM30...