Revision 6336

View differences:

org.gvsig.raster/branches/org.gvsig.raster.2.4/org.gvsig.raster/org.gvsig.fmap.dal.raster/org.gvsig.fmap.dal.raster.spi/src/main/java/org/gvsig/fmap/dal/raster/spi/OpenRasterStoreParameters.java
1
package org.gvsig.fmap.dal.raster.spi;
2

  
3
import org.gvsig.fmap.dal.OpenDataStoreParameters;
4

  
5
/**
6
 * Interface for parameters to open a raster store
7
 * @author dmartinezizquierdo
8
 *
9
 */
10
public interface OpenRasterStoreParameters extends OpenDataStoreParameters{
11

  
12
}
org.gvsig.raster/branches/org.gvsig.raster.2.4/org.gvsig.raster/org.gvsig.fmap.dal.raster/org.gvsig.fmap.dal.raster.spi/src/main/java/org/gvsig/fmap/dal/raster/spi/NewRasterStoreParameters.java
1
package org.gvsig.fmap.dal.raster.spi;
2

  
3
import org.gvsig.fmap.dal.NewDataStoreParameters;
4
import org.gvsig.raster.lib.buffer.api.Buffer;
5

  
6
/**
7
 * Interface for parameters to create a new raster store
8
 * @author dmartinezizquierdo
9
 *
10
 */
11
public interface NewRasterStoreParameters extends NewDataStoreParameters {
12

  
13
    /**
14
     * Gets the buffer to be created
15
     * @return Buffer
16
     */
17
    public Buffer getBuffer();
18

  
19
    /**
20
     * Sets the buffer to be created
21
     * @param buffer
22
     */
23
    public void setBuffer(Buffer buffer);
24
}
org.gvsig.raster/branches/org.gvsig.raster.2.4/org.gvsig.raster/org.gvsig.fmap.dal.raster/org.gvsig.fmap.dal.raster.impl/src/main/java/org/gvsig/fmap/dal/raster/impl/RasterLibrary.java
33 33
import org.gvsig.fmap.dal.spi.DALSPILocator;
34 34
import org.gvsig.fmap.dal.spi.DataManagerProviderServices;
35 35
import org.gvsig.metadata.exceptions.MetadataException;
36
import org.gvsig.tools.ToolsLibrary;
36 37
import org.gvsig.tools.ToolsLocator;
37 38
import org.gvsig.tools.extensionpoint.ExtensionPoint;
38 39
import org.gvsig.tools.extensionpoint.ExtensionPointManager;
39 40
import org.gvsig.tools.library.AbstractLibrary;
40 41
import org.gvsig.tools.library.LibraryException;
42
import org.gvsig.tools.persistence.xml.XMLPersistenceLibrary;
41 43

  
42 44
/**
43 45
 * Raster Library to register commponents
......
50 52
    public void doRegistration() {
51 53
        registerAsServiceOf(DALLibrary.class);
52 54
        require(DALFileLibrary.class);
55
        require(XMLPersistenceLibrary.class);
56
        require(ToolsLibrary.class);
53 57
    }
54 58

  
55 59
	@Override
56 60
	protected void doInitialize() throws LibraryException {
57
	    
61

  
58 62
	    //Register persistence definition
59 63
	    DefaultRasterQuery.registerPersistenceDefinition();
60 64
	    DefaultBandQuery.registerPersistenceDefinition();
org.gvsig.raster/branches/org.gvsig.raster.2.4/org.gvsig.raster/org.gvsig.fmap.mapcontext.raster/org.gvsig.fmap.mapcontext.raster.impl/src/test/java/org/gvsig/fmap/mapcontext/raster/impl/DefaultRasterLayerTest.java
15 15
import org.gvsig.fmap.crs.CRSFactory;
16 16
import org.gvsig.fmap.dal.DALLocator;
17 17
import org.gvsig.fmap.dal.DataManager;
18
import org.gvsig.fmap.dal.DataStoreParameters;
19 18
import org.gvsig.fmap.dal.exception.InitializeException;
20
import org.gvsig.fmap.dal.exception.OpenException;
21 19
import org.gvsig.fmap.dal.exception.ProviderNotRegisteredException;
22 20
import org.gvsig.fmap.dal.exception.ReadException;
23 21
import org.gvsig.fmap.dal.exception.ValidateDataParametersException;
24
import org.gvsig.fmap.dal.feature.impl.DefaultFeatureStore;
25 22
import org.gvsig.fmap.dal.file.jimi.JimiRasterStoreProvider;
26 23
import org.gvsig.fmap.dal.file.jimi.JimiRasterStoreProviderFactory;
27 24
import org.gvsig.fmap.dal.file.jimi.JimiRasterStoreProviderParameters;
28 25
import org.gvsig.fmap.dal.raster.api.RasterStore;
29
import org.gvsig.fmap.dal.raster.impl.DefaultRasterStore;
30 26
import org.gvsig.fmap.geom.jts.primitive.Envelope2D;
31 27
import org.gvsig.fmap.geom.primitive.Envelope;
32 28
import org.gvsig.fmap.mapcontext.ViewPort;
33 29
import org.gvsig.fmap.mapcontext.raster.api.RasterLayer;
34
import org.gvsig.fmap.mapcontext.rendering.legend.IRasterLegend;
35
import org.gvsig.raster.lib.buffer.api.Buffer;
36
import org.gvsig.raster.lib.buffer.api.exceptions.BufferException;
37 30
import org.gvsig.raster.lib.legend.api.ColorInterpretation;
38 31
import org.gvsig.raster.lib.legend.api.RasterLegend;
39 32
import org.gvsig.raster.lib.legend.api.RasterLegendLocator;
......
49 42

  
50 43
    @Override
51 44
    protected void doSetUp() throws Exception {
52
        //Do nothing
45

  
53 46
    }
54 47

  
55 48
    /**
......
107 100
    }
108 101

  
109 102

  
110

  
111

  
112 103
    public class CancelDraw implements Cancellable {
113 104

  
114 105
        /**
org.gvsig.raster/branches/org.gvsig.raster.2.4/org.gvsig.raster/org.gvsig.fmap.mapcontext.raster/org.gvsig.fmap.mapcontext.raster.impl/src/main/java/org/gvsig/fmap/mapcontext/raster/impl/DefaultRasterLayer.java
22 22
 */
