This is the command i.topo.corrgrass that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

**PROGRAM:**

**NAME**

**i.topo.corr**- Computes topographic correction of reflectance.

**KEYWORDS**

imagery, terrain, topographic correction

**SYNOPSIS**

**i.topo.corr**

**i.topo.corr**

**--help**

**i.topo.corr**[-

**is**] [

**input**=

__name__[,

__name__,...]]

**output**=

__name__

**basemap**=

__name__

**zenith**=

__float__

[

**azimuth**=

__float__] [

**method**=

__string__] [--

**overwrite**] [--

**help**] [--

**verbose**] [--

**quiet**]

[--

**ui**]

**Flags:**

**-i**

Output sun illumination terrain model

**-s**

Scale output to input and copy color rules

**--overwrite**

Allow output files to overwrite existing files

**--help**

Print usage summary

**--verbose**

Verbose module output

**--quiet**

Quiet module output

**--ui**

Force launching GUI dialog

**Parameters:**

**input**=

__name[,name__,...]

Name of reflectance raster maps to be corrected topographically

**output**=

__name__

**[required]**

Name (flag -i) or prefix for output raster maps

**basemap**=

__name__

**[required]**

Name of input base raster map (elevation or illumination)

**zenith**=

__float__

**[required]**

Solar zenith in degrees

**azimuth**=

__float__

Solar azimuth in degrees (only if flag -i)

**method**=

__string__

Topographic correction method

Options:

__cosine,__

__minnaert,__

__c-factor,__

__percent__

Default:

__c-factor__

**DESCRIPTION**

__i.topo.corr__is used to topographically correct reflectance from imagery files, e.g.

obtained with

__i.landsat.toar__, using a sun illumination terrain model. This illumination

model represents the cosine of the incident angle

__i__, i.e. the angle between the normal to

the ground and the sun rays.

Note: If needed, the sun position can be calculated for a given date with

__r.sunmask__.

Figure showing terrain and solar angles

Using the

**-i**flag and given an elevation basemap (metric),

__i.topo.corr__creates a simple

illumination model using the formula:

· cos_i = cos(s) * cos(z) + sin(s) * sin(z) * cos(a - o)

where,

__i__is the incident angle to be calculated,

__s__is the terrain slope angle,

__z__is the

solar zenith angle,

__a__the solar azimuth angle,

__o__the terrain aspect angle.

For each band file, the corrected reflectance (ref_c) is calculate from the original

reflectance (ref_o) using one of the four offered methods (one lambertian and two

non-lambertian).

**Method:**

**cosine**

· ref_c = ref_o * cos_z / cos_i

**Method:**

**minnaert**

· ref_c = ref_o * (cos_z / cos_i) ^k

where,

__k__is obtained by linear regression of

ln(ref_o) = ln(ref_c) - k ln(cos_i/cos_z)

**Method:**

**c-factor**

· ref_c = ref_o * (cos_z + c)/ (cos_i + c)

where,

__c__is a/m from ref_o = a + m * cos_i

**Method:**

**percent**

We can use cos_i to estimate the percent of solar incidence on the surface, then the

transformation (cos_i + 1)/2 varied from 0 (surface in the side in opposition to the sun:

infinite correction) to 1 (direct exhibition to the sun: no correction) and the corrected

reflectance can be calculated as

· ref_c = ref_o * 2 / (cos_i + 1)

**NOTES**

**1**The illumination model (cos_i) with flag -i uses the actual region as limits and

the resolution of the elevation map.

**2**The topographic correction use the full reflectance file (null remain null) and its

resolution.

**3**The elevation map to calculate the illumination model should be metric.

**EXAMPLES**

First, make a illumination model from the elevation map (here, SRTM). Then make perform

the topographic correction of e.g. the bands toar.5, toar.4 and toar.3 with output as

tcor.toar.5, tcor.toar.4, and tcor.toar.3 using c-factor (= c-correction) method:

# first pass: create illumination model

i.topo.corr -i base=SRTM zenith=33.3631 azimuth=59.8897 output=SRTM.illumination

# second pass: apply illumination model

i.topo.corr base=SRTM.illumination input=toar.5,toar.4,toar.3 output=tcor \

zenith=33.3631 method=c-factor

**REFERENCES**

· Law K.H. and Nichol J, 2004. Topographic Correction For Differential Illumination

Effects On Ikonos Satellite Imagery. International Archives of Photogrammetry

Remote Sensing and Spatial Information, pp. 641-646.

· Meyer, P. and Itten, K.I. and Kellenberger, KJ and Sandmeier, S. and Sandmeier,

R., 1993. Radiometric corrections of topographically induced effects on Landsat TM

data in alpine terrain. Photogrammetric Engineering and Remote Sensing 48(17).

· Riaño, D. and Chuvieco, E. and Salas, J. and Aguado, I., 2003. Assessment of

Different Topographic Corrections in Landsat-TM Data for Mapping Vegetation Types.

IEEE Transactions On Geoscience And Remote Sensing, Vol. 41, No. 5

· Twele A. and Erasmi S, 2005. Evaluating topographic correction algorithms for

improved land cover discrimination in mountainous areas of Central Sulawesi.

Göttinger Geographische Abhandlungen, vol. 113.

Use i.topo.corrgrass online using onworks.net services