#!/bin/sh # Parameters: 1, 2, 3 - number of LANDSAT band # written by Markus Neteler 21. Jul. 1998, 5. Jan. 1999 # neteler@geog.uni-hannover.de # submodule of i.oif if test "$1" = ""; then echo "You must use i.oif instead of i.oifcalc (this is a submodule)" exit fi # calculate SUM of Stddeviations: $GISBASE/etc/i.oif/m.cutmatrix /tmp/i.oif.stddev 1 $1 > /tmp/i.oif.sum $GISBASE/etc/i.oif/m.cutmatrix /tmp/i.oif.stddev 1 $2 >> /tmp/i.oif.sum $GISBASE/etc/i.oif/m.cutmatrix /tmp/i.oif.stddev 1 $3 >> /tmp/i.oif.sum cat /tmp/i.oif.sum | awk 'BEGIN {sum = 0.0} NR == 1{} {sum += $1 ; N++} END{ print sum > "/tmp/i.oif.calc" }' # calculate SUM of absolute(Correlation values): $GISBASE/etc/i.oif/m.cutmatrix /tmp/i.oif.correlation $1 $2 > /tmp/i.oif.sum $GISBASE/etc/i.oif/m.cutmatrix /tmp/i.oif.correlation $1 $3 >> /tmp/i.oif.sum $GISBASE/etc/i.oif/m.cutmatrix /tmp/i.oif.correlation $2 $3 >> /tmp/i.oif.sum cat /tmp/i.oif.sum | awk 'BEGIN {sum = 0.0} NR == 1{} {sum += sqrt($1*$1) ; N++} # sqrt(x^2) is my ABS-function END{ print sum >> "/tmp/i.oif.calc" }' # Calculate OIF index: # Divide (SUM of Stddeviations) and (SUM of Correlation) cat /tmp/i.oif.calc | awk 'BEGIN {} {count = divisor; divisor = $1;} # value shift - no better idea ;-) END{ print count / divisor }'