I am trying to manually correct the surface reflectance values of some Landsat 7 and 8 images. I'm using Minnaert modified method, which uses the cosine correction as one of its inputs (see below the formula, from Richter, 2009).

Minnaert modified formula

  • ρMM stands for "Minnaert modified correction"
  • ρL stands for the result of cosine correction (sun zenit angle cosine divided by the cosine of the solar illumination angle at each point)
  • cosβ stands for the sun zenit angle for the center of the scene
  • cosβT stands for the solar illumination angle at each point of the scene (plus 10, 15 or 20º depending on its value).
  • b exponent depends on the coverage and the band (it can be 0.333, 0.5 or 0.75).

The problem is that the cosine of the solar illumination angle can be negative, and in that case cosβ/cosβT gives a negative value whose power cannot be calculated, if it's 0.5 or 0.75.

I have looked into many articles to try find out how to deal with this problem, but I have found nothing until the moment. Could anybody point me in the right direction?

  • Could you give a relevant example where the solar illumination angle would have a negative cosine? I cannot envision this, because it seems the sun would have to be shining through the earth for that to happen and so you would get no reflectance at all. Did you read the text after equation (6) in the paper? It appears to answer your question fully (and clears up an apparent misconception about the scope of this formula). – whuber May 11 '16 at 18:37
  • 1
    Have you converted you angle units to radians? – Jeffrey Evans May 12 '16 at 20:36
  • 1
    With some methods the illumination can have a zero value and it is common to specify this as a small value (eg., 0.000001). You could just set up a rule of [IF i <= 0, 0 THEN i = 000001 ELSE i] – Jeffrey Evans May 12 '16 at 22:51
  • Hi @whuber, thanks for your comment. The formula I used to calculate the cosine of the sun illum. angle appears in all the articles I've read: illum. angle cos= cos(s) * cos(z) + sin(s) * sin(z) * cos(a - o); where s=slope, z=sun zenith angle, a=sun azimuth angle and o=aspect. The resulting cosine can vary from 1 to -1. On the other hand, I read the text you mention, but that doesn't solve my problem (it avoids the effect of very small values in the second factor of the equation, but if the first factor -the result of the cosine correction- is negative, the final result will also be negative). – Cris C May 16 '16 at 9:05
  • Hi @JeffreyEvans, yes, I'm working with radians. The topographic correction should help fixing the reflectance values in shady zones, counteracting the effects of the relief and therefore increasing their reflectance values according to their land cover. However, if I just replace negative values (which in all the cases come from negative cosine of sun illumination angles) with 0, the resulting reflectance will be smaller than the initial value, and my corrected image will be even further from reality than initial non-corrected image. Hope this makes sense. – Cris C May 16 '16 at 9:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.