Statistics
| Revision:

gvsig-raster / org.gvsig.raster / branches / org.gvsig.raster_dataaccess_refactoring / org.gvsig.raster.lib / org.gvsig.raster.lib.api / src / main / java / org / gvsig / fmap / dal / coverage / store / RasterStoreProperties.java @ 2370

History | View | Annotate | Download (5.88 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 java.awt.Image;
25

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

    
39

    
40

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

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

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

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

    
91
        /**
92
         * Obtiene el tama?o de pixel en Y
93
         * @return tama?o de pixel en Y
94
         */
95
        public double getPixelSizeY();
96
        
97
        /**
98
         * Obtiene el extent del raster.
99
         * @return Extent
100
         */
101
        public Extent getExtent();
102
        
103
        /**
104
         * Este es el extent sobre el que se ajusta una petici?n para que esta no
105
         * exceda el extent m?ximo del raster. Para un raster sin rotar ser? igual al
106
         * extent pero para un raster rotado ser? igual al extent del raster como si
107
         * no tuviera rotaci?n. Esto ha de ser as? ya que la rotaci?n solo se hace
108
         * sobre la vista y las peticiones han de hacerse en coordenadas de la imagen
109
         * sin shearing aplicado.
110
         * @return Extent
111
         */
112
        public Extent getExtentWithoutRot();
113
        
114
        /**
115
         * Obtiene el nombre del dataStore
116
         * @return String 
117
         *         nombre del fichero
118
         */
119
        public String getName();
120
        
121
        /**
122
         * Obtiene la proyecci?n asociada al raster. Como todos los dataset del 
123
         * multiDataset deben tener la misma proyecci?n obtenemos esta del primer
124
         * dataset.
125
         * @return Proyecci?n en formato cadena
126
         * @throws RasterDriverException
127
         */
128
        public String getWktProjection() throws RasterDriverException;
129
        
130
        /**
131
         * Gets the dataset projection
132
         * @return IProjection
133
         */
134
        public IProjection getProjection();
135
        
136
        /**
137
         * Sets the dataset projection
138
         * @param proj
139
         */
140
        public void setProjection(IProjection proj, boolean persist) throws RmfSerializerException;
141
        
142
        
143
        //******************************************
144
        //***********Dataset Properties*************
145
        /**
146
         * Obtiene el objeto que contiene que contiene la interpretaci?n de 
147
         * color por banda para el dataset seleccionado
148
         * @param dataset Dataset del que se necesesita la informaci?n de color dentro del RasterMultiDataset
149
         * @return DatasetColorInterpretation
150
         */
151
        public ColorInterpretation getColorInterpretation();
152
        
153
        public void setColorInterpretation(ColorInterpretation ci);
154
        
155
        /**
156
         * Gets the object with the metadata
157
         * @return
158
         */
159
        public Metadata getMetadata();
160
        
161
        
162
        /**
163
         * Gets the color table.
164
         * @return color table loaded or null if it doesn't have
165
         */
166
        public ColorTable getColorTable();
167
        
168
        /**
169
         * Gets the legend as a image. The store could not have implemented this method .
170
         * This is useful above all for WMS but whatever raster layer 
171
         * could return a legend as image.
172
         * @return
173
         */
174
        public Image getImageLegend();
175
        
176
        /**
177
         * Obtiene el estado de transparencia a partir de los estados de transparencia de todos
178
         * los ficheros que lo componen. Si varios de los ficheros que lo componen tienen banda de 
179
         * transparencia estas tendr?n que ser mezcladas sobre una banda de transparencia ?nica.
180
         * @return Objeto FileTransparency con el estado de transparencia
181
         */
182
        public Transparency getTransparency();
183
        
184
        /**
185
         * Gets the statistics object
186
         * @return MultiFileStatistics
187
         */
188
        public Statistics getStatistics();
189
        
190
        /**
191
         * Sets the statistics object. When the statistics are assigned the rmf is saved
192
         * with the new statistics.
193
         * @param stats
194
         * @throws RmfSerializerException 
195
         */
196
        public void setStatistics(Statistics stats) throws RmfSerializerException;
197
        
198
        /**
199
         * Obtiene el histograma asociado al dataset. 
200
         *
201
         * @return Histograma asociado al dataset.
202
         * @throws InterruptedException 
203
         */
204
        public HistogramComputer getHistogramComputer() throws HistogramException, InterruptedException;
205
        
206
}