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 / RasterQuery.java @ 162
History | View | Annotate | Download (8.68 KB)
1 | 61 | nbrodin | /* 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 | 89 | nbrodin | import org.gvsig.fmap.dal.DataQuery; |
25 | 61 | nbrodin | import org.gvsig.fmap.dal.coverage.exception.InvalidSetViewException; |
26 | |||
27 | /**
|
||
28 | * Interfaz que contiene las operaciones que debe soportar la carga de datos
|
||
29 | * raster en un buffer.
|
||
30 | * @author Nacho Brodin (nachobrodin@gmail.com)
|
||
31 | */
|
||
32 | 89 | nbrodin | public interface RasterQuery extends DataQuery { |
33 | 162 | nbrodin | public static final int SINGLE_VALUE = 0; |
34 | public static final int MULTIPLE_VALUE = 1; |
||
35 | public static final int SINGLE_RANGE = 2; |
||
36 | public static final int MULTIPLE_RANGE = 3; |
||
37 | |||
38 | 61 | nbrodin | /**
|
39 | * The user can told if the buffer will be stored or not in the RasterDatasource.
|
||
40 | * @param store
|
||
41 | */
|
||
42 | public void storeLastBuffer(boolean store); |
||
43 | |||
44 | /**
|
||
45 | * Asigna el flag que ajusta el extent de la petici?n al del raster. Si est? a
|
||
46 | * true en caso de que el extent de la petici?n sea mayor lo ajustar? a los limites
|
||
47 | * de este. Si est? a false no lo ajustar? rellenando los valores con NoData
|
||
48 | * @param adjustToExtent true para ajustar y false si no queremos que lo haga. Por defecto
|
||
49 | * estar? a true.
|
||
50 | */
|
||
51 | public void setAdjustToExtent(boolean adjustToExtent); |
||
52 | |||
53 | /**
|
||
54 | * Obtiene el flag que ajusta el extent de la petici?n al del raster. Si est? a
|
||
55 | * true en caso de que el extent de la petici?n sea mayor lo ajustar? a los limites
|
||
56 | * de este. Si est? a false no lo ajustar? rellenando los valores con NoData. Por defecto
|
||
57 | * estar? a true.
|
||
58 | * @return true si ajusta y false si no lo hace
|
||
59 | */
|
||
60 | public boolean isAdjustToExtent(); |
||
61 | |||
62 | /**
|
||
63 | * Para este GeoRasterFile asigna que bandas se pintaran
|
||
64 | * sobre el RasterBuf cuando se haga un update. Cada posici?n del vector es una banda
|
||
65 | * del rasterBuf y el contenido de esa posici?n es la banda de la imagen que se dibujar?
|
||
66 | * sobre ese RasterBuf.
|
||
67 | * @param drawableBands Array con las bandas a dibujar.
|
||
68 | * @return array con tantos elementos como bandas a dibujar. El valor contenido es el fichero del
|
||
69 | * dataset multifichero al que corresponde la banda.
|
||
70 | */
|
||
71 | public void setDrawableBands(int[] drawableBands); |
||
72 | |||
73 | /**
|
||
74 | * Para este GeoRasterFile asigna que bandas se pintaran
|
||
75 | * sobre el RasterBuf cuando se haga un update. Cada posici?n del vector es una banda
|
||
76 | * del rasterBuf y el contenido de esa posici?n es la banda de la imagen que se dibujar?
|
||
77 | * sobre ese RasterBuf. Esta llamada asigna todas las bandas dibujables en su orden natural.
|
||
78 | * @return array con tantos elementos como bandas a dibujar. El valor contenido es el fichero del
|
||
79 | * dataset multifichero al que corresponde la banda.
|
||
80 | */
|
||
81 | public void setAllDrawableBands(); |
||
82 | |||
83 | /**
|
||
84 | * Obtiene el array que contiene el orden de bandas. Cada posici?n del vector es una banda
|
||
85 | * del rasterBuf y el contenido de esa posici?n es la banda de la imagen que se dibujar?
|
||
86 | * sobre ese RasterBuf.
|
||
87 | * @return Array de enteros con el orden de las badas
|
||
88 | */
|
||
89 | public int[] getDrawableBands(); |
||
90 | |||
91 | /**
|
||
92 | * Asigna el flag que dice si la carga del siguiente buffer es de solo lectura o lectura/escritura.
|
||
93 | * La asignaci?n del flag de solo lectura a true debe hacerse para cada consulta.
|
||
94 | * @param readOnly true si la siguiente carga de buffer se hace de solo lectura y false si es de lectura/escritura
|
||
95 | */
|
||
96 | public void setReadOnly(boolean readOnly); |
||
97 | |||
98 | /**
|
||
99 | * Asigna el flag que dice si la carga del siguiente buffer es en memoria
|
||
100 | * @param memory true si la siguiente carga de buffer se hace en memoria y false se deja decidir al dataset
|
||
101 | * el tipo de buffer
|
||
102 | */
|
||
103 | public void setMemoryBuffer(boolean readOnly); |
||
104 | |||
105 | /**
|
||
106 | * Asigna el valor noData con el que se rellenan las celdas cuando se hace una petici?n
|
||
107 | * en la que no se quiere que se ajuste al ?rea del raster. Por defecto noData tendr? el valor
|
||
108 | * que aparece en IBuffer.
|
||
109 | * @param noData
|
||
110 | */
|
||
111 | public void setNoDataToFill(double noData); |
||
112 | |||
113 | /**
|
||
114 | * Consulta el flag de supersampleo en la carga del buffer.
|
||
115 | * <P>
|
||
116 | * Si este flag es false
|
||
117 | * y pasamos un buffer de tama?o mayor que el n?mero de pixels del ?rea requerida en la
|
||
118 | * llamada setAreaOfInterest entonces se ajustar? este buffer al n?mero de pixeles contenidos
|
||
119 | * en el ?rea.
|
||
120 | * </P>
|
||
121 | * <P>
|
||
122 | * Por ejemplo, si solicitamos un ?rea de 5x4 pixels de un raster y pedimos que nos los grabe
|
||
123 | * en un buffer de 500x400, si esta variable es false el buffer lo generar? de 5x4. Si esta
|
||
124 | * variable es true el buffer lo generar? de 500x400.
|
||
125 | * </P>
|
||
126 | *
|
||
127 | * @return true si el supersampleo en la carga del buffer est? activado y false si no lo est?.
|
||
128 | */
|
||
129 | public boolean isSupersamplingLoadingBuffer(); |
||
130 | 131 | nbrodin | |
131 | /**
|
||
132 | * Returns true if the buffer is not writable
|
||
133 | * @return
|
||
134 | */
|
||
135 | public boolean isReadOnly(); |
||
136 | 61 | nbrodin | |
137 | /**
|
||
138 | * Activa o desactiva el supersampling en la carga del buffer.
|
||
139 | * <P>
|
||
140 | * Si este flag es false
|
||
141 | * y pasamos un buffer de tama?o mayor que el n?mero de pixels del ?rea requerida en la
|
||
142 | * llamada setAreaOfInterest entonces se ajustar? este buffer al n?mero de pixeles contenidos
|
||
143 | * en el ?rea.
|
||
144 | * </P>
|
||
145 | * <P>
|
||
146 | * Por ejemplo, si solicitamos un ?rea de 5x4 pixels de un raster y pedimos que nos los grabe
|
||
147 | * en un buffer de 500x400, si esta variable es false el buffer lo generar? de 5x4. Si esta
|
||
148 | * variable es true el buffer lo generar? de 500x400.
|
||
149 | * </P>
|
||
150 | *
|
||
151 | * @param supersamplingLoadingBuffer true o false para activar o desactivar el supersampling en la
|
||
152 | * carga del buffer.
|
||
153 | */
|
||
154 | public void setSupersamplingLoadingBuffer(boolean supersamplingLoadingBuffer); |
||
155 | |||
156 | /**
|
||
157 | * Asigna el ?rea de interes en coordenadas del mundo real. Si las coordenadas exceden del tama?o de la imagen
|
||
158 | * estas coordenadas son ajustadas el extent.
|
||
159 | * @param x Coordenada X, esquina superior izquierda
|
||
160 | * @param y Coordenada Y, esquina superior izquierda
|
||
161 | * @param w Ancho del ?rea
|
||
162 | * @param h Alto del ?rea
|
||
163 | * @throws ArrayIndexOutOfBoundsException
|
||
164 | * @throws InvalidSetViewException
|
||
165 | */
|
||
166 | public void setAreaOfInterest(double x, double y, double w, double h); |
||
167 | |||
168 | /**
|
||
169 | * Asigna el ?rea de interes en coordenadas del mundo real. Si las coordenadas exceden del tama?o de la imagen
|
||
170 | * estas coordenadas son ajustadas el extent.
|
||
171 | * @param x Coordenada X, esquina superior izquierda
|
||
172 | * @param y Coordenada Y, esquina superior izquierda
|
||
173 | * @param w Ancho del ?rea
|
||
174 | * @param h Alto del ?rea
|
||
175 | * @param bufWidth Ancho del buffer
|
||
176 | * @param bufHeight Alto del buffer
|
||
177 | * @return En caso de que el buffer sea mayor que el tama?o seleccionado de raster se produce supersampleo. La funci?n devuelve
|
||
178 | * un array de dos elementos que representan el desplazamiento en pixels de X e Y de la esquina superior izquierda.
|
||
179 | * @throws ArrayIndexOutOfBoundsException
|
||
180 | * @throws InvalidSetViewException
|
||
181 | */
|
||
182 | public void setAreaOfInterest(double ulx, double uly, double lrx, double lry, int bufWidth, int bufHeight); |
||
183 | |||
184 | /**
|
||
185 | * Asigna el ?rea de interes en coordenadas pixel. Si las coordenadas exceden del tama?o de la imagen
|
||
186 | * lanza una excepci?n.
|
||
187 | * @param x Coordenada X, esquina superior izquierda
|
||
188 | * @param y Coordenada Y, esquina superior izquierda
|
||
189 | * @param w Ancho del ?rea
|
||
190 | * @param h Alto del ?rea
|
||
191 | * @throws InvalidSetViewException
|
||
192 | * @throws ArrayIndexOutOfBoundsException
|
||
193 | */
|
||
194 | public void setAreaOfInterest(int x, int y, int w, int h); |
||
195 | |||
196 | /**
|
||
197 | * Asigna el ?rea de inter?s a toda la extensi?n del raster.
|
||
198 | */
|
||
199 | public void setAreaOfInterest(); |
||
200 | |||
201 | /**
|
||
202 | * Asigna el ?rea de interes en coordenadas pixel. Esta operaci?n cargar? un RasterBuffer con los datos solicitados por
|
||
203 | * lo que, si al acabar hacemos getRasterBuf obtendremos la matriz de datos. Si las coordenadas exceden del tama?o
|
||
204 | * de la imagen lanza una excepci?n.
|
||
205 | * @param x Coordenada X, esquina superior izquierda
|
||
206 | * @param y Coordenada Y, esquina superior izquierda
|
||
207 | * @param w Ancho del ?rea
|
||
208 | * @param h Alto del ?rea
|
||
209 | * @param bufWidth Ancho del buffer
|
||
210 | * @param bufHeight Alto del buffer
|
||
211 | * @throws ArrayIndexOutOfBoundsException
|
||
212 | */
|
||
213 | public void setAreaOfInterest(int x, int y, int w, int h, int bufWidth, int bufHeight); |
||
214 | } |