Nikos Alexandris wrote:
> > 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
..
> Will check further - sorry for the noise.

Back to this post with one example (and, maybe I have to test this exact 
pixel/coordinates as in the other post the way Markus N suggested).


In the beginning

g.region rast=B.Trimmed.ToAR.1 -pa res=30 # wrongly map-calced the map to 15m, 
thus using res=


Next, calculating the evi for *simple* Top-of-Atmosphere values, that is 
"i.landsat.toar method=uncorrected"

        i.vi viname=evi blue=B.Trimmed.ToAR.1 red=B.Trimmed.ToAR.3 
nir=B.Trimmed.ToAR.4 output=evi_ToAR --o

gives for example

        r.info -r evi_ToAR
        min=-5905.44171917482
        max=6952.80543731566


Looking for these pixels, e.g.

        r.stats evi_ToAR -g | grep '\-5905'

        784935 2695215 -5905.4417191748
        786465 2694675 -5905.4417191748
        766185 2685615 -5905.4417191748

and

        r.stats evi_ToAR -g | grep '6952\.'

        783435 2690025 6952.8054373157


Then tracing the values that produced this out-of-range value,

        r.what coordinates=784935,2695215 
map=B.Trimmed.ToAR.1,B.Trimmed.ToAR.3,B.Trimmed.ToAR.4,evi_DN,evi_ToAR

        784935|2695215||0.230260364323039|0.110923862670943|0.0614305088322746|
0.35181236673774|-5905.44171917482

and

        r.what coordinates=783435,2690025 
map=B.Trimmed.ToAR.1,B.Trimmed.ToAR.3,B.Trimmed.ToAR.4,evi_DN,evi_ToAR

        783435|2690025||0.228143006540123|0.106632395012542|0.0712654621906476|
0.296610169491526|6952.80543731566


Doing the math in R is like

> blue <- 0.230260364323039
> red <- 0.110923862670943                                                      
>                   
> nir <- 0.0614305088322746                                                     
>                   
> evi <- ( 2.5 * ( nir - red) ) / (nir + 6 * red - 7 * blue + 1.0)
> evi
[1] -1.07453

and

> blue <- 0.228143006540123
> red <- 0.106632395012542                                                      
>                   
> nir <- 0.0712654621906476                                                     
>                   
> evi <- ( 2.5 * ( nir - red) ) / (nir + 6 * red - 7 * blue + 1.0)
> evi                                                                           
>                   
[1] -0.7751909 

What am I doing wrong... ?  Any idea(s)?

More info

r.univar evi_ToAR
 100%

total null and non-null cells: 46883168
total null cells: 11617784

Of the non-null cells:
----------------------
n: 35265384
minimum: -5905.44
maximum: 6952.81
range: 12858.2
mean: -0.041618
mean of absolute values: 0.0923752
standard deviation: 2.31373
variance: 5.35336
variation coefficient: -5559.45 %
sum: -1467674.39355633

Nikos
_______________________________________________
grass-dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/grass-dev

Reply via email to