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