OnWorks favicon

i.vigrass - Online in the Cloud

Run i.vigrass in OnWorks free hosting provider over Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

This is the command i.vigrass 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



i.vi - Calculates different types of vegetation indices.
Uses red and nir bands mostly, and some indices require additional bands.


imagery, vegetation index, biophysical parameters


i.vi --help
i.vi red=name output=name viname=type [nir=name] [green=name] [blue=name]
[band5=name] [band7=name] [soil_line_slope=float] [soil_line_intercept=float]
[soil_noise_reduction=float] [storage_bit=integer] [--overwrite] [--help]
[--verbose] [--quiet] [--ui]

Allow output files to overwrite existing files

Print usage summary

Verbose module output

Quiet module output

Force launching GUI dialog

red=name [required]
Name of input red channel surface reflectance map
Range: [0.0;1.0]

output=name [required]
Name for output raster map

viname=type [required]
Type of vegetation index
Options: arvi, dvi, evi, evi2, gvi, gari, gemi, ipvi, msavi, msavi2, ndvi, pvi, savi,
sr, vari, wdvi
Default: ndvi
arvi: Atmospherically Resistant Vegetation Indices
dvi: Difference Vegetation Index
evi: Enhanced Vegetation Index
evi2: Enhanced Vegetation Index 2
gvi: Green Vegetation Index
gari: Green Atmospherically Resistant Vegetation Index
gemi: Global Environmental Monitoring Index
ipvi: Infrared Percentage Vegetation Index
msavi: Modified Soil Adjusted Vegetation Index
msavi2: second Modified Soil Adjusted Vegetation Index
ndvi: Normalized Difference Vegetation Index
pvi: Perpendicular Vegetation Index
savi: Soil Adjusted Vegetation Index
sr: Simple Ratio
vari: Visible Atmospherically Resistant Index
wdvi: Weighted Difference Vegetation Index

Name of input nir channel surface reflectance map
Range: [0.0;1.0]

Name of input green channel surface reflectance map
Range: [0.0;1.0]

Name of input blue channel surface reflectance map
Range: [0.0;1.0]

Name of input 5th channel surface reflectance map
Range: [0.0;1.0]

Name of input 7th channel surface reflectance map
Range: [0.0;1.0]

Value of the slope of the soil line (MSAVI2 only)

Value of the intercept of the soil line (MSAVI2 only)

Value of the factor of reduction of soil noise (MSAVI2 only)

Maximum bits for digital numbers
If data is in Digital Numbers (i.e. integer type), give the max bits (i.e. 8 for
Landsat -> [0-255])
Options: 7, 8, 10, 16
Default: 8


i.vi calculates vegetation indices based on biophysical parameters.

· ARVI: atmospherically resistant vegetation indices

· DVI: Difference Vegetation Index

· EVI: Enhanced Vegetation Index

· EVI2: Enhanced Vegetation Index 2

· GARI: Green atmospherically resistant vegetation index

· GEMI: Global Environmental Monitoring Index

· GVI: Green Vegetation Index

· IPVI: Infrared Percentage Vegetation Index

· MSAVI2: second Modified Soil Adjusted Vegetation Index

· MSAVI: Modified Soil Adjusted Vegetation Index

· NDVI: Normalized Difference Vegetation Index

· PVI: Perpendicular Vegetation Index

· RVI: ratio vegetation index

· SAVI: Soil Adjusted Vegetation Index

· SR: Simple Vegetation ratio

· WDVI: Weighted Difference Vegetation Index

Background for users new to remote sensing
Vegetation Indices are often considered the entry point of remote sensing for Earth land
monitoring. They are suffering from their success, in terms that often people tend to
harvest satellite images from online sources and use them directly in this module.

From Digital number to Radiance:
Satellite imagery is commonly stored in Digital Number (DN) for storage purposes; e.g.,
Landsat5 data is stored in 8bit values (ranging from 0 to 255), other satellites maybe
stored in 10 or 16 bits. If the data is provided in DN, this implies that this imagery is
"uncorrected". What this means is that the image is what the satellite sees at its
position and altitude in space (stored in DN). This is not the signal at ground yet. We
call this data at-satellite or at-sensor. Encoded in the 8bits (or more) is the amount of
energy sensed by the sensor inside the satellite platform. This energy is called
radiance-at-sensor. Generally, satellites image providers encode the radiance-at-sensor
into 8bit (or more) through an affine transform equation (y=ax+b). In case of using
Landsat imagery, look at the i.landsat.toar for an easy way to transform DN to
radiance-at-sensor. If using Aster data, try the i.aster.toar module.

From Radiance to Reflectance:
Finally, once having obtained the radiance at sensor values, still the atmosphere is
between sensor and Earth’s surface. This fact needs to be corrected to account for the
atmospheric interaction with the sun energy that the vegetation reflects back into space.
This can be done in two ways for Landsat. The simple way is through i.landsat.toar, use
e.g. the DOS correction. The more accurate way is by using i.atcorr (which works for many
satellite sensors). Once the atmospheric correction has been applied to the satellite
data, data vales are called surface reflectance. Surface reflectance is ranging from 0.0
to 1.0 theoretically (and absolutely). This level of data correction is the proper level
of correction to use with i.vi.

