The terrain effect correction : how it works


Caution, this post contains formulas.


The topographic (or terrain) effects on the observed reflectances are due to several phenomena, illustrated below :

  • the closer the surface is perpendicular to sun direction, the more energy it receives per surface unit (we talk about irradiance). If the surface is parallel to sun direction, it does not receive direct sunlight. We can model it this way :
    • For an horizontal surface :  E_h= E_0.T_{dir}^\downarrow.cos(\theta_s)

      Definition of sun zenith angle and sun incidence angle

    • For a sloped surface  E_i=E_0.T_{dir}^\downarrow.cos(\theta_i)
    •  E_0 is the Top of Atmosphere irradiance, and  T_{dir}^\downarrow is the downward direct transmission, i.e. the proportion of the light that reaches directly the surface without being scattered by the atmosphere.
    • Assuming that all the irradiance is direct, the measured reflectance if the surface was horizontal is calculated from the following formula:  \rho_h=\rho_i \frac{cos(\theta_s)}{cos(\theta_i)} . However, the above assumption is not true and this formula tends to over correct terrain effects
  • The surfaces also receive a diffuse sun irradiance scattered by the atmosphere. If the surface is not horizontal, a part of the sky is obscured by the slope reducing the diffuse irradiance. Moreover, the diffuse irradiance depends on the amount of aerosols (and clouds) in the atmosphere. In addition, the surrounding terrain can also hide a part of the sky, but we do not take this effect into account here in our modelling. We use the following approximation, which is equivalent to assuming that the slope is alone in a horizontal region.
    • If surface is horizontal, the visible sky fraction is 1, if it is vertical, this fraction is 1/2
    •  \displaystyle F_{sky}= \frac{1+cos(slope)}{2}
  • Finally, the slope can receive light from surrounding surfaces, which become directly visible. In our simplified model, we always assume the entire environment of our slope is flat and,for instance, we do not take the effect of the opposite side in a valley into account :
    • If surface is horizontal, the visible ground fraction is 0, if it is vertical, it is 1/2.
    •  \displaystyle F_{fround}= \frac{1-cos(slope)}{2}


Finally, we use the following formula  to compute the reflectance that would be observed if the surface was horizontal   \rho_{h} , as a function of the slope (inclined) reflectance   \rho_{i} :

  \rho_{h}=\displaystyle \rho_{i}.\frac{T^{\downarrow}}{T_{dir}^{\downarrow}.\frac{cos(\theta_i)}{cos(\theta_s)} + T_{dif}^{\downarrow} F_{sky} + T^{\downarrow} F_{ground} \rho_{env}}

 T^{\downarrow} is the downward transmission, sum of direct and diffuse irradiances :  T^{\downarrow}= T_{dir}^{\downarrow}+ T_{dif}^{\downarrow} , and \rho_{env} is the average reflectance of the neighbourhood.


Finally, we can also account for bidirectional reflectance effects, but this correction is tricky since directional effects depend on the surface cover type. See for instance : Dymond, J.R.; Shepherd, J.D. 1999: Correction of the topographic effect in remote sensing. IEEE Trans. Geosci. Remote Sens. 37(5): 2618-2620.


It is very difficult to validate the correction of directional effects : , we could compare the correction results for satellite overpasses at different times in the day. But all the satellite optical imagers have nearly the same overpass time. A qualitative way of estimating the accuracy is to check that similar land covers on opposite slopes in a valley ( a meadow, a forest) have a similar reflectance after correction. The most suitable points are North-South valleys. Here are some examples of terrain effects correction results.

Formosat-2 image in the Alps, before (left) and after (right) terrain effect correction. The image on the right seems to have been flattened, and the opposite slope reflectances seem much more alike after correction.

Finally, an essential part of the method's accuracy is the availability of a highly accurate digital  elevation model (DEM),  up to now, only the SRTM DEM is available globally, and it only has a 90 meter resolution. Its accuracy is somewhat inadequate and sometimes leaves artefacts if the slope changes are poorly located.



Posted under: Comment ça marche /how it works, Corrections (geometry, atmosphere, clouds), In English, Validation

Tagged as: , , ,


  • qf wang on 15/02/2014 at 13:28 said:

    The key to an accurate topographic correction, as demonstrated in your formulas, is to get the exact value of downward direct transmission. But how can we get this value in our correction? Would you please show me some details?

    • Olivier Hagolle on 17/02/2014 at 15:20 said:

      We estimate the downward transmission from radiative transfer calculations, taking into account the aerosol properties determined in earlier phases of the atmospheric correction. I would not assert that is is an "exact " value, but it still enhances the results compared to no correction...

  • Rutger on 27/07/2016 at 08:15 said:

    Thanks for all your excellent explanations, a pleasure to read!

    Have you also looked into using the bottom-of-atmosphere radiance as for example shown in Shepherd & Dymond (2003)? Although I'm not sure if you could get 'boa' radiance from SMAC.

    Because when looking at this equation, in the extreme case, when almost all radiation becomes diffuse. The 'correction factor' for the reflectence becomes 1. So the shadow-side of mountains is probably not corrected as much as you would like.

    • Olivier Hagolle on 01/08/2016 at 08:38 said:

      Hi Rutger, thanks for the nice comment.
      This work was really inspired by the work of Dymond and Shepherd, but I converted and adapted their formula in reflectance instead of radiance. I use the BOA reflectance in the formula.

      Answering your question about the extreme case required some thinking... :
      - am I right if I say that if all the light is diffuse, we do not need to make a correction (except for the sky factor and the surrounding reflectance), and therefore, the fact that correction tends to one is correct ?

      Best regards,

      • Rutger on 01/08/2016 at 15:41 said:

        Hey Olivier, thanks for your response. It depends perhaps on how you go to TOA reflectance. If you use the quantification factor (toa = dn / 10000) you scale based on extraterrestrial radiation for a flat surface, which is why slopes facing the sun are bright and slopes facing away are dark. Atmospheric correction doesn't really alter this effect.

        For the direct term, the cos(i)/cos(sza) takes the incidence angle into account, but this doesn't help for slopes facing away from the sun, since the direct part becomes really small (in the extreme case). I think you would still want a correction for those conditions.

        Also note that clear-sky diffuse radiation still has a large terrain (slope/aspect) dependency in it, see for example figure 1 in Shepherd & Dymond (2003). I think assuming its all homogeneous is only valid (more or less) for overcast/cloudy conditions.

        I was playing around with the equation using this notebook:

        For the area i used there was a shift between the DEM (SRTM CGIAR) and the Sentinel image, which adds some 'glow' around mountains crests.

Leave a Reply

Your email address will not be published. Required fields are marked *


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>