Statistics
| Revision:

gvsig-raster / org.gvsig.raster / trunk / org.gvsig.raster / org.gvsig.raster.lib / org.gvsig.raster.lib.api / src / main / java / org / gvsig / fmap / dal / coverage / store / RasterStoreProperties.java @ 723

History | View | Annotate | Download (5.21 KB)

1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.fmap.dal.coverage.store;
23

    
24
import org.cresques.cts.IProjection;
25
import org.gvsig.fmap.dal.coverage.datastruct.Extent;
26
import org.gvsig.fmap.dal.coverage.exception.HistogramException;
27
import org.gvsig.fmap.dal.coverage.exception.RasterDriverException;
28
import org.gvsig.fmap.dal.coverage.store.props.ColorInterpretation;
29
import org.gvsig.fmap.dal.coverage.store.props.ColorTable;
30
import org.gvsig.fmap.dal.coverage.store.props.HistogramComputer;
31
import org.gvsig.fmap.dal.coverage.store.props.Metadata;
32
import org.gvsig.fmap.dal.coverage.store.props.Statistics;
33
import org.gvsig.fmap.dal.coverage.store.props.Transparency;
34

    
35

    
36

    
37
/**
38
 * Properties of a raster data store
39
 *
40
 * @author Nacho Brodin (nachobrodin@gmail.com)
41
 */
42
public interface RasterStoreProperties {
43
        //******************************************
44
        //***********Single Properties*************
45
        /**
46
         * Obtiene el tipo de dato por banda
47
         * @return tipo de dato por banda
48
         */
49
        public int[] getDataType();
50

    
51
        /**
52
         * Obtiene el valor NoData asociado al raster.
53
         * @return
54
         */
55
        public double getNoDataValue();
56
        
57
        /**
58
         * Obtiene si esta activo el valor NoData asociado al raster.
59
         * @return
60
         */
61
        public boolean isNoDataEnabled();
62
        
63
        /**
64
         * Obtiene el n?mero de bandas del raster
65
         * @return N?mero de bandas
66
         */
67
        public int getBandCount();
68

    
69
        /**
70
         * Obtiene la altura del raster en p?xeles.
71
         * @return altura
72
         */
73
        public double getHeight();
74

    
75
        /**
76
         * Obtiene la anchura del raster en p?xeles.
77
         * @return anchura
78
         */
79
        public double getWidth();
80
        
81
        /**
82
         * Obtiene el tama?o de celda del raster
83
         * @return Valor del tama?o de celda
84
         */
85
        public double getCellSize();
86
        
87
        /**
88
         * Obtiene el tama?o de pixel en X
89
         * @return tama?o de pixel en X
90
         */
91
        public double getPixelSizeX();
92

    
93
        /**
94
         * Obtiene el tama?o de pixel en Y
95
         * @return tama?o de pixel en Y
96
         */
97
        public double getPixelSizeY();
98
        
99
        /**
100
         * Obtiene el extent del raster.
101
         * @return Extent
102
         */
103
        public Extent getExtent();
104
        
105
        /**
106
         * Este es el extent sobre el que se ajusta una petici?n para que esta no
107
         * exceda el extent m?ximo del raster. Para un raster sin rotar ser? igual al
108
         * extent pero para un raster rotado ser? igual al extent del raster como si
109
         * no tuviera rotaci?n. Esto ha de ser as? ya que la rotaci?n solo se hace
110
         * sobre la vista y las peticiones han de hacerse en coordenadas de la imagen
111
         * sin shearing aplicado.
112
         * @return Extent
113
         */
114
        public Extent getExtentWithoutRot();
115
        
116
        /**
117
         * Obtiene el nombre del dataStore
118
         * @return String 
119
         *         nombre del fichero
120
         */
121
        public String getName();
122
        
123
        /**
124
         * Obtiene la proyecci?n asociada al raster. Como todos los dataset del 
125
         * multiDataset deben tener la misma proyecci?n obtenemos esta del primer
126
         * dataset.
127
         * @return Proyecci?n en formato cadena
128
         * @throws RasterDriverException
129
         */
130
        public String getWktProjection() throws RasterDriverException;
131
        
132
        /**
133
         * Obtiene la proyecci?n del dataset
134
         * @return IProjection
135
         */
136
        public IProjection getProjection();
137
        
138
        
139
        //******************************************
140
        //***********Dataset Properties*************
141
        /**
142
         * Obtiene el objeto que contiene que contiene la interpretaci?n de 
143
         * color por banda para el dataset seleccionado
144
         * @param dataset Dataset del que se necesesita la informaci?n de color dentro del RasterMultiDataset
145
         * @return DatasetColorInterpretation
146
         */
147
        public ColorInterpretation getColorInterpretation();
148
        
149
        /**
150
         * Gets the object with the metadata
151
         * @return
152
         */
153
        public Metadata getMetadata();
154
        
155
        /**
156
         * Obtiene la paleta correspondiente al dataset. 
157
         * @return Paleta asociada a este o null si no tiene
158
         */
159
        public ColorTable getColorTable();
160
        
161
        /**
162
         * Obtiene el estado de transparencia a partir de los estados de transparencia de todos
163
         * los ficheros que lo componen. Si varios de los ficheros que lo componen tienen banda de 
164
         * transparencia estas tendr?n que ser mezcladas sobre una banda de transparencia ?nica.
165
         * @return Objeto FileTransparency con el estado de transparencia
166
         */
167
        public Transparency getTransparency();
168
        
169
        /**
170
         * Obtiene el objeto con las estadisticas
171
         * @return MultiFileStatistics
172
         */
173
        public Statistics getStatistics();
174
        
175
        /**
176
         * Obtiene el histograma asociado al dataset. 
177
         *
178
         * @return Histograma asociado al dataset.
179
         * @throws InterruptedException 
180
         */
181
        public HistogramComputer getHistogramComputer() throws HistogramException, InterruptedException;
182
        
183
}