What are the corrections applied when I am loading a .SAFE zip into the SNAP toolbox

Hello everyone,
I was wondering if there was anywhere where I could find what are the steps done by the SNAP toolbox when I am loading a .SAFE zip in it ? I’m working on a python scripts that uses the .jp2 in the folder “GRANULE” of the .SAFE file, but I saw a difference of reflectance between a pixel value in the SNAP toolbox and the same pixel in QGIS for exemple. So I guess their are some corrections or processings done to the .SAFE in the SNAP toolbox but I can’t find it anywhere online. Do you have some informations on it ?
Also I’m sorry if it’s the wrong category of topic…

Thanks !

Actually, only the offset (RADIO_ADD_OFFSET) and scaling (QUANTIFICATION_VALUE) factors are applied.
These are needed to get the reflectance values.
See page 444 section 4.9.1 Introduction in the product specification
Is this explaining already the differences? Otherwise please explain in more detail which differences you observe.

1 Like

Okay, thank you for this piece of information !
So, if I understand well, when I import the .jp2 in QGIS, I actually see the “raw” data of the pixel, but when I import de .SAFE in SNAP (so the whole data package), it actually applies the offset and scaling factors to the raw data. Am I correct ?
Here are the differences :
With QGIS :
image
With SNAP; same pixel, same band :
image

That’s correct. You can also import directly the jp2 files in SNAP. Then these factors are not applied. Just for comparison.

Hello again @Marco_EOM ,
I have checked the documentation and I see that page 444 is about L1C. But when I’m looking at page 490 for L2A, I can’t seem to find the correction for this type of product. It’s not that I don’t trust you, but I need the justification on the L2A/L2B level for my superiors haha
Have a nice day !

Yes, unfortunately it is not repeated for L2A in the specification.
@
But on page 500 you see the similar values in the table.
QUANTIFICATION_VALUE and BOA_ADD_OFFSET instead of RADIO_ADD_OFFSET.

You can validate the values for one pixel. use the raw value from QGIS and apply the values using the formula from L1C. The result should be the value shown in SNAP.

Maybe @jbruniquel or @Chenocq can forward to the responsible team that the specification should be updated.

And @diana_harosa can you confirm what I said about the scaling of the data in SNAP.

1 Like

Hello @Fabito,

I asked my colleague @fpoustomis, Sentinel 2 technical manager at OPT-MPC.
you can find his answer below :

As already mentioned by Marco_EOM, the difference you can see between a pixel value in the SNAP toolbox and the same pixel in QGIS (for exemple), is due to the SNAP conversion in reflectance of the digital numbers stored in the Sentinel-2 jp2 images.

Information you are looking for is available in the Product Specification Document 14.9 p.327 (I agree, it would be good to report this information also in §4.10). Please note that a new PSD 15.0 is available on the Sentiwiki Copernicus website, in the S2 product Specification Documentation list.

You can also find explanation on this conversion from digital numbers to reflectance on for L1C products, and for L2A products on the dedicated S2 products Sentiwiki webpage.

Best regards

ps: sorry Florian and I tried to put some direct links but we were not allowed to do that.

2 Likes