Revision 1967
org.gvsig.raster.tools/trunk/org.gvsig.raster.tools/org.gvsig.raster.tools.app.basic/src/main/java/org/gvsig/raster/tools/app/basic/tool/GenericToolBarModule.java | ||
---|---|---|
29 | 29 |
import org.gvsig.andami.ui.mdiFrame.MDIFrame; |
30 | 30 |
import org.gvsig.app.project.documents.view.ViewDocument; |
31 | 31 |
import org.gvsig.app.project.documents.view.gui.AbstractViewPanel; |
32 |
import org.gvsig.fmap.dal.coverage.RasterLocator; |
|
32 | 33 |
import org.gvsig.fmap.mapcontext.MapContext; |
33 | 34 |
import org.gvsig.raster.tools.app.basic.RasterToolsUtil; |
34 | 35 |
import org.gvsig.raster.tools.app.basic.tool.analysisview.ViewRasterAnalysisTocMenuEntry; |
... | ... | |
126 | 127 |
point.append("SelectLayer", "", SelectLayerTocMenuEntry.getSingleton()); |
127 | 128 |
point.append("HistogramPanel", "", HistogramTocMenuEntry.getSingleton()); |
128 | 129 |
point.append("ViewColorTable", "",ColorTableTocMenuEntry.getSingleton()); |
129 |
point.append("Overviews", "", OverviewsTocMenuEntry.getSingleton()); |
|
130 |
if(RasterLocator.getManager().isOverviewBuilderSupported()) |
|
131 |
point.append("Overviews", "", OverviewsTocMenuEntry.getSingleton()); |
|
130 | 132 |
point.append("RoisManager", "", ROIManagerTocMenuEntry.getSingleton()); |
131 | 133 |
point.append("ViewRasterAnalysis", "", ViewRasterAnalysisTocMenuEntry.getSingleton()); |
132 | 134 |
point.append("ZoomResolutionLevel", "", ZoomResolutionLevelTocMenuEntry.getSingleton()); |
org.gvsig.raster.tools/trunk/org.gvsig.raster.tools/org.gvsig.raster.tools.app.basic/src/main/java/org/gvsig/raster/tools/app/basic/tool/overview/OverviewsTocMenuEntry.java | ||
---|---|---|
30 | 30 |
import org.gvsig.andami.PluginServices; |
31 | 31 |
import org.gvsig.app.project.documents.view.toc.AbstractTocContextMenuAction; |
32 | 32 |
import org.gvsig.app.project.documents.view.toc.ITocItem; |
33 |
import org.gvsig.fmap.dal.coverage.RasterLocator; |
|
33 | 34 |
import org.gvsig.fmap.dal.coverage.exception.BandAccessException; |
34 | 35 |
import org.gvsig.fmap.dal.coverage.exception.RasterDriverException; |
35 | 36 |
import org.gvsig.fmap.mapcontext.exceptions.ReloadLayerException; |
... | ... | |
106 | 107 |
* @see com.iver.cit.gvsig.project.documents.view.toc.AbstractTocContextMenuAction#isEnabled(com.iver.cit.gvsig.project.documents.view.toc.ITocItem, com.iver.cit.gvsig.fmap.layers.FLayer[]) |
107 | 108 |
*/ |
108 | 109 |
public boolean isEnabled(ITocItem item, FLayer[] selectedItems) { |
110 |
if(!RasterLocator.getManager().isOverviewBuilderSupported()) |
|
111 |
return false; |
|
112 |
|
|
109 | 113 |
if ((selectedItems == null) || (selectedItems.length != 1)) |
110 | 114 |
return false; |
111 | 115 |
|
... | ... | |
129 | 133 |
* @see com.iver.cit.gvsig.project.documents.view.toc.AbstractTocContextMenuAction#isVisible(com.iver.cit.gvsig.project.documents.view.toc.ITocItem, com.iver.cit.gvsig.fmap.layers.FLayer[]) |
130 | 134 |
*/ |
131 | 135 |
public boolean isVisible(ITocItem item, FLayer[] selectedItems) { |
136 |
if(!RasterLocator.getManager().isOverviewBuilderSupported()) |
|
137 |
return false; |
|
138 |
|
|
132 | 139 |
if ((selectedItems == null) || (selectedItems.length != 1)) |
133 | 140 |
return false; |
134 | 141 |
|
org.gvsig.raster.tools/trunk/org.gvsig.raster.tools/org.gvsig.raster.tools.app.basic/src/main/java/org/gvsig/raster/tools/app/basic/raster/process/OverviewsProcess.java | ||
---|---|---|
41 | 41 |
private int value = 0; |
42 | 42 |
private int resamplingAlg = OverviewBuilder.AVERAGE; |
43 | 43 |
private int[] overviews = new int[] { 2, 4, 8, 16 }; |
44 |
private String builder = "GDAL"; |
|
44 | 45 |
|
45 | 46 |
/* |
46 | 47 |
* (non-Javadoc) |
... | ... | |
48 | 49 |
*/ |
49 | 50 |
public void init() { |
50 | 51 |
rasterSE = getLayerParam("layer"); |
52 |
builder = getStringParam("builder") != null ? getStringParam("builder") : builder; |
|
51 | 53 |
|
52 | 54 |
int overviewsRate = 2; |
53 | 55 |
int nOverviews = 4; |
... | ... | |
71 | 73 |
*/ |
72 | 74 |
public void process() throws ProcessException { |
73 | 75 |
insertLineLog(PluginServices.getText(this, "overviews_generating")); |
74 |
OverviewBuilder overviewBuilder = RasterLocator.getManager().createOverviewBuilder();
|
|
76 |
OverviewBuilder overviewBuilder = RasterLocator.getManager().getOverviewBuilder(builder);
|
|
75 | 77 |
|
76 | 78 |
overviewBuilder.setIncrementListener(this); |
77 | 79 |
try { |
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.api/src/main/java/org/gvsig/fmap/dal/coverage/RasterManager.java | ||
---|---|---|
24 | 24 |
import java.awt.geom.AffineTransform; |
25 | 25 |
import java.awt.geom.Dimension2D; |
26 | 26 |
import java.io.FileNotFoundException; |
27 |
import java.util.Set; |
|
27 | 28 |
|
28 | 29 |
import org.cresques.cts.IProjection; |
29 | 30 |
import org.gvsig.fmap.dal.DataStoreParameters; |
... | ... | |
133 | 134 |
* Gets an instance of the overview builder registered |
134 | 135 |
* @return OverviewBuilder |
135 | 136 |
*/ |
136 |
public OverviewBuilder createOverviewBuilder();
|
|
137 |
public OverviewBuilder getOverviewBuilder(String id);
|
|
137 | 138 |
|
139 |
/** |
|
140 |
* REturns true if the overview builder is supported |
|
141 |
* @return |
|
142 |
*/ |
|
143 |
public boolean isOverviewBuilderSupported(); |
|
144 |
|
|
145 |
/** |
|
146 |
* Gets the list of keys in the overview builder |
|
147 |
* @return |
|
148 |
*/ |
|
149 |
public Set<String> getOverviewBuilderKeyList(); |
|
150 |
|
|
138 | 151 |
/** |
139 | 152 |
* Builds a new service to recover historical objects |
140 | 153 |
* @return |
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.api/src/main/java/org/gvsig/fmap/dal/coverage/util/ProviderServices.java | ||
---|---|---|
32 | 32 |
import org.gvsig.fmap.dal.coverage.exception.ProcessInterruptedException; |
33 | 33 |
import org.gvsig.fmap.dal.coverage.exception.RasterDriverException; |
34 | 34 |
import org.gvsig.fmap.dal.coverage.exception.RmfSerializerException; |
35 |
import org.gvsig.fmap.dal.coverage.process.overview.OverviewBuilder; |
|
35 | 36 |
import org.gvsig.fmap.dal.coverage.store.RasterDataStore; |
36 | 37 |
import org.gvsig.fmap.dal.coverage.store.parameter.RasterDataParameters; |
37 | 38 |
import org.gvsig.fmap.dal.coverage.store.props.ColorInterpretation; |
... | ... | |
77 | 78 |
public void registerTileProviderFormats(Class<?> c); |
78 | 79 |
|
79 | 80 |
/** |
81 |
* Registers a implementation to create overviews |
|
82 |
* @param ovBuilder |
|
83 |
*/ |
|
84 |
public void registerOverviewBuilderImplementation(String id, OverviewBuilder ovBuilder); |
|
85 |
|
|
86 |
/** |
|
80 | 87 |
* Register a format and a provider which is capable to manage this format |
81 | 88 |
* @param ext Extension |
82 | 89 |
* @param c Provider class |
... | ... | |
172 | 179 |
* @param value |
173 | 180 |
* @throws RmfSerializerException |
174 | 181 |
*/ |
175 |
@SuppressWarnings("unchecked") |
|
176 |
public void saveObjectToRmfFile(String file, Class class1, Object value) throws RmfSerializerException; |
|
182 |
public void saveObjectToRmfFile(String file, Class<?> class1, Object value) throws RmfSerializerException; |
|
177 | 183 |
|
178 | 184 |
/** |
179 | 185 |
* The object passed by parameter is saved in the selected file (in RMF format) |
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/util/DefaultProviderServices.java | ||
---|---|---|
47 | 47 |
import org.gvsig.fmap.dal.coverage.exception.ProcessInterruptedException; |
48 | 48 |
import org.gvsig.fmap.dal.coverage.exception.RasterDriverException; |
49 | 49 |
import org.gvsig.fmap.dal.coverage.exception.RmfSerializerException; |
50 |
import org.gvsig.fmap.dal.coverage.process.overview.OverviewBuilder; |
|
50 | 51 |
import org.gvsig.fmap.dal.coverage.store.DataServerWriter; |
51 | 52 |
import org.gvsig.fmap.dal.coverage.store.RasterDataStore; |
52 | 53 |
import org.gvsig.fmap.dal.coverage.store.RasterWriter; |
... | ... | |
527 | 528 |
public void registerTileProviderFormats(Class<?> c) { |
528 | 529 |
getManager().registerTileProviderFormats(c); |
529 | 530 |
} |
531 |
|
|
532 |
public void registerOverviewBuilderImplementation(String id, OverviewBuilder ovBuilder) { |
|
533 |
DefaultRasterManager.overviewBuilderRegistry.put(id, ovBuilder); |
|
534 |
} |
|
530 | 535 |
} |
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/DefaultRasterManager.java | ||
---|---|---|
27 | 27 |
import java.lang.reflect.InvocationTargetException; |
28 | 28 |
import java.util.ArrayList; |
29 | 29 |
import java.util.HashMap; |
30 |
import java.util.Set; |
|
30 | 31 |
|
31 | 32 |
import org.cresques.cts.IProjection; |
32 | 33 |
import org.gvsig.fmap.dal.DALLocator; |
... | ... | |
90 | 91 |
import org.gvsig.raster.impl.process.DefaultTaskEventManager; |
91 | 92 |
import org.gvsig.raster.impl.process.RasterTask; |
92 | 93 |
import org.gvsig.raster.impl.process.RasterTaskQueue; |
93 |
import org.gvsig.raster.impl.process.overview.GdalOverviewBuilder; |
|
94 | 94 |
import org.gvsig.raster.impl.process.vector.PotraceVectorization; |
95 | 95 |
import org.gvsig.raster.impl.provider.DefaultRasterProvider; |
96 | 96 |
import org.gvsig.raster.impl.provider.RasterProvider; |
... | ... | |
134 | 134 |
private static ArrayList<Class<?>> tiledProviders = new ArrayList<Class<?>>(); |
135 | 135 |
private static HashMap<String, ArrayList<Class<?>>> |
136 | 136 |
formatsRegistry = new HashMap<String, ArrayList<Class<?>>>(); |
137 |
public static HashMap<String, OverviewBuilder> |
|
138 |
overviewBuilderRegistry = new HashMap<String, OverviewBuilder>(); |
|
137 | 139 |
|
138 | 140 |
/** |
139 | 141 |
* Gets an instance of this object for internal use. |
... | ... | |
143 | 145 |
return internalInstance; |
144 | 146 |
} |
145 | 147 |
|
146 |
/* |
|
147 |
* (non-Javadoc) |
|
148 |
* @see org.gvsig.fmap.dal.coverage.RasterManager#getDataStructFactory() |
|
149 |
*/ |
|
150 | 148 |
public DataStructFactory getDataStructFactory() { |
151 | 149 |
if(dataStructFactory == null) |
152 | 150 |
dataStructFactory = new DefaultDataStructFactory(); |
153 | 151 |
return dataStructFactory; |
154 | 152 |
} |
155 | 153 |
|
156 |
/* |
|
157 |
* (non-Javadoc) |
|
158 |
* @see org.gvsig.fmap.dal.coverage.RasterManager#getProviderServices() |
|
159 |
*/ |
|
160 | 154 |
public ProviderServices getProviderServices() { |
161 | 155 |
if(pInfo == null) |
162 | 156 |
pInfo = new DefaultProviderServices(); |
163 | 157 |
return pInfo; |
164 | 158 |
} |
165 | 159 |
|
166 |
/* |
|
167 |
* (non-Javadoc) |
|
168 |
* @see org.gvsig.fmap.dal.coverage.RasterManager#getCRSUtils() |
|
169 |
*/ |
|
170 | 160 |
public CRSUtils getCRSUtils() { |
171 | 161 |
if(crs == null) |
172 | 162 |
crs = new DefaultCRSUtils(); |
173 | 163 |
return crs; |
174 | 164 |
} |
175 | 165 |
|
176 |
/* |
|
177 |
* (non-Javadoc) |
|
178 |
* @see org.gvsig.fmap.dal.coverage.RasterManager#getFileUtils() |
|
179 |
*/ |
|
180 | 166 |
public FileUtils getFileUtils() { |
181 | 167 |
if(file == null) |
182 | 168 |
file = new DefaultFileUtils(); |
183 | 169 |
return file; |
184 | 170 |
} |
185 | 171 |
|
186 |
/* |
|
187 |
* (non-Javadoc) |
|
188 |
* @see org.gvsig.fmap.dal.coverage.RasterManager#getRasterUtils() |
|
189 |
*/ |
|
190 | 172 |
public RasterUtils getRasterUtils() { |
191 | 173 |
if(util == null) |
192 | 174 |
util = new DefaultRasterUtils(); |
193 | 175 |
return util; |
194 | 176 |
} |
195 | 177 |
|
196 |
/* |
|
197 |
* (non-Javadoc) |
|
198 |
* @see org.gvsig.fmap.dal.coverage.RasterManager#getMathUtils() |
|
199 |
*/ |
|
200 | 178 |
public MathUtils getMathUtils() { |
201 | 179 |
if(math == null) |
202 | 180 |
math = new DefaultMathUtils(); |
203 | 181 |
return math; |
204 | 182 |
} |
205 | 183 |
|
206 |
/* |
|
207 |
* (non-Javadoc) |
|
208 |
* @see org.gvsig.fmap.dal.coverage.RasterManager#getRasterService() |
|
209 |
*/ |
|
210 | 184 |
public RasterService getRasterService() |
211 | 185 |
throws ServiceException { |
212 | 186 |
RasterService fc = new DefaultRasterService(this); |
213 | 187 |
return fc; |
214 | 188 |
} |
215 | 189 |
|
216 |
/* |
|
217 |
* (non-Javadoc) |
|
218 |
* @see org.gvsig.fmap.dal.coverage.RasterManager#getLegendFormats() |
|
219 |
*/ |
|
220 | 190 |
public String[] getLegendFormats() { |
221 | 191 |
return RasterLegendIO.formats; |
222 | 192 |
} |
223 | 193 |
|
224 |
/* |
|
225 |
* (non-Javadoc) |
|
226 |
* @see org.gvsig.fmap.dal.coverage.RasterManager#getRasterLegendIO(java.lang.String) |
|
227 |
*/ |
|
228 | 194 |
public RasterLegend getRasterLegendIO(String formatName) throws RasterLegendIONotFound { |
229 | 195 |
if (formatName.equals(RasterLegendIO.formats[0])) |
230 | 196 |
return new LegendgvSIG(); |
... | ... | |
243 | 209 |
return new DefaultDataServerWriter(); |
244 | 210 |
} |
245 | 211 |
|
246 |
/* |
|
247 |
* (non-Javadoc) |
|
248 |
* @see org.gvsig.fmap.dal.coverage.RasterManager#open(org.gvsig.fmap.dal.raster.spi.CoverageStoreProvider, int) |
|
249 |
*/ |
|
250 | 212 |
public RasterDataStore open(CoverageStoreProvider prov, DataStoreParameters params) throws NotSupportedExtensionException, RasterDriverException { |
251 | 213 |
if(prov instanceof RasterProvider) { |
252 | 214 |
DefaultRasterStore store = new DefaultRasterStore(); |
... | ... | |
261 | 223 |
return null; |
262 | 224 |
} |
263 | 225 |
|
264 |
/* |
|
265 |
* (non-Javadoc) |
|
266 |
* @see org.gvsig.fmap.dal.coverage.RasterManager#open(org.cresques.cts.IProjection, java.lang.Object) |
|
267 |
*/ |
|
268 | 226 |
public RasterDataStore open(DataStoreParameters params) throws NotSupportedExtensionException, RasterDriverException { |
269 | 227 |
if(params == null || !(params instanceof AbstractRasterDataParameters)) |
270 | 228 |
return null; |
... | ... | |
281 | 239 |
return dSet; |
282 | 240 |
} |
283 | 241 |
|
284 |
/* |
|
285 |
* (non-Javadoc) |
|
286 |
* @see org.gvsig.fmap.dal.coverage.RasterManager#open(org.cresques.cts.IProjection, java.lang.Object) |
|
287 |
*/ |
|
288 | 242 |
public RasterDataStore open(Object datasetOpenParam) throws NotSupportedExtensionException, RasterDriverException { |
289 | 243 |
DefaultRasterStore dSet = new DefaultRasterStore(); |
290 | 244 |
|
... | ... | |
332 | 286 |
return null; |
333 | 287 |
} |
334 | 288 |
|
335 |
/* |
|
336 |
* (non-Javadoc) |
|
337 |
* @see org.gvsig.fmap.dal.coverage.RasterManager#getQuery() |
|
338 |
*/ |
|
339 | 289 |
public RasterQuery createQuery() { |
340 | 290 |
return new DefaultRasterQuery(); |
341 | 291 |
} |
342 | 292 |
|
343 |
/* |
|
344 |
* (non-Javadoc) |
|
345 |
* @see org.gvsig.fmap.dal.coverage.RasterManager#getBuffer(int, int, int, int, boolean) |
|
346 |
*/ |
|
347 | 293 |
public Buffer createBuffer(int dataType, int width, int height, int bandNr, boolean malloc) { |
348 | 294 |
//Opci?n de cachear siempre activada (Solo DEBUG) |
349 | 295 |
if(RasterBuffer.forceToLoadInCache) |
... | ... | |
363 | 309 |
return new RasterMemoryBuffer(dataType, width, height, bandNr, malloc); |
364 | 310 |
} |
365 | 311 |
|
366 |
/* |
|
367 |
* (non-Javadoc) |
|
368 |
* @see org.gvsig.fmap.dal.coverage.RasterManager#getReadOnlyBuffer(int, int, int, int) |
|
369 |
*/ |
|
370 | 312 |
public Buffer createReadOnlyBuffer(int dataType, int width, int height, int bandNr) { |
371 | 313 |
return new RasterReadOnlyBuffer(dataType, width, height, bandNr); |
372 | 314 |
} |
373 | 315 |
|
374 |
/* |
|
375 |
* (non-Javadoc) |
|
376 |
* @see org.gvsig.fmap.dal.coverage.RasterManager#getMemoryBuffer(int, int, int, int, boolean) |
|
377 |
*/ |
|
378 | 316 |
public Buffer createMemoryBuffer(int dataType, int width, int height, int bandNr, boolean malloc) { |
379 | 317 |
return new RasterMemoryBuffer(dataType, width, height, bandNr, malloc); |
380 | 318 |
} |
381 | 319 |
|
382 |
/* |
|
383 |
* (non-Javadoc) |
|
384 |
* @see org.gvsig.fmap.dal.coverage.RasterManager#getWriter(java.lang.String) |
|
385 |
*/ |
|
386 | 320 |
@SuppressWarnings("unchecked") |
387 | 321 |
public RasterWriter createWriter(String fName) throws NotSupportedExtensionException, RasterDriverException { |
388 | 322 |
String ext = getFileUtils().getExtensionFromFileName(fName); |
... | ... | |
416 | 350 |
return grw; |
417 | 351 |
} |
418 | 352 |
|
419 |
/* |
|
420 |
* (non-Javadoc) |
|
421 |
* @see org.gvsig.fmap.dal.coverage.RasterManager#getWriter(org.gvsig.fmap.dal.coverage.dataset.DataServerWriter, java.lang.String, int, java.awt.geom.AffineTransform, int, int, int, org.gvsig.fmap.dal.coverage.datastruct.Params, org.cresques.cts.IProjection) |
|
422 |
*/ |
|
423 | 353 |
public RasterWriter createWriter(DataServerWriter dataWriter, |
424 | 354 |
String outFileName, |
425 | 355 |
int nBands, |
... | ... | |
432 | 362 |
return createWriter(dataWriter, outFileName, nBands, at, outSizeX, outSizeY, dataType, params, proj, true); |
433 | 363 |
} |
434 | 364 |
|
435 |
/* |
|
436 |
* (non-Javadoc) |
|
437 |
* @see org.gvsig.fmap.dal.coverage.RasterManager#getWriter(org.gvsig.fmap.dal.coverage.dataset.DataServerWriter, java.lang.String, int, java.awt.geom.AffineTransform, int, int, int, org.gvsig.fmap.dal.coverage.datastruct.Params, org.cresques.cts.IProjection, boolean) |
|
438 |
*/ |
|
439 | 365 |
@SuppressWarnings("unchecked") |
440 | 366 |
public RasterWriter createWriter(DataServerWriter dataWriter, |
441 | 367 |
String outFileName, |
... | ... | |
479 | 405 |
return grw; |
480 | 406 |
} |
481 | 407 |
|
482 |
/* |
|
483 |
* (non-Javadoc) |
|
484 |
* @see org.gvsig.fmap.dal.coverage.RasterManager#getWriterParams(java.lang.String) |
|
485 |
*/ |
|
486 | 408 |
public Params createWriterParams(String fileName) { |
487 | 409 |
try { |
488 | 410 |
return createWriter(fileName).getParams(); |
... | ... | |
506 | 428 |
return new PotraceVectorization(queryable); |
507 | 429 |
} |
508 | 430 |
|
509 |
/* |
|
510 |
* (non-Javadoc) |
|
511 |
* @see org.gvsig.fmap.dal.coverage.RasterManager#getOverviewBuilder() |
|
512 |
*/ |
|
513 |
public OverviewBuilder createOverviewBuilder() { |
|
514 |
return new GdalOverviewBuilder(); |
|
431 |
public OverviewBuilder getOverviewBuilder(String id) { |
|
432 |
return overviewBuilderRegistry.get(id); |
|
515 | 433 |
} |
434 |
|
|
435 |
public boolean isOverviewBuilderSupported() { |
|
436 |
return overviewBuilderRegistry.size() > 0; |
|
437 |
} |
|
438 |
|
|
516 | 439 |
|
517 |
/*
|
|
518 |
* (non-Javadoc)
|
|
519 |
* @see org.gvsig.fmap.dal.coverage.RasterManager#createColorInterpretation()
|
|
520 |
*/ |
|
440 |
public Set<String> getOverviewBuilderKeyList() {
|
|
441 |
return overviewBuilderRegistry.keySet();
|
|
442 |
}
|
|
443 |
|
|
521 | 444 |
public ColorInterpretation createColorInterpretation(String[] colorInterp) { |
522 | 445 |
return new DataStoreColorInterpretation(colorInterp); |
523 | 446 |
} |
524 | 447 |
|
525 |
/* |
|
526 |
* (non-Javadoc) |
|
527 |
* @see org.gvsig.fmap.dal.coverage.RasterManager#createGrid(org.gvsig.fmap.dal.coverage.buffer.RasterDataSource, int[], org.gvsig.fmap.dal.coverage.datastruct.GridExtent) |
|
528 |
*/ |
|
529 | 448 |
public Grid createGrid(RasterDataStore datasource, int[] bands, GridExtent windowExtent) throws RasterBufferInvalidException { |
530 | 449 |
return new GridImpl(datasource, bands, windowExtent); |
531 | 450 |
} |
532 | 451 |
|
533 |
/* |
|
534 |
* (non-Javadoc) |
|
535 |
* @see org.gvsig.fmap.dal.coverage.RasterManager#createGrid(org.gvsig.fmap.dal.coverage.buffer.RasterDataSource, int[]) |
|
536 |
*/ |
|
537 | 452 |
public Grid createGrid(RasterDataStore datasource, int[] bands) throws RasterBufferInvalidException { |
538 | 453 |
return new GridImpl(datasource, bands); |
539 | 454 |
} |
540 | 455 |
|
541 |
/* |
|
542 |
* (non-Javadoc) |
|
543 |
* @see org.gvsig.fmap.dal.coverage.RasterManager#createGrid(org.gvsig.fmap.dal.coverage.buffer.RasterDataSource) |
|
544 |
*/ |
|
545 | 456 |
public Grid createGrid(RasterDataStore datasource) throws RasterBufferInvalidException { |
546 | 457 |
return new GridImpl(datasource); |
547 | 458 |
} |
548 | 459 |
|
549 |
/* |
|
550 |
* (non-Javadoc) |
|
551 |
* @see org.gvsig.fmap.dal.coverage.RasterManager#createGrid(org.gvsig.fmap.dal.coverage.datastruct.GridExtent, org.gvsig.fmap.dal.coverage.datastruct.GridExtent, int, int[]) |
|
552 |
*/ |
|
553 | 460 |
public Grid createGrid(GridExtent layerExtent, |
554 | 461 |
GridExtent windowExtent, |
555 | 462 |
int dataType, |
... | ... | |
557 | 464 |
return new GridImpl(layerExtent, windowExtent, dataType, bands); |
558 | 465 |
} |
559 | 466 |
|
560 |
/* |
|
561 |
* (non-Javadoc) |
|
562 |
* @see org.gvsig.fmap.dal.coverage.RasterManager#createGrid(org.gvsig.fmap.dal.coverage.buffer.Buffer, org.gvsig.fmap.dal.coverage.buffer.RasterDataSource, boolean) |
|
563 |
*/ |
|
564 | 467 |
public Grid createGrid(Buffer buf, RasterDataStore datasource, boolean notInterp) { |
565 | 468 |
return new GridImpl(buf, datasource, notInterp); |
566 | 469 |
} |
567 | 470 |
|
568 |
/* |
|
569 |
* (non-Javadoc) |
|
570 |
* @see org.gvsig.fmap.dal.coverage.RasterManager#createHistoricalService() |
|
571 |
*/ |
|
572 | 471 |
public Historical createHistoricalService() { |
573 | 472 |
return new DefaultHistorical(); |
574 | 473 |
} |
575 | 474 |
|
576 |
/* |
|
577 |
* (non-Javadoc) |
|
578 |
* @see org.gvsig.fmap.dal.coverage.RasterManager#createViewPortData(org.cresques.cts.IProjection, org.gvsig.fmap.dal.coverage.datastruct.Extent, java.awt.geom.Dimension2D) |
|
579 |
*/ |
|
580 | 475 |
public ViewPortData createViewPortData(IProjection proj, Extent extent, Dimension2D size) { |
581 | 476 |
return new DefaultViewPortData(proj, extent, size); |
582 | 477 |
} |
583 | 478 |
|
584 |
/* |
|
585 |
* (non-Javadoc) |
|
586 |
* @see org.gvsig.fmap.dal.coverage.RasterManager#createViewPortData() |
|
587 |
*/ |
|
588 | 479 |
public ViewPortData createViewPortData() { |
589 | 480 |
return new DefaultViewPortData(); |
590 | 481 |
} |
591 | 482 |
|
592 |
/* |
|
593 |
* (non-Javadoc) |
|
594 |
* @see org.gvsig.fmap.dal.coverage.RasterManager#getColorConversion() |
|
595 |
*/ |
|
596 | 483 |
public ColorConversion getColorConversion() { |
597 | 484 |
if(colorConversion == null) |
598 | 485 |
colorConversion = new DefaultColorConversion(); |
599 | 486 |
return colorConversion; |
600 | 487 |
} |
601 | 488 |
|
602 |
/* |
|
603 |
* (non-Javadoc) |
|
604 |
* @see org.gvsig.fmap.dal.coverage.RasterManager#getROIStatistics(org.gvsig.fmap.dal.coverage.grid.AbstractROI) |
|
605 |
*/ |
|
606 | 489 |
public Statistics createROIStatistics(AbstractROI roi) { |
607 | 490 |
return new ROIStatistic(roi); |
608 | 491 |
} |
609 | 492 |
|
610 |
/* |
|
611 |
* (non-Javadoc) |
|
612 |
* @see org.gvsig.fmap.dal.coverage.RasterManager#createEmptyFilterList() |
|
613 |
*/ |
|
614 | 493 |
public RasterFilterList createEmptyFilterList(int type) { |
615 | 494 |
DefaultRasterFilterList fl = new DefaultRasterFilterList(); |
616 | 495 |
fl.setInitDataType(type); |
617 | 496 |
return fl; |
618 | 497 |
} |
619 | 498 |
|
620 |
/* |
|
621 |
* (non-Javadoc) |
|
622 |
* @see org.gvsig.fmap.dal.coverage.RasterManager#getRasterTask() |
|
623 |
*/ |
|
624 | 499 |
public TaskEventManager getRasterTask() { |
625 | 500 |
return DefaultTaskEventManager.get(); |
626 | 501 |
} |
627 | 502 |
|
628 |
/* |
|
629 |
* (non-Javadoc) |
|
630 |
* @see org.gvsig.fmap.dal.coverage.RasterManager#createRasterTask(java.lang.Object) |
|
631 |
*/ |
|
632 | 503 |
public TaskEventManager createRasterTask(Object process) { |
633 | 504 |
RasterTask task = RasterTaskQueue.getRasterTask(Thread.currentThread().getId() + ""); |
634 | 505 |
if(task != null) { |
... | ... | |
658 | 529 |
return params; |
659 | 530 |
} |
660 | 531 |
|
661 |
/* |
|
662 |
* (non-Javadoc) |
|
663 |
* @see org.gvsig.fmap.dal.coverage.RasterManager#registerTiledProviders(org.gvsig.fmap.dal.raster.spi.CoverageStoreProvider) |
|
664 |
*/ |
|
665 | 532 |
public void registerFileProvidersTiled(Class<?> provider) { |
666 | 533 |
if(!tiledProviders.contains(provider)) |
667 | 534 |
tiledProviders.add(provider); |
668 | 535 |
} |
669 | 536 |
|
670 |
/* |
|
671 |
* (non-Javadoc) |
|
672 |
* @see org.gvsig.fmap.dal.coverage.RasterManager#registerTileProviderFormats(java.lang.Class) |
|
673 |
*/ |
|
674 | 537 |
public void registerTileProviderFormats(Class<?> c) { |
675 | 538 |
if(tileclass == null) { |
676 | 539 |
if(RasterProvider.class.isAssignableFrom(c)) { |
... | ... | |
687 | 550 |
} |
688 | 551 |
} |
689 | 552 |
|
690 |
/* |
|
691 |
* (non-Javadoc) |
|
692 |
* @see org.gvsig.fmap.dal.coverage.RasterManager#getTiledProviders() |
|
693 |
*/ |
|
694 | 553 |
@SuppressWarnings("unchecked") |
695 | 554 |
private ArrayList<?> getTiledProvidersInstance() { |
696 | 555 |
ArrayList list = new ArrayList(); |
... | ... | |
716 | 575 |
return list; |
717 | 576 |
} |
718 | 577 |
|
719 |
/* |
|
720 |
* (non-Javadoc) |
|
721 |
* @see org.gvsig.fmap.dal.coverage.RasterManager#addFormat(java.lang.String, java.lang.Class) |
|
722 |
*/ |
|
723 | 578 |
public void addFormat(String ext, Class<?> c) { |
724 | 579 |
ArrayList<Class<?>> list = formatsRegistry.get(ext); |
725 | 580 |
if(list == null) { |
... | ... | |
732 | 587 |
} |
733 | 588 |
} |
734 | 589 |
|
735 |
/* |
|
736 |
* (non-Javadoc) |
|
737 |
* @see org.gvsig.fmap.dal.coverage.RasterManager#isExtensionSupported(java.lang.String, java.lang.Class) |
|
738 |
*/ |
|
739 | 590 |
public boolean isExtensionSupported(String ext, Class<?> c) { |
740 | 591 |
String extension = getFileUtils().getExtensionFromFileName(ext); |
741 | 592 |
|
... | ... | |
751 | 602 |
return false; |
752 | 603 |
} |
753 | 604 |
|
754 |
/* |
|
755 |
* (non-Javadoc) |
|
756 |
* @see org.gvsig.fmap.dal.coverage.RasterManager#isExtensionSupported(java.lang.String) |
|
757 |
*/ |
|
758 | 605 |
public boolean isExtensionSupported(String ext) { |
759 | 606 |
String extension = getFileUtils().getExtensionFromFileName(ext); |
760 | 607 |
|
... | ... | |
770 | 617 |
return formatsRegistry.keySet().toArray(new String[0]); |
771 | 618 |
} |
772 | 619 |
|
773 |
/* |
|
774 |
* (non-Javadoc) |
|
775 |
* @see org.gvsig.fmap.dal.coverage.RasterManager#createImageDrawerService() |
|
776 |
*/ |
|
777 | 620 |
public ImageDrawer createImageDrawerService() { |
778 | 621 |
return new ImageDrawerImpl(); |
779 | 622 |
} |
org.gvsig.raster.gdal/trunk/org.gvsig.raster.gdal/org.gvsig.raster.gdal.io/src/main/java/org/gvsig/raster/gdal/overview/GdalOverviewBuilder.java | ||
---|---|---|
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.raster.gdal.overview; |
|
23 |
|
|
24 |
import org.gvsig.addo.BuildingOverviewsException; |
|
25 |
import org.gvsig.addo.IOverviewIncrement; |
|
26 |
import org.gvsig.addo.Jaddo; |
|
27 |
import org.gvsig.addo.WritingException; |
|
28 |
import org.gvsig.fmap.dal.coverage.exception.OverviewException; |
|
29 |
import org.gvsig.fmap.dal.coverage.process.BaseIncrementableTask; |
|
30 |
import org.gvsig.fmap.dal.coverage.process.overview.OverviewBuilder; |
|
31 |
|
|
32 |
/** |
|
33 |
* Servicios ofrecidos por el proceso de construcci?n de overviews. Esta |
|
34 |
* implementaci?n usa gdal para construir las overviews. |
|
35 |
* |
|
36 |
* @author Nacho Brodin (nachobrodin@gmail.com) |
|
37 |
*/ |
|
38 |
public class GdalOverviewBuilder implements OverviewBuilder { |
|
39 |
private Jaddo build = new Jaddo(); |
|
40 |
private int value = 0; |
|
41 |
|
|
42 |
/** |
|
43 |
* Bindings between an IOverviewIncrement and a BaseIncrementableTask |
|
44 |
* @author Nacho Brodin (nachobrodin@gmail.com) |
|
45 |
*/ |
|
46 |
class ProcessBinding implements IOverviewIncrement { |
|
47 |
private BaseIncrementableTask task = null; |
|
48 |
|
|
49 |
public ProcessBinding(BaseIncrementableTask task) { |
|
50 |
this.task = task; |
|
51 |
} |
|
52 |
|
|
53 |
public int getPercent() { |
|
54 |
return task.getPercent(); |
|
55 |
} |
|
56 |
|
|
57 |
public void setPercent(int value) { |
|
58 |
task.setPercent(value); |
|
59 |
} |
|
60 |
} |
|
61 |
|
|
62 |
/* |
|
63 |
* (non-Javadoc) |
|
64 |
* @see org.gvsig.fmap.dal.coverage.process.overview.OverviewBuilder#buildOverviews(int, java.lang.String, int[]) |
|
65 |
*/ |
|
66 |
public void buildOverviews(int resamplingAlg, String file, int[] overviews) |
|
67 |
throws OverviewException { |
|
68 |
try { |
|
69 |
build.buildOverviews(resamplingAlg, file, overviews); |
|
70 |
} catch (BuildingOverviewsException e) { |
|
71 |
throw new OverviewException("Error building overviews", e); |
|
72 |
} catch (WritingException e) { |
|
73 |
throw new OverviewException("Error writing overviews", e); |
|
74 |
} |
|
75 |
} |
|
76 |
|
|
77 |
/* |
|
78 |
* (non-Javadoc) |
|
79 |
* @see org.gvsig.fmap.dal.coverage.process.overview.OverviewBuilder#getPercent() |
|
80 |
*/ |
|
81 |
public int getPercent() { |
|
82 |
return value; |
|
83 |
} |
|
84 |
|
|
85 |
/* |
|
86 |
* (non-Javadoc) |
|
87 |
* @see org.gvsig.fmap.dal.coverage.process.overview.OverviewBuilder#setIncrementListener(org.gvsig.addo.IOverviewIncrement) |
|
88 |
*/ |
|
89 |
public void setIncrementListener(BaseIncrementableTask incr) { |
|
90 |
build.setIncrementListener(new ProcessBinding(incr)); |
|
91 |
} |
|
92 |
|
|
93 |
/* |
|
94 |
* (non-Javadoc) |
|
95 |
* @see org.gvsig.fmap.dal.coverage.process.overview.OverviewBuilder#setPercent(int) |
|
96 |
*/ |
|
97 |
public void setPercent(int value) { |
|
98 |
this.value = value; |
|
99 |
} |
|
100 |
} |
|
0 | 101 |
org.gvsig.raster.gdal/trunk/org.gvsig.raster.gdal/org.gvsig.raster.gdal.io/src/main/java/org/gvsig/raster/gdal/io/DefaultGdalIOLibrary.java | ||
---|---|---|
23 | 23 |
|
24 | 24 |
import org.gvsig.fmap.dal.DALFileLibrary; |
25 | 25 |
import org.gvsig.fmap.dal.DALLibrary; |
26 |
import org.gvsig.fmap.dal.coverage.RasterLocator; |
|
27 |
import org.gvsig.fmap.dal.coverage.process.overview.OverviewBuilder; |
|
28 |
import org.gvsig.raster.gdal.overview.GdalOverviewBuilder; |
|
26 | 29 |
import org.gvsig.raster.impl.store.AbstractNewRasterStoreParameters; |
27 | 30 |
import org.gvsig.raster.impl.store.AbstractRasterFileDataParameters; |
28 | 31 |
import org.gvsig.tools.ToolsLibrary; |
... | ... | |
60 | 63 |
JpegWriter.register(); |
61 | 64 |
PngWriter.register(); |
62 | 65 |
GdalDataParameters.registerPersistence(); |
66 |
|
|
67 |
//Register GdalOverviewBuilder |
|
68 |
RasterLocator.getManager().getProviderServices().registerOverviewBuilderImplementation( |
|
69 |
"GDAL", |
|
70 |
new GdalOverviewBuilder()); |
|
63 | 71 |
} |
64 | 72 |
} |
Also available in: Unified diff