Vegetation Indices
ARVI: Atmospheric Resistant Vegetation Index

ARVI is resistant to atmospheric effects (in comparison to the NDVI) and is accomplished
by a self correcting process for the atmospheric effect in the red channel, using the
difference in the radiance between the blue and the red channels (Kaufman and Tanre 1996).
arvi( redchan, nirchan, bluechan )
ARVI = (nirchan - (2.0*redchan - bluechan)) /
( nirchan + (2.0*redchan - bluechan))

DVI: Difference Vegetation Index
dvi( redchan, nirchan )
DVI = ( nirchan - redchan )

EVI: Enhanced Vegetation Index

The enhanced vegetation index (EVI) is an optimized index designed to enhance the
vegetation signal with improved sensitivity in high biomass regions and improved
vegetation monitoring through a de-coupling of the canopy background signal and a
reduction in atmosphere influences (Huete A.R., Liu H.Q., Batchily K., van Leeuwen W.
(1997). A comparison of vegetation indices global set of TM images for EOS-MODIS. Remote
Sensing of Environment, 59:440-451).
evi( bluechan, redchan, nirchan )
EVI = 2.5 * ( nirchan - redchan ) /
( nirchan + 6.0 * redchan - 7.5 * bluechan + 1.0 )

EVI2: Enhanced Vegetation Index 2

