#!/bin/sh # # This program is Free Software under the GNU GPL (>=v2). # calculate univariate statistics for GRASS raster data # # Cited from the book: # Markus Neteler and Helena Mitasova: # Open Source GIS: A GRASS GIS Approach. # Kluwer Academic Publishers, Boston, Dordrecht, 464 pp, # ISBN: 1-4020-7088-8, http://mpa.itc.it/grasstutor/ if test "$GISBASE" = ""; then echo "You must be in GRASS to run this program." exit fi MAP=$1 r.stats -1 $MAP | awk 'BEGIN {sum = 0.0 ; sum2 = 0.0} NR == 1{min = $2 ; max = $1} {sum += $1 ; sum2 += $1 * $1 ; N++} { if ($1 > max) {max = $1} if ($1 < min) {min = $1} } END{ print "Number of raster data samples N =",N print "Minimum value MIN =",min print "Maximum value MAX =",max print "Variation v =",(max - ((min * -1) * -1)) print "Mean MEAN =",sum / N print "Variance S2 =",(sum2 - sum * sum / N) / N print "Standard deviation S =",sqrt((sum2 - sum * sum/N) / N) print "Variation coeffic. V =",100*(sqrt((sum2 - sum*sum/N)/N))/(sum/N) }'