Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.library / org.gvsig.raster / org.gvsig.raster.lib / org.gvsig.raster.lib.buffer.api / src / main / java / org / gvsig / raster / lib / buffer / api / statistics / StatisticsBand.java @ 44831

History | View | Annotate | Download (3.99 KB)

1
/* gvSIG. Desktop Geographic Information System.
2
 *
3
 * Copyright ? 2007-2016 gvSIG Association
4
 *
5
 * This program is free software; you can redistribute it and/or
6
 * modify it under the terms of the GNU General Public License
7
 * as published by the Free Software Foundation; either version 2
8
 * of the License, or (at your option) any later version.
9
 *
10
 * This program is distributed in the hope that it will be useful,
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
 * GNU General Public License for more details.
14
 *
15
 * You should have received a copy of the GNU General Public License
16
 * along with this program; if not, write to the Free Software
17
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18
 * MA  02110-1301, USA.
19
 *
20
 * For any additional information, do not hesitate to contact us
21
 * at info AT gvsig.com, or visit our website www.gvsig.com.
22
 */
23
package org.gvsig.raster.lib.buffer.api.statistics;
24

    
25
import org.gvsig.raster.lib.buffer.api.Band;
26
import org.gvsig.tools.task.SimpleTaskStatus;
27

    
28

    
29
/**
30
 * @author fdiaz
31
 *
32
 */
33
public interface StatisticsBand {
34

    
35
    /**
36
     * Gets the number of values by band
37
     *
38
     * @return the number of values by band
39
     */
40
    public long getBandLength();
41

    
42

    
43
    /**
44
     * Obtiene el tipo de datos de la banda
45
     *
46
     * @return el tipo de datos de la banda
47
     */
48
    public int getDataType();
49

    
50
    /**
51
     * Obtiene el valor del segundo m?ximo
52
     *
53
     * @return Valor del segundo m?ximo
54
     */
55
    public double getSecondMax();
56

    
57
    /**
58
     * Obtiene el valor del segundo m?nimo
59
     *
60
     * @return Valor del segundo m?nimo
61
     */
62
    public double getSecondMin();
63

    
64
    /**
65
     * Devuelve el m?ximo valor de la banda
66
     *
67
     * @return maximum
68
     */
69
    public double getMaximum();
70

    
71
    /**
72
     * Devuelve el m?nimo valor de la banda
73
     *
74
     * @return minimum
75
     */
76
    public double getMinimum();
77

    
78
    /**
79
     * Obtiene el valor medio
80
     *
81
     * @return Valor medio
82
     */
83
    public double getMean();
84

    
85
    /**
86
     * Obtiene la varianza
87
     *
88
     * @return Varianza
89
     */
90
    public double getVariance();
91

    
92
    /**
93
     * Obtiene la mediana
94
     *
95
     * @return Median
96
     */
97
    public double getMedian();
98

    
99
    /**
100
     * Obtiene un valor de recorte de colas para un porcentaje dado. Este
101
     * recorte consiste en ordenar los elementos del
102
     * raster (o una muestra de ellos) y devolver el valor que corresponde al
103
     * porcentaje comenzando
104
     * desde el principio del array ordenado y desde el final de ?l (m?nimo y
105
     * m?ximo).
106
     *
107
     * @param percent
108
     *            Porcentaje de recorte
109
     * @return El valor de recorte de colas para el porcentaje dado
110
     */
111
    public double[] getTailTrimValue(double percent);
112

    
113
    /**
114
     * Obtiene un valor de recorte de colas para una posici?n dada. Este recorte
115
     * consiste en ordenar los elementos del
116
     * raster (o una muestra de ellos) y devolver el valor que corresponde al
117
     * porcentaje comenzando
118
     * desde el principio del array ordenado y desde el final de ?l (m?nimo y
119
     * m?ximo).
120
     *
121
     * @param pos
122
     *            posici?n de recorte
123
     * @return el valor de recorte de colas para la posici?n dada
124
     */
125
    public double[] getTailTrimValue(int pos);
126

    
127
    /**
128
     * Obtiene el flag que informa de si las estad?sticas est?n calculadas o no.
129
     *
130
     * @return true indica que est?n calculadas y false que no lo est?n
131
     */
132
    public boolean isCalculated();
133

    
134
    /**
135
     * Throws the thread which figure out statistics
136
     *
137
     * @param status
138
     * @throws FileNotOpenException
139
     * @throws RasterDriverException
140
     * @throws ProcessInterruptedException
141
     */
142
    public void calculate(SimpleTaskStatus status, Band band); //??? scale ???
143

    
144
    /**
145
     * Gets histogram of the band
146
     *
147
     * @return HistogramBand
148
     */
149
    public HistogramBand getHistogramBand();
150

    
151
    /**
152
     * @return NoData values count
153
     */
154
    public long getNoDataValuesCount();
155

    
156

    
157

    
158
}