pytroll / satpy

Python package for earth-observing satellite data processing
http://satpy.readthedocs.org/en/latest/
GNU General Public License v3.0
1.06k stars 292 forks source link

[Question] Sun Zenith Correction #2781

Closed akasom89 closed 4 months ago

akasom89 commented 5 months ago

I tried to figure out what is the main purpose behind Sun Zenith Correction. I took a look over the paper link (for EffectiveSolarPathLengthCorrector) in the docs. Is this because we assumed a PPL (plain-parallel) model for atmospheric correction or anything else? Or that is just to compensate variant incident solar irradiance?

(Because we should have applied cos of sza while converting radiances to reflectance. why is the logic behind doing that again?)

More details is greatly appreciated!

ameraner commented 5 months ago

Hi @akasom89, indeed, the rationale behind the sun zenith correction is to account for the variation of the incident illumination due to the sun elevation, i.e. making the computed reflectance independent of the illumination condition of the acquired pixel. By dividing with the cosine of the solar zenith angle, you normalise (compensate/cancel out) the effect of the reduced illumination due to the Sun not being at the zenith (directly overhead) of the acquired pixel. This way, the reflectance of a pixel in a scene becomes only a physical quantity of the Earth+Atmosphere condition of that pixel, that can be compared to the reflectance at a different location and/or a different time. Hope this helps!

akasom89 commented 5 months ago

Thanks @ameraner for your detailed answer.

I understand and agree.

But based on the formula of converting radiance to reflectance, we have a cos(sun_zenith) in the denominator already.

So I was wondering if we are applying that again or not!? or perhaps satpy's reflectance lacks that cos(sun_zenith). yes?

simonrp84 commented 5 months ago

Satpy does not generally apply the cos(sza) term when computing the reflectance within the reader for each instrument - hence the need for the Sun Zenith Corrector that applies the correction afterwards.

There are one or two exceptions, though. I think the VIIRS reader has SZA correction built-in, but that's due to the underlying data rather than a choice made in Satpy.

akasom89 commented 5 months ago

Thanks a lot @simonrp84 for your answer. So it is now clear to me.

ameraner commented 4 months ago

I'll close this issue as answered then, but feel free to add new comments if you need further clarifications!