23 23
package org.gvsig.fmap.mapcontext.raster.impl;
24 24

  
25
import java.awt.Color;
26 25
import java.awt.Graphics2D;
27 26
import java.awt.image.BufferedImage;
28
import java.awt.image.ColorModel;
29
import java.awt.image.DirectColorModel;
30
import java.awt.image.IndexColorModel;
31
import java.util.ArrayList;
32
import java.util.List;
33
import java.util.Map.Entry;
27
import java.io.File;
34 28
import java.util.Observable;
35 29
import java.util.Observer;
36 30
import java.util.Set;
37 31
import java.util.TreeSet;
38 32

  
39 33
import org.cresques.cts.ICoordTrans;
40

  
41 34
import org.gvsig.compat.print.PrintAttributes;
35
import org.gvsig.fmap.crs.CRSFactory;
36
import org.gvsig.fmap.dal.DataServerExplorer;
37
import org.gvsig.fmap.dal.DataServerExplorerParameters;
42 38
import org.gvsig.fmap.dal.DataStore;
39
import org.gvsig.fmap.dal.DataStoreProviderFactory;
43 40
import org.gvsig.fmap.dal.exception.DataException;
41
import org.gvsig.fmap.dal.exception.InitializeException;
42
import org.gvsig.fmap.dal.exception.ProviderNotRegisteredException;
44 43
import org.gvsig.fmap.dal.exception.ReadException;
44
import org.gvsig.fmap.dal.exception.ValidateDataParametersException;
45 45
import org.gvsig.fmap.dal.file.jimi.JimiRasterStoreProvider;
46
import org.gvsig.fmap.dal.file.jimi.MemoryImage;
46
import org.gvsig.fmap.dal.file.jimi.JimiRasterStoreProviderFactory;
47
import org.gvsig.fmap.dal.file.jimi.JimiRasterStoreProviderParameters;
47 48
import org.gvsig.fmap.dal.raster.api.RasterQuery;
48
import org.gvsig.fmap.dal.raster.api.RasterSet;
49 49
import org.gvsig.fmap.dal.raster.api.RasterStore;
50 50
import org.gvsig.fmap.dal.raster.api.RasterStoreNotification;
51
import org.gvsig.fmap.dal.raster.impl.DefaultRasterStore;
51
import org.gvsig.fmap.dal.raster.spi.NewRasterStoreParameters;
52
import org.gvsig.fmap.dal.spi.DALSPILocator;
53
import org.gvsig.fmap.dal.spi.DataManagerProviderServices;
52 54
import org.gvsig.fmap.geom.Geometry.SUBTYPES;
53 55
import org.gvsig.fmap.geom.GeometryLocator;
54 56
import org.gvsig.fmap.geom.GeometryManager;
......
61 63
import org.gvsig.fmap.mapcontext.raster.api.RasterLayer;
62 64
import org.gvsig.fmap.mapcontext.raster.api.RasterLegendChangedListener;
63 65
import org.gvsig.metadata.exceptions.MetadataException;
64
import org.gvsig.raster.lib.buffer.api.Band;
65
import org.gvsig.raster.lib.buffer.api.BandInfo;
66
import org.gvsig.raster.lib.buffer.api.Buffer;
67
import org.gvsig.raster.lib.buffer.api.exceptions.BufferException;
66 68
import org.gvsig.raster.lib.legend.api.ColorInterpretation;
67
import org.gvsig.raster.lib.legend.api.ColorTable;
68
import org.gvsig.raster.lib.legend.api.ColorTableClass;
69 69
import org.gvsig.raster.lib.legend.api.RasterLegend;
70
import org.gvsig.raster.lib.legend.api.RasterLegendLocator;
71
import org.gvsig.raster.lib.legend.api.RasterLegendManager;
70 72
import org.gvsig.tools.ToolsLocator;
71 73
import org.gvsig.tools.dispose.DisposeUtils;
74
import org.gvsig.tools.dynobject.DynObject;
72 75
import org.gvsig.tools.dynobject.exception.DynMethodException;
73 76
import org.gvsig.tools.dynobject.exception.DynMethodNotSupportedException;
74 77
import org.gvsig.tools.exception.BaseException;
75 78
import org.gvsig.tools.task.Cancellable;
76 79
import org.gvsig.tools.task.SimpleTaskStatus;
77 80
import org.gvsig.tools.task.TaskStatusManager;
78

  
79 81
import org.slf4j.LoggerFactory;
80 82

  
81 83
/**
......
163 165
        }
164 166

  
165 167
        this.store = (RasterStore) dataStore;
168
        //FIXME:To test only
169
        try {
170
            copyStoreTestMethod (this.store);
171
        } catch (Exception e) {
172
            // TODO Auto-generated catch block
173
            e.printStackTrace();
174
        }
166 175
        ToolsLocator.getDisposableManager().bind(dataStore);
167 176
        initLegend();
168 177
    }
169 178

  
170 179
    /**
180
     * To test only
181
     * @param store
182
     * @throws ValidateDataParametersException
183
     * @throws DataException
184
     * @throws BufferException
185
     */
186
    private void copyStoreTestMethod(RasterStore store) throws Exception{
187
        //FIXME: To test only. Remove afterwards
188
        exportGTiff(store);
189
//        exportBMP(store);
190
//        exportNetCDF(store);
191
//        exportPNG(store);
192
//        openPOSTGIS();
193
//        openWCS();
194
//        openWMS();
195
    }
196
    /**
197
     * TO TEST ONLY
198
     * @return
199
     */
