DN to Reflectance

Hi there, for my project I have used raw bands located in Granule folder inside 2A sentinel product since I am doing my project using GDAL on python. I can safely say that those values are not reflectance. They seem more like DN to me. I have checked out other posts on this. I wonder if they should be divided by 10000( quantification score) to be converted to BOA reflectance? If so, I also wonder why quantification score for both radiance and reflectance is 10000 inside the metadata of the product?! As you know they are completely different.
ESA says that these products are already REFLECTANCE but this is not accurate to me since you get reflectance values as long as you open the product with Snap or tools that do the conversion automatically without any notice to users whatsoever. There should be a warning about this that clarifies that the bands in the Granule folder are not having reflectance values!

Kind Regards

Please read carefully the entire following posts, and also the links within the posts,

Source of the post

And this post,

Source of the post

Hi I wonder if you carefully read what I was asking for? I know what is radiance and what is reflectance and the difference between them. I am implementing neural network on raw python to classify pixels for my needs, and for that I need reflectance values of bands to train neurons, so there should be values for converting DN to reflectance for sentinel too as it is the case for Landsat!

I did read carefully your post and regardless of your procedure, within the posts I mentioned to you, is this one


So value is already reflectance ,

I described in my first post that this is not accurate. you get reflectace as long as you open the products in one of softwares that do this conversion for you. Have you checked the bands inside Granule folder using python or JAVA NOT the tolls that do this conversion under the hood?

In this case might be other expert could give the benefits for us,

yes, the bands in Granule folder are DN values. you get reflectance if and only if you use the tools like Snap or Qgis, or maybe Arc that do the conversion under the hood, however, if you access the bands in python or any other languages for processing you have to do the conversion yourself! This is what has not mentioned anywhere!

maybe it is not communicated well in the official documentation, but please don’t blame others who are trying to help because you did not find it. It is mentioned in many documents and it is called the quantification value. It is basically a scaling constant which allows to store the products as integers instead of float to reduce the file size required to store it on a hard drive.
For Sentinel-2 it is 10000.

official source in the Sentinel-2 handbook

source: https://sentinels.copernicus.eu/documents/247904/685211/Sentinel-2-Product-Specifications-Document

practical explanation in this paper

source: https://www.preprints.org/manuscript/201610.0078/v1/download

also applied/documented in secondary platforms, e.g. the Google Earth Engine

source: https://developers.google.com/earth-engine/datasets/catalog/COPERNICUS_S2

accessing it in SNAP

You find it in the metadata of each product

and it can also be retrieved for each band in the information tool:

discussions about it in this forum


Hi Andreas, thanks for your response. I did not want to blame any one. If it gave you that feeling, I am sorry. If you see my first post I found posts (especially Marco’s comments) describing quantification values that were used to convert DN to reflectance. I was just wondering why 10000 score has been chosen for both TOA and BOA since as you know they are different. So as far as I understood, based on the product you download ( 2A or 1C), you just do the conversion by dividing pixels values by 10000.

no worries :slight_smile:

For some very old products it was 1000 once but I am not sure if they are even around anymore. So you can apply 10000 to all images, yes.

Thank you a lot for the clarification. Thanks to Falah also for his help on this.

Kind Regards