Statistics
| Revision:

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

History | View | Annotate | Download (1.33 KB)

1
package es.unex.sextante.gridStatistics.neighborhoodSkewness;
2

    
3
import es.unex.sextante.core.Sextante;
4
import es.unex.sextante.gridStatistics.base.NeighborhoodStatsBaseAlgorithm;
5

    
6
public class NeighborhoodSkewnessAlgorithm
7
         extends
8
            NeighborhoodStatsBaseAlgorithm {
9

    
10
   @Override
11
   public void defineCharacteristics() {
12

    
13
      setName(Sextante.getText("Skeweness__neighbourhood"));
14
      setGroup(Sextante.getText("Focal_statistics"));
15
      super.defineCharacteristics();
16

    
17
   }
18

    
19

    
20
   @Override
21
   protected double processValues() {
22

    
23
      int i;
24
      int iValidCells = 0;
25
      double dValue;
26

    
27
      double dMean = 0;
28
      double dDif;
29
      double dDif2 = 0;
30
      double dDif3 = 0;
31

    
32
      for (i = 0; i < m_dValues.length; i++) {
33
         dValue = m_dValues[i];
34
         if (dValue != NO_DATA) {
35
            dMean += dValue;
36
            iValidCells++;
37
         }
38
      }
39
      dMean /= iValidCells;
40
      if (iValidCells > 2) {
41
         for (i = 0; i < m_dValues.length; i++) {
42
            dDif = m_dValues[i] - dMean;
43
            dDif2 += (dDif * dDif);
44
            dDif3 += (dDif * dDif * dDif);
45
         }
46
         dDif2 /= iValidCells;
47
         dDif3 /= iValidCells;
48
         return (dDif3 / Math.pow(dDif2, 1.5));
49
      }
50
      else {
51
         return NO_DATA;
52
      }
53

    
54
   }
55

    
56
}