200
    private RasterStore openWMS(){
201
        DataManagerProviderServices manager=DALSPILocator.getDataManagerProviderServices();
202
        DataStoreProviderFactory providerFactory = manager.getStoreProviderFactory("WMS");
203
        DynObject params = providerFactory.createParameters();
204

  
205
        if (params.getDynClass().getDynField("crs")!=null){
206
            params.setDynValue("crs", CRSFactory.getCRS("EPSG:23030"));
207
        }
208

  
209
        RasterStore store=null;
210
        try {
211
            store = (RasterStore) manager.openStore("WMS",params);
212
        } catch (ValidateDataParametersException | InitializeException
213
            | ProviderNotRegisteredException e) {
214
            logger.info("**** error opening store *****", e);
215
        }
216
        if (store!=null){
217
            logger.info("**** ??????? O.K !!!!!!! *****");
218
        }else{
219
            logger.info("**** K.O ;_( *****");
220
        }
221
        try {
222
            exportGTiff(store);
223
        } catch (ValidateDataParametersException | DataException
224
            | BufferException e) {
225
            logger.info("failed to copy");
226
        }
227
        return store;
228

  
229
    }
230

  
231
    /**
232
     * TO TEST ONLY
233
     * @return
234
     */
235
    private RasterStore openWCS(){
236
        DataManagerProviderServices manager=DALSPILocator.getDataManagerProviderServices();
237
        DataStoreProviderFactory providerFactory = manager.getStoreProviderFactory("WCS");
238
        DynObject params = providerFactory.createParameters();
239

  
240
        if (params.getDynClass().getDynField("url")!=null){
241
            params.setDynValue("url", "http://inspire.cop.gva.es/mapserver/wcs?");
242
        }
243
        if (params.getDynClass().getDynField("coverage")!=null){
244
            params.setDynValue("coverage", "MDT");
245
        }
246
        if (params.getDynClass().getDynField("crs")!=null){
247
            params.setDynValue("crs", CRSFactory.getCRS("EPSG:23030"));
248
        }
249

  
250
        RasterStore store=null;
251
        try {
252
            store = (RasterStore) manager.openStore("WCS",params);
253
        } catch (ValidateDataParametersException | InitializeException
254
            | ProviderNotRegisteredException e) {
255
            logger.info("**** error opening store *****", e);
256
        }
257
        if (store!=null){
258
            logger.info("**** ??????? O.K !!!!!!! *****");
259
        }else{
260
            logger.info("**** K.O ;_( *****");
261
        }
262
        try {
263
            exportGTiff(store);
264
        } catch (ValidateDataParametersException | DataException
265
            | BufferException e) {
266
            logger.info("failed to copy");
267
        }
268
        return store;
269

  
270
    }
271

  
272
    /**
273
     * TO TEST ONLY
274
     * @return
275
     */
276
    private RasterStore openPOSTGIS(){
277
        DataManagerProviderServices manager=DALSPILocator.getDataManagerProviderServices();
278
        DataStoreProviderFactory providerFactory = manager.getStoreProviderFactory("PostGISRaster");
279
        DynObject params = providerFactory.createParameters();
280
        //PG:host='gvsig-training.com' port='5432'
281
        //dbname='andalucia' user='curso' password='curso' schema='public' table='tr_relieve_andalucia2'
282
        if (params.getDynClass().getDynField("host")!=null){
283
            params.setDynValue("host", "gvsig-training.com");
284
        }
285
        if (params.getDynClass().getDynField("dbname")!=null){
286
            params.setDynValue("dbname", "andalucia");
287
        }
288
        if (params.getDynClass().getDynField("table")!=null){
289
            params.setDynValue("table", "tr_relieve_andalucia2");
290
        }
291
        if (params.getDynClass().getDynField("schema")!=null){
292
            params.setDynValue("schema", "public");
293
        }
294
        if (params.getDynClass().getDynField("user")!=null){
295
            params.setDynValue("user", "curso");
296
        }
297
        if (params.getDynClass().getDynField("password")!=null){
298
            params.setDynValue("password", "curso");
299
        }
300
        if (params.getDynClass().getDynField("port")!=null){
301
            params.setDynValue("port", 5432);
302
        }
303
        if (params.getDynClass().getDynField("crs")!=null){
304
            params.setDynValue("crs", CRSFactory.getCRS("EPSG:23030"));
305
        }
306

  
307
        RasterStore store=null;
308
        try {
309
            store = (RasterStore) manager.openStore("PostGISRaster",params);
310
        } catch (ValidateDataParametersException | InitializeException
311
            | ProviderNotRegisteredException e) {
312
            logger.info("**** error opening store *****", e);
313
        }
314
        if (store!=null){
315
            logger.info("**** ??????? O.K !!!!!!! *****");
316
        }else{
317
            logger.info("**** K.O ;_( *****");
318
        }
319
        try {
320
            exportPNG(store);
321
        } catch (ValidateDataParametersException | DataException
322
            | BufferException e) {
323
            logger.info("failed to copy");
324
        }
325
        return store;
326

  
327
    }
328

  
329
    /**
330
     * TO TEST ONLY
331
     * @return
332
     */
333
    private void exportPNG(RasterStore store)
334
        throws InitializeException, ProviderNotRegisteredException,
335
        ValidateDataParametersException, DataException, BufferException {
336
        String providerName="PNG";
337
        String extension="png";
338

  
339
        DataManagerProviderServices manager=DALSPILocator.getDataManagerProviderServices();
340
        DataServerExplorerParameters eparams = manager.createServerExplorerParameters("FilesystemExplorer");
341
        int count = 0;
342
        String path = "/home/daniel/pruebas/datosPruebaRaster/copiedFile."+extension;
343
        File destFile=new File(path);
344
        while(destFile.exists()){
345
            count++;
346
            path = "/home/daniel/pruebas/datosPruebaRaster/copiedFile_"+count+"."+extension;
347
            destFile=new File(path);
348
        }
349
        eparams.setDynValue("initialpath",path);
350
        DataServerExplorer serverExplorer= manager.createServerExplorer(eparams);
351

  
352
        NewRasterStoreParameters params =(NewRasterStoreParameters) serverExplorer.getAddParameters(providerName);
353
        params.setDynValue("file",destFile);
354

  
355
        params.setDynValue("worldfile", false);
356
        params.setDynValue("zlevel", 1);
357

  
358
        Buffer buffer=store.getRasterSet().clip(store.getEnvelope());
359
        params.setBuffer(buffer);
360
        serverExplorer.add(providerName, params, true);
361
    }
362

  
363
    /**
364
     * TO TEST ONLY
365
     * @return
366
     */
367
    private void exportGTiff(RasterStore store)
