Shift of 1000 in S2 reflectance since 25-01-22

Dear all,

As already report in this forum, I face to a problem of low NDVI values since 25-01-22.
I corrected the values (with a substraction of 1000) of the L2A bands red and nir output of sen2cor to get the good values of the indice.
However I am a bit disapointed with the SCL bands : since 25-01-2022, I only have 8 and 9 for this band (clouds with high or medium probability).
So I guess that there is no difference in the processing of the data before and after the shift of 25-01-2022.
I am a bit surprised, I assumed that the conversion from L1C to L2A depending on the absolute values of the bands.
I tried to apply the shift of 1000 on the L1C bands before running sen2cor. But sen2cor failed with such modified bands.
Has someone an alternative procedure to correctly transform L1C to L2A, since 25-01-22 ?

Thanks for your answer.
Aline Déprez

Did you see this thread Changes in band data after 25 Jan 2022 | Baseline 04.00 harmonizeValues | Sentinel 2 L2A | Snappy ?

Thanks for your answer.
I saw the post you advice me to read.
I well understood the theory and the shift to apply since early 2022.
However I find it hard to understand how to modify in practice the different python scripts in order to harmonized the data.
I will have to modify the getBand function to differenciate the data after and before 2022 ?
I work with the 2.11 version of sen2cor on a linux environment in a context of massive computation.
Thanks a lot for your help.
Aline Déprez

Dear @deprezal,

Thank you for your message. Please find hereafter some clarifications.

Sen2Cor automatically handles the reading of L1C image bands before and after the change of processing baseline (25/01/2023). So there is nothing to do in Sen2Cor code, neither in L1C pre-processing.

The change that occurred with processing baseline (PB) 04.00 is related to the way the reflectance data is encoded in the JPEG2000 files in unsigned integer.

The only changes you need to make is in downstream applications when converting L2A JPEG2000 images in L2A surface reflectance in order to obtain a floating point value, usually in the range [0,0 ; 1.0]. That is when it is important to use the adapted conversion formula, for example to get consistent NDVI time series like other users reported. Please check the point 4) of the Frequently Asked Questions

We hope you find these clarifications useful.


Thanks a lot for your answers,

I am not sure to well understand, how the sen2cor code make the difference between the data before and after the 25-01-22 for the computation of the different bands (AOT, WV, SCL, …) essential to convert from L1C to L2A (if I well understood).
But it is probably hidden in the code.

I will try to investigate on my side in order to understand why my SCL bands after 25-01-22 contain only 8 and 9. (i.e. clouds), and post the answer if I find it.

Thanks again for your help.


Dear all,

I made a test for the sen2cor processing of data after 25-01-2022 (in this example the S2 image is the tile T32TLQ dating back from 24-05-2023).
With a “standard” processing, with “standard” L1C data I obtained only clound in the SCL bands and the color of TCI image is very light (I don’t show here but the WV is completly = to 0, the AOT is completly = to 201 …).
If I shift the L1C data (bandX_new = bandX - 1000) before the Sen2cor processing, the results I get look good.
I currently only make a test for one date.

I hope that I am not really out of it and that my post could be useful.
Aline Déprez

Dear all,

Mea Culpa, I made a mistake.
In order to make massive sen2cor processing (over all the S2 archive), I introduced the possibility to use different version of Sen2Cor. When the processing with the most recent version failed, it will look for a former one.
There is a lot of unsucessful Sen2cor (V2.11 and V2.9) processing in 2022 and 2023.
That is why I used Sen2Cor V2.5.5, for which I had to shift the L1C data before the processing.
Sorry for my mistake.

Aline Déprez

Dear @deprezal,

Thank you for your feedback.

It will be interesting for the team to understand better the reasons behind the “unsuccessful Sen2cor (V2.11 and V2.9) processing in 2022 and 2023” you experienced.

Could you please provide a representative example of unsuccessful Sen2cor v2.11 with the following information:

Information on the version of Sen2Cor in use
Information on the platform (linux, windows)
Command lines used (e.g. options used, etc.)
Log that results from running the L1C product on your version of Sen2Cor
L2A_GIPP.xml file
L1C product full name (e.g. S2B_MSIL1C_20220304T071159_N0400_R020_T38LRH_20220713T214644.SAFE)
Any information that may be useful

This would help us to reproduce the error you were facing.