Dark object substraction

Hi all
In order to compare processes (and results) I’m trying to apply the DOS-1 correction with a raster calculator (in Sentinel-2, L1C level).
First I divide the band by 10000 and then I subtract the value 0,01. Is this right?
Thank you in advance
Kind regards

The DOS correction assumes that the darkest object of a band has 0.01 reflectance. This is, however, not really representative and only applying a linear shift to the data.

source: https://www.sciencedirect.com/science/article/pii/003442579290076V

Others suggest to use the lowest 1% of values in a band. So you first have to find this threshold and then subtract it.

DOS-1 correction requires some more parameters, please have a look here: Landsat image conversion to reflectance and DOS1 atmospheric correction

If you really want to radiometrically calibrate your data to reduce atmospheric effects, you have to apply tools like sen2cor or MAJA


Thanks ABraun

If I undestood, I must first of all convert the band to radiance:
πΏπœ† = ((pixelValueBandX * cos(incidenceAngle) * solarIrradianceBandX) / (pi * d2)) / 10000

And then apply the equation:
𝜌 = [πœ‹ * (πΏπœ† βˆ’ 𝐿𝑝) * 𝑑2]/(πΈπ‘†π‘ˆπ‘πœ† * π‘π‘œπ‘ πœƒπ‘ )

That’s right?

I haven’t done it manually since a longer time, but these are the steps, yes.

1 Like

Hi eleel,
You don’t need to convert to radiance since you already have reflectance in S2 L1C (after dividing by 10 000).

So just divide by 10000, find the darkest reflectance as explained by @ABraun, and subtract it from all pixels.

However, atmospheric effects can’t be accurately corrected by a simple subtraction. One has to correct for the atmospheric transmission and for the adjacency effects. Moreover, DOS does not work well in when deep cloud shadows are present within the image.

@ABraun raun is right to recommend using a real atmospheric correction software.


May be here - MAJA 4.2 cloud detection and atmospheric correction software has been released as open source is the software for atm. corr. you can use.

But for me it is better to use Level-2 products if they are available.

1 Like

Thanks OHagolle, I understood, I don’t need to convert to radiance but… in order to use the DOS-1 equation; 𝜌 = [πœ‹ * (πΏπœ† βˆ’ 𝐿𝑝) * 𝑑2]/(πΈπ‘†π‘ˆπ‘πœ† * π‘π‘œπ‘ πœƒπ‘ ) I need to introduce the radiance raster (πΏπœ†) as explained here:

My intention is to apply DOS-1 correction in order to compare their results with accurate corrections.

OK, but you can compute DOS using only reflectance (with your own notations)
πœŒπœ† = [πœ‹ * πΏπœ† * 𝑑2]/(πΈπ‘†π‘ˆπ‘πœ† * π‘π‘œπ‘ πœƒπ‘ )
𝜌p = [πœ‹ * 𝐿p * 𝑑2]/(πΈπ‘†π‘ˆπ‘πœ† * π‘π‘œπ‘ πœƒπ‘ )

Sentinel-2 provides πœŒπœ† and 𝜌p, and you finally have:

𝜌 =πœŒπœ†- 𝜌p