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