368
        throws InitializeException, ProviderNotRegisteredException,
369
        ValidateDataParametersException, DataException, BufferException {
370
        String providerName="GTiff";
371
        String extension="tif";
372

  
373
        DataManagerProviderServices manager=DALSPILocator.getDataManagerProviderServices();
374
        DataServerExplorerParameters eparams = manager.createServerExplorerParameters("FilesystemExplorer");
375
        int count = 0;
376
        String path = "/home/daniel/pruebas/datosPruebaRaster/copiedFile."+extension;
377
        File destFile=new File(path);
378
        while(destFile.exists()){
379
            count++;
380
            path = "/home/daniel/pruebas/datosPruebaRaster/copiedFile_"+count+"."+extension;
381
            destFile=new File(path);
382
        }
383
        eparams.setDynValue("initialpath",path);
384
        DataServerExplorer serverExplorer= manager.createServerExplorer(eparams);
385

  
386
        NewRasterStoreParameters params =(NewRasterStoreParameters) serverExplorer.getAddParameters(providerName);
387
        params.setDynValue("file",destFile);
388

  
389

  
390
        params.setDynValue("compress", "NONE");
391
        params.setDynValue("tfw", false);
392
        params.setDynValue("photometric", "RGB");
393

  
394

  
395
        Buffer buffer=store.getRasterSet().clip(store.getEnvelope());
396
        params.setBuffer(buffer);
397
        serverExplorer.add(providerName, params, true);
398
    }
399

  
400
    /**
401
     * TO TEST ONLY
402
     * @return
403
     */
404
    private void exportBMP(RasterStore store)
405
        throws InitializeException, ProviderNotRegisteredException,
406
        ValidateDataParametersException, DataException, BufferException {
407
        String providerName="BMP";
408
        String extension="bmp";
409

  
410
        DataManagerProviderServices manager=DALSPILocator.getDataManagerProviderServices();
411
        DataServerExplorerParameters eparams = manager.createServerExplorerParameters("FilesystemExplorer");
412
        int count = 0;
413
        String path = "/home/daniel/pruebas/datosPruebaRaster/copiedFile."+extension;
414
        File destFile=new File(path);
415
        while(destFile.exists()){
416
            count++;
417
            path = "/home/daniel/pruebas/datosPruebaRaster/copiedFile_"+count+"."+extension;
418
            destFile=new File(path);
419
        }
420
        eparams.setDynValue("initialpath",path);
421
        DataServerExplorer serverExplorer= manager.createServerExplorer(eparams);
422

  
423
        NewRasterStoreParameters params =(NewRasterStoreParameters) serverExplorer.getAddParameters(providerName);
424
        params.setDynValue("file",destFile);
425

  
426

  
427
        params.setDynValue("worldfile", true);
428

  
429

  
430
        Buffer buffer=store.getRasterSet().clip(store.getEnvelope());
431
        params.setBuffer(buffer);
432
        serverExplorer.add(providerName, params, true);
433
    }
434

  
435
    /**
436
     * TO TEST ONLY
437
     * @return
438
     */
439
    private void exportNetCDF(RasterStore store)
440
        throws InitializeException, ProviderNotRegisteredException,
441
        ValidateDataParametersException, DataException, BufferException {
442
        String providerName="netCDF";
443
        String extension="nc";
444

  
445
        DataManagerProviderServices manager=DALSPILocator.getDataManagerProviderServices();
446
        DataServerExplorerParameters eparams = manager.createServerExplorerParameters("FilesystemExplorer");
447
        int count = 0;
448
        String path = "/home/daniel/pruebas/datosPruebaRaster/copiedFile."+extension;
449
        File destFile=new File(path);
450
        while(destFile.exists()){
451
            count++;
452
            path = "/home/daniel/pruebas/datosPruebaRaster/copiedFile_"+count+"."+extension;
453
            destFile=new File(path);
454
        }
455
        eparams.setDynValue("initialpath",path);
456
        DataServerExplorer serverExplorer= manager.createServerExplorer(eparams);
457

  
458
        NewRasterStoreParameters params =(NewRasterStoreParameters) serverExplorer.getAddParameters(providerName);
459
        params.setDynValue("file",destFile);
460
        //params.setDynValue("format", "NC4C");
461
//        params.setDynValue("pixeltype", "DEFAULT");
462
        params.setDynValue("chunking", false);
463

  
464
        Buffer buffer=store.getRasterSet().clip(store.getEnvelope());
465
        params.setBuffer(buffer);
466
        serverExplorer.add(providerName, params, true);
467
    }
468

  
469
    /**
171 470
     * Initializes the legend if it is not initalized yet
172 471
     * @throws LegendLayerException
173 472
     */
org.gvsig.raster/branches/org.gvsig.raster.2.4/org.gvsig.raster/org.gvsig.raster.gdal/org.gvsig.raster.gdal.provider.legend/src/main/java/org/gvsig/raster/gdal/provider/legend/RasterGdalLegendLibrary.java
34 34
import org.gvsig.metadata.MetadataLibrary;
35 35
import org.gvsig.metadata.MetadataLocator;
36 36
import org.gvsig.raster.gdal.provider.RasterGdalLibrary;
37
import org.gvsig.raster.gdal.provider.RasterGdalStoreProvider;
37
import org.gvsig.raster.gdal.provider.AbstractFileRasterGdalStoreProvider;
38
import org.gvsig.raster.gdal.provider.AbstractRasterGdalStoreProvider;
38 39
import org.gvsig.tools.dynobject.DynClass;
39 40
import org.gvsig.tools.library.AbstractLibrary;
40 41
import org.gvsig.tools.library.LibraryException;
......
60 61
	@Override
