[GRASS-dev] Unexpected EVI range from "i.vi"

Nikos Alexandris nik at nikosalexandris.net
Sun Jun 9 16:31:39 PDT 2013


Hi devs.

I get an unexpected range of evi values using "i.vi" (G7), i.e.

	# derive EVI
	i.vi viname=evi red=B.Trimmed.ToAR.3 blue=B.Trimmed.ToAR.1 
nir=B.Trimmed.ToAR.4 output=evi

	# range is...
	r.info -r evi

	min=-6912.82161611806
	max=2264.42037461018

while evi should range in [-1,1].  Both the traditional ndvi and the new(er) 
evi2 are fine, using the same input Landsat bands.

	r.info -r ndvi

	min=-1.8046124457954
	max=0.751867027194004

and

	r.info -r evi2

	min=-0.341919561754256
	max=0.624114796171297

The range of the input L7 bands also looks fine:

	# blue, used for evi
	r.info -r B.Trimmed.ToAR.1

	min=0.085822088033344
	max=0.632558130168047

	# red
	r.info -r B.Trimmed.ToAR.3

	min=-0.00851692799904866
	max=0.640896679014357

	# nir
	r.info -r B.Trimmed.ToAR.4

	min=-0.0207162855708529
	max=0.979352245320124

The region is correctly set to match one of the bands (e.g. nir) and the code 
(evi.c) looks to me (the ignorant) clean:

# cat /geo/osgeo/src/grass_trunk/imagery/i.vi/evi.c
..
	tmp = nirchan + 6.0 * redchan - 7.5 * bluechan + 1.0;
..
		result = 2.5 * (nirchan - redchan) / tmp

What am I doing/interpret wrong?

Regards, Nikos


More information about the grass-dev mailing list