A couple of days before the living planet symposium, ESA issued a new version of Sen2cor (V2.2.1), the Sentinel-2 atmospheric correction toolbox. I had made a first comparison of MACCS and Sen2cor results using V2.0.6, regarding the cloud masks mainly, in which I concluded the scene classification was really bad, but probably due to bugs and lack of validation, and that we should wait for next version. First of all, I found the installation of Sen2cor straightforward, at least on an Ubuntu 14.04 linux platform. You just have to read the doc and do as advised. The command line is also very simple and processing time correct, 30 minutes per tile (when processing without MNT), which is a little faster than MACCS (which does much more things). And just bravo ! to the team for being able to do that on all kinds of platforms. I have made my first tests on a scene in Morocco (tile n°29RNQ), which I had already analysed with MACCS runs. If you look at the figures below, you will see that the claim of a large improvement of the scene classification is perfectly true. The obtained results are logical given the information used to detect the clouds, ie thresholds on reflectances and reflectances ratio, but no multi-temporal stuff. I have drown the contours of cloud masks in green, the contours of snow masks in pink and the contours of water in blue. For Sen2cor, I selected the clouds with medium or high probability, plus the high clouds. Here are the images, I will comment them below.
What first strikes is the thickness of the contours in Sen2cor, which is due to the fact that scene classification is done at full resolution with Sen2cor, and at a lower resolution with MACCS and then interpolated. The edges of the clouds in sen2cor are made of a patchwork of cloud/no cloud pixels, which give a greater thickness to the contours. I know that's subjective but it seems that sen2cor finds too many clouds, for instance in the March image, at the North West of the scene. On the second image, Sen2cor still detects too many clouds, and confuses snow and clouds even more than MACCS (which is far from perfect with partial snow cover). Finally, on the third image, Sen2cor also misses a few clouds (small ones, but also some very bright low clouds, this is strange and I do not know how it happens. MACCS uses a 400m buffer around each cloud, in case it has fuzzy edges. This is very useful for all types of clouds except for the small cumulus clouds, which invade the north-eastern part of the image, where some clear pixels are lost. But to reduce the buffer only on cumulus clouds, it would be necessary to identify the type of cloud, which is not that easy. One may also note that the tints of the images are very similar, which shows that the atmospheric corrections are equivalent. and the stability with time of these colours also show that they are good ! More data should be processed to confirm this first impression, but we may conclude that Sen2cor was indeed improved, and even if some classification errors can be found, the available information seems to be well used. As already said, MACCS seems more accurate in terms of cloud detection thanks to the use of multi-temporal criteria, but because of that, it is less easy to use. In a few weeks, you should have access to Sentinel-2 data processed with MACCS, either within THEIA ground segment, or through the Sen2Agri package.