Question regarding Sen2Cor and Quantification Values

Hi all,

Thank you for the many extensive discussions and answers on this forum. I have a quick question regarding Sen2Cor and Quantification Values. My test workflow is as follows:

  1. Acquire Sentinel 2 L1C scene(s)
  2. Apply Sen2Cor atmospheric correction process to each scene(s), creating L2A processed scenes
  3. Load processed scenes into SNAP for visual inspection
  4. Apply a test algorithm in SNAP, such as the Sentinel-Hub NDWI algorithm
  5. Visually inspect spectral signature of resulting band math to ensure that spectral profile takes the expected shape (see image below)

This is where my question arises: After carrying out the above steps - or at any point in the above steps - do I need to divide the bands by BOA quantification value (e.g. 1000)? Or does Sen2Cor already apply this quantification value scaling?

I am asking because the processed band values and NDWI values are plausible, but seem slightly large. I could understand them being divided by 100, but 1000 seems a bit small (and I understand 10000 is for Top of Atmosphere or pre-processed scenes).

Apologies in advance for this novice question.

Scene in question: S2A_MSIL1C_20190905T080611_N0208_R078_T37UGP_20190905T094347

If you perform all processing in SNAP and stick to the BEAM DIMAP format, there should be no need to apply the quantification value yourself. Things change when you open these products outside SNAP, for example when you plot it in python.

Can you please share an example?share

Hi @ABraun, thanks for your quick response. I really appreciate it!

I am currently testing my workflow in SNAP but intend to eventually shift to a Python-based workflow. I am doing side-by-side plotting and comparison at each step to make sure the results align.

What would you like for my example? Here is a more full description of my steps:

  1. Acquire a Sentinel 2 L1C scene. The specific scene for testing was acquired from USGS Earth Explorer, Scene ID: L1C_T37UGP_A021954_20190905T080606. I downloaded the L1C product and unzipped locally.
  2. I then applied the Sen2Cor atmospheric correction process to the scene, resulting in the L2A processed scenes. I ran Sen2Cor in the command line, not in SNAP.
  3. I then load the L2A product into SNAP by opening the .XML file.
  4. I open up Band Math in SNAP, and apply an example NDWI algorithm from Sentinel-Hub: NDWI = (B03 - B08) / (B03 + B08)

The resulting pixel values seem plausible, but Iā€™m not 100% positive. I can generate the same values in Python.

Do any of my steps seem incorrect?

the steps look alright so far. You find many topics and tutorials on the use of python in combination with SNAP in here.

1 Like