Sentinel-2 L2A from Sen2Cor does not match values of downloaded S2 L2A

I’m using the Sen2Cor280 Processor plugin for SNAP. I want to change top-of-atmosphere L1C Sentinel-2 imagery to bottom-of-atmosphere L2A. I wasn’t sure what the Processing Parameters should be set at, so I figured I’d try winter/summer/auto on a recent 2019 L1C image, and then compare my results to the identical date L2A imagery that ESA provides with EO Browser. (That way, if my pixel values matched ESA’s, I could feel more confident I’m using the tool correctly.)

However, when I tried this, the values produced by Sen2Cor didn’t match the downloaded L2A values. As shown in the attached image comparing values for a pixel in the red band using ArcMap, the first value (30) is from the downloaded image, and the other three are values for the same pixel produced by Sen2Cor under different parameters (all 451 - apparently the setting’s not too sensitive).

Most of the pixels are like this, with the Sen2Cor values being very high and downloaded L2A values being lower than 100.

What I’m doing with Sen2Cor seems to be wrong. But I’m not sure where. I unzip the L1C, load in the xml, and run Sen2Cor on all resolutions with the defaults.

Has anyone had a similar error, or have any suggestion on changes I could try? I’m grateful for any feedback on it.


what makes you think that the corrected values are wrong? It is not unlikely that low values will be corrected?

Please note that the rasters are stored as integers and have to be divided by 10000 to get the true reflectance. Please have a look at these topics.

1 Like

Hello @MaloneyMC

Can you provide the Tile and Orbit number (or Acquisition Date) of the product you’re processing, please?

Thanks in advance


Tile: T18NVG, date: 20190404T152641.
Thank you for your help.

Thank you for the links. I’ll look through those topics.

In the meantime, to answer your question - I suspect my use of Sen2Cor is wrong or incomplete because when I compare my BOA correction using Sen2Cor to the BOA product for the same tile/date, the BOA correction that I produced with Sen2Cor differs from the professionals’ results by a lot, ~200-600 per pixel. I’m trying to replicate the ESA BOA correction process using their tools. If I were doing it correctly, I think my BOA results should have identical values to the ESA’s BOA product for that same tile/date.

Dividing by 10000, I still have that problem. For example, for a pixel where ESA’s value is 36 and my value is 619, dividing by 10000 makes my value .0619, still very off from the ESA product.

I will read up on the links you provided.

Thank you both very much for your time and help.

only if you configure it to make use of a DEM and the landcover classification from CCI - which is not the standard configuration of sen2cor. This was recently discussed here: SNAP Tutorial

Oh, thank you! I hadn’t done that. I’ll try it again with those two settings changed.

Hello @MaloneyMC
Here’s a plot of a pixel from B04 from T18NVG. Left is PDGS, and right is the Sen2Cor standalone (02.08.00) on my PC

These are straight out of the box. You’ll see they are near identical.