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
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
}