Page 1 of 1

Negative reflectance for Sentinel B11 and B12 bands in near shores water spectra

Posted: Wed Dec 07, 2022 5:12 pm
by Miniussi_Stefano
Hi Quentin,

I am facing a “negative reflectance” problem in the Sentinel-2 images that I correct with ACOLITE.
I am finding that water pixels spectra show negative reflectance values in the SWIR bands B11 and B12, but I wonder also if all the spectra band points are shifted down. I am analysing a coastal area in the North Adriatic Sea over the Friuli Venezia Giulia region in Italy using the Sentinel-2 raster S2B_MSIL1C_20210912T100029_N0301_R122_T33TUL_20210912T120438.SAFE .
Here is the google maps view pointed to the region of interest: https://goo.gl/maps/THc5M7fH71F8QdUZ7.
The geojson polygons I use to clip the Sentinel raster are listed in the txt file "Geojson_Polygons". The first polygon is that I use to apply Acolite, the second one is to clip the corrected raster into a smaller one covering only water pixels. The picture below is the mean water spectra calculated with pixels of this smaller raster.
I am applying ACOLITE with simple basic settings (see the attached file with the user settings), so I am not sure what can cause this overcorrection. I have increased the size of the region where the algorithm can evaluate the atmospheric correction, adding more inland areas, but the problem remains. Moving the polygon to another place along the coast gives the same results.
Could you give me some suggestions?

Thanks in advance for you help,

Stefano

P.s. I don’t know if this is relevant to solve the issue, but the terminal output a warning after the “Detector 1” step:

Code: Select all

Detector 1
…/ACOLITE/acolite/acolite/sentinel2/l1_convert.py:413: RuntimeWarning: Mean of empty slice
  ave_vza = np.nanmean(ave_vza, axis=2)
…/ACOLITE/acolite/acolite/sentinel2/l1_convert.py:414: RuntimeWarning: Mean of empty slice
  ave_vaa = np.nanmean(ave_vaa, axis=2)
Detector 2

Re: Negative reflectance for Sentinel B11 and B12 bands in near shores water spectra

Posted: Sat Dec 10, 2022 6:57 am
by quinten
Hi Stefano

Indeed the negatives in the SWIR are caused by overcorrection in those bands. This is a result of the default S2 setting to use only wavelengths between 400 and 900 nm for retrieving aerosol optical depth using DSF (dsf_wave_range=400,900). I have found that including the SWIR leads to an undercorrection in general (https://doi.org/10.1364/OE.397456). This is not like I proposed in that paper a result of SWIR calibration, but of the noise in those bands biasing the retrieved aerosol optical depth low. The noise in the SWIR can be of the level of several DN in the L1C files, which has an important effect on aerosol optical depth retrieval using those bands. Since DSF uses the minimum observations it will tend towards the low end of the noise in the SWIR bands. I have evaluated filtering of the SWIR which improves the results when the SWIR bands are included in the DSF. I have not yet publicly reported these results yet, and they have not yet been implemented as defaults.

To extend the wavelength range used in the DSF you can set:
dsf_wave_range=400,2500

Both your polygons are very small so you could use the median instead of the minimum to estimate the aerosol optical depth (in essence applying a median filter over your region of interest):
dsf_spectrum_option=percentile
dsf_percentile=50

Of course the use of median filtering will lead to (slight) negative SWIR values in half of your scene. For waters we can assume the SWIR to be 0 so perhaps this is not a problem.

I hope this helps!

Quinten

Re: Negative reflectance for Sentinel B11 and B12 bands in near shores water spectra

Posted: Thu Dec 15, 2022 10:37 am
by Miniussi_Stefano
Hi Quentin,

thanks for your detailed reply. The extension of the wavelenght range has done the right work in shifting back to postive values the SWIR bands. Anyway, I will evaluate now the opportunity of keeping those bands for the DSF calcualtion due to the noise disturbance and surely I will extend the area to evaluate the ACOLITE correction.

Thanks again,

Stefano