61 62
	protected void doPostInitialize() throws LibraryException {
62 63
		DynClass metadataDefinition = (DynClass) MetadataLocator.getMetadataManager()
63
			.getDefinition(RasterGdalStoreProvider.METADATA_DEFINITION_NAME);
64
			.getDefinition(AbstractRasterGdalStoreProvider.METADATA_DEFINITION_NAME);
64 65
		RasterGdalGetLegend.register(metadataDefinition);
65 66
		RasterGdalGetColorTable.register(metadataDefinition);
66 67
		RasterGdalGetColorInterpretation.register(metadataDefinition);
org.gvsig.raster/branches/org.gvsig.raster.2.4/org.gvsig.raster/org.gvsig.raster.gdal/org.gvsig.raster.gdal.provider.legend/src/main/java/org/gvsig/raster/gdal/provider/legend/RasterGdalGetColorInterpretation.java
1 1
package org.gvsig.raster.gdal.provider.legend;
2 2

  
3
import java.awt.Color;
4
import java.awt.image.ColorModel;
5
import java.awt.image.DirectColorModel;
6
import java.awt.image.IndexColorModel;
7

  
8 3
import org.gdal.gdal.Band;
9
import org.gdal.gdal.ColorTable;
10 4
import org.gdal.gdal.Dataset;
11 5
import org.gdal.gdal.gdal;
12
import org.gdal.gdalconst.gdalconst;
13
import org.gdal.gdalconst.gdalconstConstants;
14
import org.gdal.gdalconst.gdalconstJNI;
15 6
import org.gvsig.fmap.dal.raster.api.RasterStore;
16
import org.gvsig.raster.gdal.provider.RasterGdalStoreProvider;
7
import org.gvsig.raster.gdal.provider.AbstractRasterGdalStoreProvider;
17 8
import org.gvsig.raster.lib.legend.api.ColorInterpretation;
18 9
import org.gvsig.raster.lib.legend.api.RasterLegendLocator;
19 10
import org.gvsig.raster.lib.legend.api.RasterLegendManager;
......
61 52
        throws DynMethodException {
62 53
        ColorInterpretation colorInterpretation = null;
63 54

  
64
        RasterGdalStoreProvider rasterGdalProvider =
65
            (RasterGdalStoreProvider) self;
55
        AbstractRasterGdalStoreProvider rasterGdalProvider =
56
            (AbstractRasterGdalStoreProvider) self;
66 57

  
67 58
        RasterLegendManager legendManager =
68 59
            RasterLegendLocator.getRasterLegendManager();
......
78 69
                colorInterpretationFromGdal(gdalBand.GetColorInterpretation());
79 70
            bandColorInterpretations[i] = bandColorInterpretion;
80 71
        }
72
        //FIXME:Intenta suponer cual es la forma correcta de interpretar los colores en funcion del numero de bandas
73
        //Seguramente haya que arreglarlo cuando haya GUI para que el usuario pueda especificar la forma correcta.
74
        guessingColorInterpretation(bandColorInterpretations);
75

  
81 76
        colorInterpretation =
82 77
            legendManager.createColorInterpretation(bandColorInterpretations);
83 78

  
84 79
        return colorInterpretation;
85 80
    }
86 81

  
82
    private void guessingColorInterpretation(String[] bandColorInterpretations){
83
        //FIXME:Intenta suponer cual es la forma correcta de interpretar los colores en funcion del numero de bandas
84
        //Seguramente haya que arreglarlo cuando haya GUI para que el usuario pueda especificar la forma correcta.
85
        if (bandColorInterpretations.length==1){
86
            if (bandColorInterpretations[0].equals(ColorInterpretation.UNDEFINED_BAND)){
87
                bandColorInterpretations[0]=ColorInterpretation.PALETTE_BAND;
88
            }
89
        }
90
        if (bandColorInterpretations.length==3 || bandColorInterpretations.length>4){
91
            if (bandColorInterpretations[0].equals(ColorInterpretation.UNDEFINED_BAND)  &&
92
                bandColorInterpretations[1].equals(ColorInterpretation.UNDEFINED_BAND) &&
93
                bandColorInterpretations[2].equals(ColorInterpretation.UNDEFINED_BAND) ){
94

  
95
                bandColorInterpretations[0]=ColorInterpretation.RED_BAND;
96
                bandColorInterpretations[1]=ColorInterpretation.GREEN_BAND;
97
                bandColorInterpretations[2]=ColorInterpretation.BLUE_BAND;
98
            }
99
        }
100
        if (bandColorInterpretations.length==4){
101
            if (bandColorInterpretations[0].equals(ColorInterpretation.UNDEFINED_BAND)  &&
102
                bandColorInterpretations[1].equals(ColorInterpretation.UNDEFINED_BAND) &&
103
                bandColorInterpretations[2].equals(ColorInterpretation.UNDEFINED_BAND) &&
104
                bandColorInterpretations[3].equals(ColorInterpretation.UNDEFINED_BAND) ){
105

  
106
                bandColorInterpretations[0]=ColorInterpretation.RED_BAND;
107
                bandColorInterpretations[1]=ColorInterpretation.GREEN_BAND;
108
                bandColorInterpretations[2]=ColorInterpretation.BLUE_BAND;
109
                bandColorInterpretations[3]=ColorInterpretation.ALPHA_BAND;
110
            }
111
        }
112
    }
113

  
87 114
    /**
88 115
     * Obtiene la cadena que representa el tipo de banda de color. Los tipos posibles son:
89 116
     * <UL>
......
112 139

  
113 140
        switch (gdalNameCI) {
114 141
        case "Undefined" :
115
            return ColorInterpretation.PALETTE_BAND;
142
            return ColorInterpretation.UNDEFINED_BAND;
116 143
        case "Gray" :
117 144
            return ColorInterpretation.GRAY_BAND;
118 145
        case "Palette" :
org.gvsig.raster/branches/org.gvsig.raster.2.4/org.gvsig.raster/org.gvsig.raster.gdal/org.gvsig.raster.gdal.provider.legend/src/main/java/org/gvsig/raster/gdal/provider/legend/RasterGdalGetColorTable.java
1 1
package org.gvsig.raster.gdal.provider.legend;
2 2

  
3 3
import java.awt.Color;
4
import java.awt.image.ColorModel;
5
import java.awt.image.ComponentColorModel;
6
import java.awt.image.IndexColorModel;
7 4
import java.util.ArrayList;
8 5
import java.util.List;
9 6

  
10 7
import org.gdal.gdal.Band;
11 8
import org.gdal.gdal.Dataset;
12 9
import org.gvsig.fmap.dal.raster.api.RasterStore;
13
import org.gvsig.raster.gdal.provider.RasterGdalStoreProvider;
10
import org.gvsig.raster.gdal.provider.AbstractRasterGdalStoreProvider;
14 11
import org.gvsig.raster.lib.legend.api.ColorInterpretation;
15 12
import org.gvsig.raster.lib.legend.api.ColorTable;
16 13
import org.gvsig.raster.lib.legend.api.ColorTableClass;
17
import org.gvsig.raster.lib.legend.api.RasterLegend;
18 14
import org.gvsig.raster.lib.legend.api.RasterLegendLocator;
19 15
import org.gvsig.raster.lib.legend.api.RasterLegendManager;
20 16
import org.gvsig.tools.ToolsLocator;
......
24 20
import org.gvsig.tools.dynobject.exception.DynMethodException;
25 21
import org.gvsig.tools.dynobject.exception.DynMethodNotSupportedException;
26 22

  
23
/**
24
 * Dynamic method to add a get Color Table funcionality
25
 * @author dmartinezizquierdo
26
 *
27
 */
