MSAVI Algorithm Specification |
The Modified Soil
Adjusted Vegetation Index
algorithm was was developed by Qi et al. (1994)
The adjustment factor L for SAVI depends on the level of
vegetation cover being observed.
This leads to the circular problem of needing to know the
vegetation cover before calculating the vegetation index, which is
what gives you the vegetation cover.
The basic idea of MSAVI was to provide a variable
correction factor L.
The correction factor used is based on the product of NDVI
and WDVI. This means that the isovegetation lines do not
converge to a single point.
The MSAVI results from the following equation:
MSAVI = (1 + L) * (IR_factor * near_IR - red_factor * red) /
(IR_factor * near_IR + red_factor * red + L)
where: L = 1 - 2 * s * NDVI * WDVI and
s is the soil line slope
Not all soils are alike. Different soils have different
reflectance spectra.
All of the vegetation indices assume that there is a soil line,
where there is a single slope in RED-NIR space.
However, it is often the case that there are soils with different
RED-NIR slopes in a single image.
Also, if the assumption about the isovegetation lines (parallel or
intercepting at the origin) is not exactly right,
changes in soil moisture (which move along isovegetation lines)
will give incorrect answers for the vegetation index.
The problem of soil noise is most acute when vegetation cover is
low.
The following group of indices attempt to reduce soil noise by
altering the behavior of the isovegetation lines.
All of them are ratio-based, and the way that they attempt to
reduce soil noise is by shifting the place where the isovegetation
lines meet.
WARNING: These indices reduce soil noise at the cost of
decreasing the dynamic range of the index.
These indices are slightly less sensitive to changes in vegetation
cover than NDVI (but more sensitive than PVI) at low levels of
vegetation cover.
These indices are also more sensitive to atmospheric variations
than NDVI (but less so than PVI). (See Qi et al. (1994) for
comparisons.)
Also the processor computes an additional flags band called 'msavi_flags' with the following bit coding:
Bit Position | Description |
---|---|
Bit 0 | The computed value for MSAVI is NAN or is Infinite |
Bit 1 | The computed value for MSAVI is less than -1 (minus one) |
Bit 2 | The computed value for MSAVI is greater than 1 (one) |