I’m working to detect Chlorophyll-a concentration by using Sentinel 2 (L1C) images in small lake. I want to use 2 kind of atmospheric correction processor. C2RCC was performed perfect. But the processing of Sen2Cor has some problem. I divided the band value by 10000 as you suggest in many posts.
In C2RCC atmospheric correction processor, min=31 and max=78. What I have to do? I’m using empirical algorithm (regretion with in-situ data) for detecting Chl-a concentration after Sen2Cor processing. I couldn’t find my error. Please help me.
For me the sen2cor result looks good. B4 has reasonable values.
But then you divide the values by 10000. You don’t need to do this. SNAP is taking care of this.
You can see this when selecting a band and then opening the Information window
There you find the scaling factor and offset. These are already applied.
This scaling only needs to be applied if the data is not officially supported.
The values can get negative if the value in B4 is higher as in B5.
You can investigate this. You can create a mask by using the expression ‘NDCI < 0’ and then you can use this mask on B4 and B5 to compare the values.
Yes, the values do not change much because the ratio is the same, independent from the scaled value.
If you want to exclude the negative values your expression should work.
I think it could be simplified to if B4 < B5 then ((B5 -B4) / (B5 + B4)) else NaN
By the above mask I actually meant to create mask overlay it in the scene image.
This is shown in the image below. The red areas are those where B4 > B5. And this results in the negative values in your NDCI.