Statistics
| Revision:

root / org.gvsig.toolbox / trunk / org.gvsig.toolbox / org.gvsig.toolbox.algorithm / src / main / java / es / unex / sextante / gridStatistics / multiGridKurtosis / MultiGridKurtosisAlgorithm.java @ 59

History | View | Annotate | Download (1.34 KB)

1 59 nbrodin
package es.unex.sextante.gridStatistics.multiGridKurtosis;
2
3
import es.unex.sextante.core.Sextante;
4
import es.unex.sextante.gridStatistics.base.MultiGridStatsBaseAlgorithm;
5
6
public class MultiGridKurtosisAlgorithm
7
         extends
8
            MultiGridStatsBaseAlgorithm {
9
10
   @Override
11
   public void defineCharacteristics() {
12
13
      setName(Sextante.getText("Kurtosis"));
14
      setGroup(Sextante.getText("Local_statistics"));
15
      super.defineCharacteristics();
16
17
   }
18
19
20
   @Override
21
   protected double processValues(final double[] dValues) {
22
23
      int i;
24
      int iValidCells = 0;
25
      double dValue;
26
27
      double dMean = 0;
28
      double dDif, dDif2;
29
      double dMom2 = 0;
30
      double dMom4 = 0;
31
32
      for (i = 0; i < dValues.length; i++) {
33
         dValue = dValues[i];
34
         if (dValue != NO_DATA) {
35
            dMean += dValue;
36
            iValidCells++;
37
         }
38
      }
39
      dMean /= iValidCells;
40
      if (iValidCells > 3) {
41
         for (i = 0; i < dValues.length; i++) {
42
            dDif = dValues[i] - dMean;
43
            dDif2 = dDif * dDif;
44
            dMom2 += dDif2;
45
            dMom4 += (dDif2 * dDif2);
46
         }
47
         dMom2 /= iValidCells;
48
         dMom4 /= iValidCells;
49
         return (dMom4 / Math.pow(dMom2, 2));
50
      }
51
      else {
52
         return NO_DATA;
53
      }
54
55
   }
56
57
}