root / org.gvsig.toolbox / trunk / org.gvsig.toolbox / org.gvsig.toolbox.algorithm / src / main / java / es / unex / sextante / gridStatistics / multiGridMedian / MultiGridMedianAlgorithm.java @ 59
History | View | Annotate | Download (1.13 KB)
1 |
package es.unex.sextante.gridStatistics.multiGridMedian; |
---|---|
2 |
|
3 |
import java.util.ArrayList; |
4 |
import java.util.Arrays; |
5 |
|
6 |
import es.unex.sextante.core.Sextante; |
7 |
import es.unex.sextante.gridStatistics.base.MultiGridStatsBaseAlgorithm; |
8 |
|
9 |
public class MultiGridMedianAlgorithm |
10 |
extends
|
11 |
MultiGridStatsBaseAlgorithm { |
12 |
|
13 |
@Override
|
14 |
public void defineCharacteristics() { |
15 |
|
16 |
setName(Sextante.getText("Median"));
|
17 |
setGroup(Sextante.getText("Local_statistics"));
|
18 |
super.defineCharacteristics();
|
19 |
|
20 |
} |
21 |
|
22 |
|
23 |
@Override
|
24 |
protected double processValues(final double[] dValues) { |
25 |
|
26 |
int i;
|
27 |
double dValue;
|
28 |
final ArrayList validCells = new ArrayList(); |
29 |
|
30 |
for (i = 0; i < dValues.length; i++) { |
31 |
dValue = dValues[i]; |
32 |
if (dValue != NO_DATA) {
|
33 |
validCells.add(new Double(dValue)); |
34 |
} |
35 |
} |
36 |
|
37 |
if (validCells.size() > 0) { |
38 |
final Object[] array = validCells.toArray(); |
39 |
Arrays.sort(array);
|
40 |
return (((Double) array[validCells.size() / 2]).doubleValue()); |
41 |
} |
42 |
else {
|
43 |
return NO_DATA;
|
44 |
} |
45 |
|
46 |
|
47 |
} |
48 |
|
49 |
} |