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