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 @ 859

History | View | Annotate | Download (5.12 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.datastruct.NoData;
27
import org.gvsig.fmap.dal.coverage.exception.HistogramException;
28
import org.gvsig.fmap.dal.coverage.exception.RasterDriverException;
29
import org.gvsig.fmap.dal.coverage.store.props.ColorInterpretation;
30
import org.gvsig.fmap.dal.coverage.store.props.ColorTable;
31
import org.gvsig.fmap.dal.coverage.store.props.HistogramComputer;
32
import org.gvsig.fmap.dal.coverage.store.props.Metadata;
33
import org.gvsig.fmap.dal.coverage.store.props.Statistics;
34
import org.gvsig.fmap.dal.coverage.store.props.Transparency;
35

    
36

    
37

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

    
52
        /**
53
         * Gets the nodata value for this raster
54
         * @return
55
         */
56
        public NoData getNoDataValue();
57
        
58
        /**
59
         * Obtiene el n?mero de bandas del raster
60
         * @return N?mero de bandas
61
         */
62
        public int getBandCount();
63

    
64
        /**
65
         * Obtiene la altura del raster en p?xeles.
66
         * @return altura
67
         */
68
        public double getHeight();
69

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

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