A 2-band EVI (EVI2), without a blue band, which has the best similarity with the 3-band
EVI, particularly when atmospheric effects are insignificant and data quality is good
(Zhangyan Jiang ; Alfredo R. Huete ; Youngwook Kim and Kamel Didan 2-band enhanced
vegetation index without a blue band and its application to AVHRR data. Proc. SPIE 6679,
Remote Sensing and Modeling of Ecosystems for Sustainability IV, 667905 (october 09, 2007)
evi2( redchan, nirchan )
EVI2 = 2.5 * ( nirchan - redchan ) /
( nirchan + 2.4 * redchan + 1.0 )

GARI: green atmospherically resistant vegetation index

The formula was actually defined: Gitelson, Anatoly A.; Kaufman, Yoram J.; Merzlyak, Mark
N. (1996) Use of a green channel in remote sensing of global vegetation from EOS- MODIS,
Remote Sensing of Environment 58 (3), 289-298. doi:10.1016/s0034-4257(96)00072-7
gari( redchan, nirchan, bluechan, greenchan )
GARI = ( nirchan - (greenchan - (bluechan - redchan))) /
( nirchan + (greenchan - (bluechan - redchan)))

GEMI: Global Environmental Monitoring Index
gemi( redchan, nirchan )
GEMI = (( (2*((nirchan * nirchan)-(redchan * redchan)) +
1.5*nirchan+0.5*redchan) / (nirchan + redchan + 0.5)) *
(1 - 0.25 * (2*((nirchan * nirchan)-(redchan * redchan)) +
1.5*nirchan+0.5*redchan) / (nirchan + redchan + 0.5))) -
( (redchan - 0.125) / (1 - redchan))

GVI: Green Vegetation Index
gvi( bluechan, greenchan, redchan, nirchan, chan5chan, chan7chan)
GVI = ( -0.2848 * bluechan - 0.2435 * greenchan -
0.5436 * redchan + 0.7243 * nirchan + 0.0840 * chan5chan-
0.1800 * chan7chan)

IPVI: Infrared Percentage Vegetation Index
ipvi( redchan, nirchan )
IPVI = nirchan/(nirchan+redchan)

MSAVI2: second Modified Soil Adjusted Vegetation Index
msavi2( redchan, nirchan )
MSAVI2 = (1/2)*(2(NIR+1)-sqrt((2*NIR+1)^2-8(NIR-red)))

MSAVI: Modified Soil Adjusted Vegetation Index
msavi( redchan, nirchan )
MSAVI = s(NIR-s*red-a) / (a*NIR+red-a*s+X*(1+s*s))
where a is the soil line intercept, s is the soil line slope, and X is an adjustment
factor which is set to minimize soil noise (0.08 in original papers).

NDVI: Normalized Difference Vegetation Index
ndvi( redchan, nirchan )
Data Type Band Numbers ([NIR, Red])
MSS Bands = [ 7, 5]
TM1-5,7 Bands = [ 4, 3]
TM8 Bands = [ 5, 4]
AVHRR Bands = [ 2, 1]
SPOT XS Bands = [ 3, 2]
AVIRIS Bands = [51, 29]
NDVI = (NIR - Red) / (NIR + Red)

PVI: Perpendicular Vegetation Index
pvi( redchan, nirchan )
PVI = sin(a)NIR-cos(a)red
for a isovegetation lines (lines of equal vegetation) would all be parallel to the soil
line therefore a=1.

SAVI: Soil Adjusted Vegetation Index
savi( redchan, nirchan )
SAVI = ((1.0+0.5)*(nirchan - redchan)) / (nirchan + redchan +0.5)

SR: Simple Vegetation ratio
sr( redchan, nirchan )
SR = (nirchan/redchan)

VARI: Visible Atmospherically Resistant Index VARI was designed to introduce an
atmospheric self-correction (Gitelson A.A., Kaufman Y.J., Stark R., Rundquist D., 2002.
Novel algorithms for estimation of vegetation fraction Remote Sensing of Environment (80),
vari = ( bluechan, greenchan, redchan )
VARI = (green - red ) / (green + red - blue)

WDVI: Weighted Difference Vegetation Index
wdvi( redchan, nirchan, soil_line_weight )
WDVI = nirchan - a * redchan
if(soil_weight_line == None):
a = 1.0 #slope of soil line


This example is based on a LANDSAT TM7 scene included in the North Carolina sample

Preparation: DN to reflectance
As a first step, the original DN (digital number) pixel values must be converted to
reflectance using i.landsat.toar. To do so, we make a copy (or rename the channels) to
match i.landsat.toar’s input scheme:

g.copy raster=lsat7_2002_10,lsat7_2002.1
g.copy raster=lsat7_2002_20,lsat7_2002.2
g.copy raster=lsat7_2002_30,lsat7_2002.3
g.copy raster=lsat7_2002_40,lsat7_2002.4
g.copy raster=lsat7_2002_50,lsat7_2002.5
g.copy raster=lsat7_2002_61,lsat7_2002.61
g.copy raster=lsat7_2002_62,lsat7_2002.62
g.copy raster=lsat7_2002_70,lsat7_2002.7
g.copy raster=lsat7_2002_80,lsat7_2002.8

Calculation of reflectance values from DN using DOS1 (metadata obtained from

i.landsat.toar input=lsat7_2002. output=lsat7_2002_toar. sensor=tm7 \
method=dos1 date=2002-05-24 sun_elevation=64.7730999 \
product_date=2004-02-12 gain=HHHLHLHHL
The resulting Landsat channels are names lsat7_2002_toar.1 .. lsat7_2002_toar.8.

Calculation of NDVI
The calculation of NDVI from the reflectance values is done as follows:
g.region raster=lsat7_2002_toar.3 -p
i.vi red=lsat7_2002_toar.3 nir=lsat7_2002_toar.4 viname=ndvi \
r.colors lsat7_2002.ndvi color=ndvi
d.mon wx0
d.rast.leg lsat7_2002.ndvi
North Carolina dataset: NDVI

Calculation of ARVI
The calculation of ARVI from the reflectance values is done as follows:
g.region raster=lsat7_2002_toar.3 -p
i.vi blue=lsat7_2002_toar.1 red=lsat7_2002_toar.3 nir=lsat7_2002_toar.4 \
viname=arvi output=lsat7_2002.arvi
d.mon wx0
d.rast.leg lsat7_2002.arvi
North Carolina dataset: ARVI

Calculation of GARI
The calculation of GARI from the reflectance values is done as follows:
g.region raster=lsat7_2002_toar.3 -p
i.vi blue=lsat7_2002_toar.1 green=lsat7_2002_toar.2 red=lsat7_2002_toar.3 \
nir=lsat7_2002_toar.4 viname=gari output=lsat7_2002.gari
d.mon wx0
d.rast.leg lsat7_2002.gari
North Carolina dataset: GARI


Originally from kepler.gps.caltech.edu (FAQ):

A FAQ on Vegetation in Remote Sensing
Written by Terrill W. Ray, Div. of Geological and Planetary Sciences, California Institute
of Technology, email: terrill@mars1.gps.caltech.edu

Snail Mail: Terrill Ray
Division of Geological and Planetary Sciences
Caltech, Mail Code 170-25
Pasadena, CA 91125

Use i.vigrass online using onworks.net services

Free Servers & Workstations

Download Windows & Linux apps

  • 1
    Avogadro is an advanced molecular
    editor designed for cross-platform use
    in computational chemistry, molecular
    modeling, bioinformatics, materials
    science and ...
    Download Avogadro
  • 2
    XMLTV is a set of programs to process
    TV (tvguide) listings and help manage
    your TV viewing, storing listings in an
    XML-based format. There are utilities to
    Download XMLTV
  • 3
    Strikr Free Software project. Artifacts
    released under a 'intent based'
    dual license: AGPLv3 (community) and
    CC-BY-NC-ND 4.0 international
    Download strikr
  • 5
    giflib is a library for reading and
    writing gif images. It is API and ABI
    compatible with libungif which was in
    wide use while the LZW compression
    algorithm was...
    Download GIFLIB
  • 6
    With Hugin you can assemble a mosaic of
    photographs into a complete immersive
    panorama, stitch any series of
    overlapping pictures and much more..
    Audience: Sci...
    Download Hugin
  • 7
    Alt-F provides a free and open source
    alternative firmware for the DLINK
    DNS-320/320L/321/323/325/327L and
    DNR-322L. Alt-F has Samba and NFS;
    supports ext2/3/4...
    Download Alt-F
  • More »

Linux commands