27 28
public class RasterGdalGetColorTable implements DynMethod {
28 29

  
29 30
    private static Integer code = null;
......
59 60

  
60 61

  
61 62
        try {
62
            RasterGdalStoreProvider rasterGdalProvider=(RasterGdalStoreProvider)self;
63
            AbstractRasterGdalStoreProvider rasterGdalProvider=(AbstractRasterGdalStoreProvider)self;
63 64
            RasterLegendManager legendManager=RasterLegendLocator.getRasterLegendManager();
64 65

  
65 66
            Dataset gdalDataSet = rasterGdalProvider.getGdalDataSet();
org.gvsig.raster/branches/org.gvsig.raster.2.4/org.gvsig.raster/org.gvsig.raster.gdal/org.gvsig.raster.gdal.provider.legend/src/main/java/org/gvsig/raster/gdal/provider/legend/RasterGdalGetLegend.java
1 1
package org.gvsig.raster.gdal.provider.legend;
2 2

  
3 3
import org.gvsig.fmap.dal.raster.api.RasterStore;
4
import org.gvsig.raster.gdal.provider.RasterGdalStoreProvider;
4
import org.gvsig.raster.gdal.provider.AbstractRasterGdalStoreProvider;
5 5
import org.gvsig.raster.lib.legend.api.ColorInterpretation;
6 6
import org.gvsig.raster.lib.legend.api.ColorTable;
7 7
import org.gvsig.raster.lib.legend.api.RasterLegend;
......
14 14
import org.gvsig.tools.dynobject.exception.DynMethodException;
15 15
import org.gvsig.tools.dynobject.exception.DynMethodNotSupportedException;
16 16

  
17
/**
18
 * Dynamic method to add a get Legend funcionality
19
 * @author dmartinezizquierdo
20
 *
21
 */
17 22
public class RasterGdalGetLegend implements DynMethod {
18 23

  
19 24
    private static Integer code = null;
......
47 52
    public Object invoke(DynObject self, Object[] args)
48 53
            throws DynMethodException {
49 54
        try {
50
             RasterGdalStoreProvider rasterGdalProvider=(RasterGdalStoreProvider)self;
55
             AbstractRasterGdalStoreProvider rasterGdalProvider=(AbstractRasterGdalStoreProvider)self;
51 56
             RasterLegendManager legendManager=RasterLegendLocator.getRasterLegendManager();
52 57

  
53 58
             ColorInterpretation colorInterpretation =(ColorInterpretation)rasterGdalProvider.
org.gvsig.raster/branches/org.gvsig.raster.2.4/org.gvsig.raster/pom.xml
1 1
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3
	<modelVersion>4.0.0</modelVersion>
4
	<parent>
5
		<groupId>org.gvsig</groupId>
6
		<artifactId>org.gvsig.desktop</artifactId>
7
		<version>2.0.153-SNAPSHOT</version>
8
	</parent>
9
	<artifactId>org.gvsig.raster</artifactId>
10
	<packaging>pom</packaging>
11
	<name>org.gvsig.raster</name>
12
	<version>2.4.1-SNAPSHOT</version>
13
	<description>Raster support library</description>
2
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3
 <modelVersion>4.0.0</modelVersion>
4
 <parent>
5
  <groupId>org.gvsig</groupId>
6
  <artifactId>org.gvsig.desktop</artifactId>
7
  <version>2.0.153-SNAPSHOT</version>
8
 </parent>
9
 <artifactId>org.gvsig.raster</artifactId>
10
 <packaging>pom</packaging>
11
 <name>org.gvsig.raster</name>
12
 <version>2.4.1-SNAPSHOT</version>
13
 <description>Raster support library</description>
14 14

  
15
	<properties>
16
		<org.gvsig.gdal.version>1.0.31</org.gvsig.gdal.version>
17
	</properties>
15
 <properties>
16
  <org.gvsig.gdal.version>1.0.31</org.gvsig.gdal.version>
17
 </properties>
18 18

  
19
	<scm>
20
		<connection>scm:svn:https://devel.gvsig.org/svn/gvsig-raster/org.gvsig.raster/trunk/org.gvsig.raster</connection>
21
		<developerConnection>scm:svn:https://devel.gvsig.org/svn/gvsig-raster/org.gvsig.raster/trunk/org.gvsig.raster</developerConnection>
22
		<url>https://devel.gvsig.org/redmine/projects/gvsig-raster/repository/show/org.gvsig.raster/trunk/org.gvsig.raster</url>
23
	</scm>
19
 <scm>
20
  <connection>scm:svn:https://devel.gvsig.org/svn/gvsig-raster/org.gvsig.raster/trunk/org.gvsig.raster</connection>
21
  <developerConnection>scm:svn:https://devel.gvsig.org/svn/gvsig-raster/org.gvsig.raster/trunk/org.gvsig.raster</developerConnection>
22
  <url>https://devel.gvsig.org/redmine/projects/gvsig-raster/repository/show/org.gvsig.raster/trunk/org.gvsig.raster</url>
23
 </scm>
24 24

  
25
	<distributionManagement>
26
		<site>
27
			<id>gvsig-repository</id>
28
			<url>dav:https://devel.gvsig.org/sites/${project.artifactId}/${project.version}</url>
29
		</site>
30
	</distributionManagement>
25
 <distributionManagement>
26
  <site>
27
   <id>gvsig-repository</id>
28
   <url>dav:https://devel.gvsig.org/sites/${project.artifactId}/${project.version}</url>
29
  </site>
30
 </distributionManagement>
31 31

  
32
	<build>
33
		<plugins>
34
			<plugin>
35
				<groupId>org.apache.maven.plugins</groupId>
36
				<artifactId>maven-release-plugin</artifactId>
37
				<configuration>
38
					<tagBase>https://devel.gvsig.org/svn/gvsig-raster/org.gvsig.raster/tags</tagBase>
39
				</configuration>
40
			</plugin>
41
		</plugins>
42
	</build>
32
 <build>
33
  <plugins>
34
   <plugin>
35
    <groupId>org.apache.maven.plugins</groupId>
36
    <artifactId>maven-release-plugin</artifactId>
37
    <configuration>
38
     <tagBase>https://devel.gvsig.org/svn/gvsig-raster/org.gvsig.raster/tags</tagBase>
39
    </configuration>
40
   </plugin>
41
  </plugins>
42
 </build>
43 43

  
44
	<repositories>
45
		<repository>
46
			<id>gvsig-public-http-repository</id>
47
			<name>gvSIG maven public HTTP repository</name>
48
			<url>http://devel.gvsig.org/m2repo/j2se</url>
49
			<releases>
50
				<enabled>true</enabled>
51
				<updatePolicy>daily</updatePolicy>
52
				<checksumPolicy>warn</checksumPolicy>
53
			</releases>
54
			<snapshots>
55
				<enabled>true</enabled>
56
				<updatePolicy>daily</updatePolicy>
57
				<checksumPolicy>warn</checksumPolicy>
58
			</snapshots>
59
		</repository>
60
	</repositories>
44
 <repositories>
45
  <repository>
46
   <id>gvsig-public-http-repository</id>
47
   <name>gvSIG maven public HTTP repository</name>
48
   <url>http://devel.gvsig.org/m2repo/j2se</url>
49
   <releases>
50
    <enabled>true</enabled>
51
    <updatePolicy>daily</updatePolicy>
52
    <checksumPolicy>warn</checksumPolicy>
53
   </releases>
54
   <snapshots>
55
    <enabled>true</enabled>
56
    <updatePolicy>daily</updatePolicy>
57
    <checksumPolicy>warn</checksumPolicy>
58
   </snapshots>
59
  </repository>
60
 </repositories>
61 61

  
62 62

  
63
	<modules>
64
		<module>org.gvsig.raster.lib</module>
65
		<module>org.gvsig.fmap.dal.raster</module>
66
		<module>org.gvsig.fmap.mapcontext.raster</module>
67
		<module>org.gvsig.raster.app</module>
68
		<module>org.gvsig.fmap.dal.file.jimi</module>
69
		<module>org.gvsig.fmap.dal.file.jimi.legend</module>
70
		<module>org.gvsig.raster.gdal</module>
71
	</modules>
72
	<dependencyManagement>
73
		<dependencies>
74
			<dependency>
75
				<groupId>org.gvsig</groupId>
76
				<artifactId>org.gvsig.raster.lib.buffer.api</artifactId>
77
				<version>2.4.1-SNAPSHOT</version>
78
			</dependency>
79
			<dependency>
80
				<groupId>org.gvsig</groupId>
81
				<artifactId>org.gvsig.raster.lib.buffer.spi</artifactId>
82
				<version>2.4.1-SNAPSHOT</version>
83
			</dependency>
84
			<dependency>
85
				<groupId>org.gvsig</groupId>
86
				<artifactId>org.gvsig.raster.lib.buffer.impl</artifactId>
87
				<version>2.4.1-SNAPSHOT</version>
88
			</dependency>
89
			<dependency>
90
				<groupId>org.gvsig</groupId>
91
				<artifactId>org.gvsig.raster.lib.legend.api</artifactId>
92
				<version>2.4.1-SNAPSHOT</version>
93
			</dependency>
94
			<dependency>
95
				<groupId>org.gvsig</groupId>
96
				<artifactId>org.gvsig.raster.lib.legend.impl</artifactId>
97
				<version>2.4.1-SNAPSHOT</version>
98
			</dependency>
99
			<dependency>
100
				<groupId>org.gvsig</groupId>
101
				<artifactId>org.gvsig.fmap.dal.raster.api</artifactId>
102
				<version>2.4.1-SNAPSHOT</version>
103
			</dependency>
104
			<dependency>
105
				<groupId>org.gvsig</groupId>
106
				<artifactId>org.gvsig.fmap.dal.raster.impl</artifactId>
107
				<version>2.4.1-SNAPSHOT</version>
108
			</dependency>
109
			<dependency>
110
				<groupId>org.gvsig</groupId>
111
				<artifactId>org.gvsig.fmap.dal.raster.spi</artifactId>
112
				<version>2.4.1-SNAPSHOT</version>
113
			</dependency>
114
			<dependency>
115
				<groupId>org.gvsig</groupId>
116
				<artifactId>org.gvsig.fmap.mapcontext.raster.api</artifactId>
117
				<version>2.4.1-SNAPSHOT</version>
118
			</dependency>
119
			<dependency>
120
				<groupId>org.gvsig</groupId>
121
				<artifactId>org.gvsig.fmap.mapcontext.raster.impl</artifactId>
122
				<version>2.4.1-SNAPSHOT</version>
123
			</dependency>
124
			<dependency>
125
				<groupId>org.gvsig</groupId>
126
				<artifactId>org.gvsig.fmap.dal.file.jimi</artifactId>
127
				<version>2.4.1-SNAPSHOT</version>
128
			</dependency>
129
			<dependency>
130
				<groupId>org.gvsig</groupId>
131
				<artifactId>org.gvsig.fmap.dal.file.jimi.legend</artifactId>
132
				<version>2.4.1-SNAPSHOT</version>
133
			</dependency>
63
 <modules>
64
  <module>org.gvsig.raster.lib</module>
65
  <module>org.gvsig.fmap.dal.raster</module>
66
  <module>org.gvsig.fmap.mapcontext.raster</module>
67
  <module>org.gvsig.raster.app</module>
68
  <module>org.gvsig.fmap.dal.file.jimi</module>
69
  <module>org.gvsig.fmap.dal.file.jimi.legend</module>
70
  <module>org.gvsig.raster.gdal</module>
71
 </modules>
72
 <dependencyManagement>
73
  <dependencies>
74
   <dependency>
75
    <groupId>org.gvsig</groupId>
76
    <artifactId>org.gvsig.raster.lib.buffer.api</artifactId>
77
    <version>2.4.1-SNAPSHOT</version>
78
   </dependency>
79
   <dependency>
80
    <groupId>org.gvsig</groupId>
81
    <artifactId>org.gvsig.raster.lib.buffer.spi</artifactId>
82
    <version>2.4.1-SNAPSHOT</version>
83
   </dependency>
84
   <dependency>
85
    <groupId>org.gvsig</groupId>
86
    <artifactId>org.gvsig.raster.lib.buffer.impl</artifactId>
87
    <version>2.4.1-SNAPSHOT</version>
88
   </dependency>
89
   <dependency>
90
    <groupId>org.gvsig</groupId>
91
    <artifactId>org.gvsig.raster.lib.legend.api</artifactId>
92
    <version>2.4.1-SNAPSHOT</version>
93
   </dependency>
94
   <dependency>
95
    <groupId>org.gvsig</groupId>
96
    <artifactId>org.gvsig.raster.lib.legend.impl</artifactId>
97
    <version>2.4.1-SNAPSHOT</version>
98
   </dependency>
99
   <dependency>
100
    <groupId>org.gvsig</groupId>
101
    <artifactId>org.gvsig.fmap.dal.raster.api</artifactId>
102
    <version>2.4.1-SNAPSHOT</version>
103
   </dependency>
104
   <dependency>
105
    <groupId>org.gvsig</groupId>
106
    <artifactId>org.gvsig.fmap.dal.raster.impl</artifactId>
107
    <version>2.4.1-SNAPSHOT</version>
108
   </dependency>
109
   <dependency>
110
    <groupId>org.gvsig</groupId>
111
    <artifactId>org.gvsig.fmap.dal.raster.spi</artifactId>
112
    <version>2.4.1-SNAPSHOT</version>
113
   </dependency>
114
   <dependency>
115
    <groupId>org.gvsig</groupId>
116
    <artifactId>org.gvsig.fmap.mapcontext.raster.api</artifactId>
117
    <version>2.4.1-SNAPSHOT</version>
118
   </dependency>
119
   <dependency>
120
    <groupId>org.gvsig</groupId>
121
    <artifactId>org.gvsig.fmap.mapcontext.raster.impl</artifactId>
122
    <version>2.4.1-SNAPSHOT</version>
123
   </dependency>
124
   <dependency>
125
    <groupId>org.gvsig</groupId>
126
    <artifactId>org.gvsig.fmap.dal.file.jimi</artifactId>
127
    <version>2.4.1-SNAPSHOT</version>
128
   </dependency>
129
   <dependency>
130
    <groupId>org.gvsig</groupId>
131
    <artifactId>org.gvsig.fmap.dal.file.jimi.legend</artifactId>
132
    <version>2.4.1-SNAPSHOT</version>
133
   </dependency>
134 134

  
135
			<dependency>
136
				<groupId>org.gvsig</groupId>
137
				<artifactId>org.gvsig.raster.gdal.provider</artifactId>
138
				<version>2.4.1-SNAPSHOT</version>
139
			</dependency>
140
			<dependency>
141
				<groupId>org.gvsig</groupId>
142
				<artifactId>org.gvsig.raster.gdal.provider.legend</artifactId>
143
				<version>2.4.1-SNAPSHOT</version>
144
			</dependency>
145
			<dependency>
146
				<groupId>org.gvsig</groupId>
147
				<artifactId>org.gvsig.gdal</artifactId>
148
				<version>${org.gvsig.gdal.version}</version>
149
				<type>pom</type>
150
				<scope>import</scope>
151
			</dependency>
135
   <dependency>
136
    <groupId>org.gvsig</groupId>
137
    <artifactId>org.gvsig.raster.gdal.provider</artifactId>
138
    <version>2.4.1-SNAPSHOT</version>
139
   </dependency>
140
   <dependency>
141
    <groupId>org.gvsig</groupId>
142
    <artifactId>org.gvsig.raster.gdal.provider.legend</artifactId>
143
    <version>2.4.1-SNAPSHOT</version>
144
   </dependency>
145
   <dependency>
146
    <groupId>org.gvsig</groupId>
147
    <artifactId>org.gvsig.gdal</artifactId>
148
    <version>${org.gvsig.gdal.version}</version>
149
     <type>pom</type>
150
    <scope>import</scope>
151
   </dependency>
152 152

  
153
		</dependencies>
154
	</dependencyManagement>
153
  </dependencies>
154
 </dependencyManagement>
155

  
155 156
</project>
org.gvsig.raster/branches/org.gvsig.raster.2.4/org.gvsig.raster/org.gvsig.fmap.dal.file.jimi/src/main/java/org/gvsig/fmap/dal/file/jimi/JimiRasterStoreProviderParameters.java
34 34
import org.gvsig.fmap.crs.CRSFactory;
35 35
import org.gvsig.fmap.dal.FileHelper;
36 36
import org.gvsig.fmap.dal.OpenDataStoreParameters;
37
import org.gvsig.fmap.dal.raster.spi.OpenRasterStoreParameters;
37 38
import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemStoreParameters;
38 39
import org.gvsig.fmap.dal.spi.AbstractDataParameters;
39 40
import org.gvsig.fmap.dal.spi.DataStoreProviderServices;
......
47 48
 *
48 49
 */
49 50
public class JimiRasterStoreProviderParameters extends AbstractDataParameters implements
50
OpenDataStoreParameters, FilesystemStoreParameters{
51
OpenRasterStoreParameters, FilesystemStoreParameters{
51 52

  
52 53
    private static final Logger logger = LoggerFactory.getLogger(JimiRasterStoreProviderParameters.class);
53 54

  

Also available in: Unified diff