-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Water gets too dark in S2 #26
Comments
Where does the magic number 10 for reflectance come from in that line? And would any of the other available models work better: https://github.com/robintw/Py6S/blob/master/Py6S/Params/atmoscorr.py ? General BRDFF (Bidirectional reflectance distribution function)? |
From the original 1997 paper on 6S:
|
The angle fields looks good, I agree. As for the magic number 10, I have no clue. |
So it does not make any difference at all, whether we choose the BRDF or Lambertian model. Also changing the magic number 10 to something else (100, 0.1) has no effect. I can verify that the input files that get passed to the 6S executable do differ. Here is one for our previous default Lambertian:
and here one for BRDF and ocean:
The results are identical to the last digit. |
The |
Do know if it helps anything, but here is the 6S manual: http://www.rsgis.ait.ac.th/~honda/textbooks/advrs/6smanv2.0_P1.pdf |
The response curves are fine. We could clip them to the wavelength range that is nonzero. But the values are OK. When I use the response curves included with Py6S, I get very similar results. |
Hmm, we only use the following coefficients from the output that 6S computes: Lines 147 to 149 in e089a51
and these do not change no matter what the Which makes sense, I guess, if these are all properties of the atmosphere that are unaffected by the surface...? So problem our that we currently cannot tweak the surface properties is a matter of how we apply the results from 6S, rather than how we invoke it. |
So, does 6S provide different outputs when you change the |
For example, when I crank up the wind speed on |
Input from @radosuav (just posted here for archiving): I have not looked at the 6S code or atmospheric correction over water for some time now. So I don't remember why the settings are as you describe. It could be that the x parameters don't change because AtmosCorrLambertianFromReflectance function is used instead of AtmosCorrBRDFFromReflectance (see [1]). However, the three x parameters sound like they only correct for atmospheric effects and not for the BRDF so even using the second function might not affect them. So maybe you need to look at other 6S outputs to perform BRDF correction. However, as far as I remember I did not explicitly take into account the BRDF effects since in case of good illumination and observations conditions (low SZA and VZA) and when the water is smooth they were not too important. When conditions are not optimal and water surface is wavy the problem is usually due to the sun glint [2] (this is a good and easy paper to read). The lower reflectance values which you mention could be due ansitropy of the water column (especially in case of higher concentration of chlorophyl [3]) or the roughness of the bottom [4]. They could also be due to incorrect parameterisation of the atmospheric components. I would firstly focus on double checking the atmospheric parameters and selecting S2 images only with good illumination and observation conditions. If that fails then you could start playing with 6S to correct for the BRDF effects. Alternatively, you could use another atmospheric correction algorithm. C2RCC [5] seems to be performing well [6] and could be easy to add to the processing chain since it is part of SNAP. Also have a look at the presentations from a recent Sentinel-2 validation workshop [7]. There are quite a few there related to S2 and water (towards the end of the program). [1] http://py6s.readthedocs.io/en/latest/params.html#atmospheric-corrections |
Reported by @milyra.
The problem seems to be worse in winter than in summer. This could hint at a problem with the Sun angles.
The text was updated successfully, but these errors were encountered: