Statistics
| Revision:

gvsig-raster / org.gvsig.raster / branches / org.gvsig.raster.2.4 / org.gvsig.raster / org.gvsig.raster.gdal / org.gvsig.raster.gdal.provider / src / test / java / org / gvsig / raster / gdal / provider / RasterGdalStoreProviderTest.java @ 6335

History | View | Annotate | Download (3.85 KB)

1
package org.gvsig.raster.gdal.provider;
2

    
3
import java.io.File;
4
import java.net.URL;
5

    
6
import org.cresques.cts.IProjection;
7
import org.gvsig.fmap.crs.CRSFactory;
8
import org.gvsig.fmap.dal.DALLocator;
9
import org.gvsig.fmap.dal.DataManager;
10
import org.gvsig.fmap.dal.DataServerExplorer;
11
import org.gvsig.fmap.dal.DataServerExplorerParameters;
12
import org.gvsig.fmap.dal.raster.api.RasterStore;
13
import org.gvsig.fmap.dal.raster.spi.NewRasterStoreParameters;
14
import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemStoreParameters;
15
import org.gvsig.fmap.dal.spi.DALSPILocator;
16
import org.gvsig.fmap.dal.spi.DataManagerProviderServices;
17
import org.gvsig.raster.lib.buffer.api.Buffer;
18
import org.gvsig.tools.junit.AbstractLibraryAutoInitTestCase;
19

    
20
public class RasterGdalStoreProviderTest extends AbstractLibraryAutoInitTestCase {
21

    
22
    @Override
23
    protected void doSetUp() throws Exception {
24

    
25

    
26
    }
27

    
28
    /**
29
     * Tries to copy an store into a new one using gdal provider
30
     * @throws Exception
31
     */
32
    public void testGdalCopyStore() throws Exception{
33
        IProjection projection = CRSFactory.getCRS("EPSG:23030");
34
        final URL url = this.getClass().getResource("/pathcv.png");
35
        //The store is created using the PNG provider
36
        String openingProviderName="PNG";
37
        File openedFile=new File(url.toURI());
38
        //The store is copied using the GTiff provider
39
        String storingProviderName="GTiff";
40
        String extension="tif";
41
        File destFile=new File(openedFile.getParentFile(), "copiedFile."+extension);
42

    
43
        DataManager dataManager = DALLocator.getDataManager();
44
        try {
45
            //Opening the store
46
            RasterGdalStoreProviderFactory gdalFactory=
47
                (RasterGdalStoreProviderFactory)dataManager.getStoreProviderFactory(openingProviderName);
48
            RasterGdalFileStoreParameters openParams = (RasterGdalFileStoreParameters)gdalFactory.createParameters();
49
            openParams.setFile(openedFile);
50
            openParams.setCRS(projection);
51

    
52
            RasterStore store=null;
53
            store = (RasterStore) dataManager.openStore(openingProviderName,openParams);
54
            assertNotNull(store);
55

    
56
            //The store is opened and must be copied
57
            DataManagerProviderServices manager=DALSPILocator.getDataManagerProviderServices();
58
            DataServerExplorerParameters eparams = manager.createServerExplorerParameters("FilesystemExplorer");
59
            eparams.setDynValue("initialpath","/");
60
            DataServerExplorer serverExplorer= manager.createServerExplorer(eparams);
61

    
62
            NewRasterStoreParameters newStoreParams =(NewRasterStoreParameters) serverExplorer.getAddParameters(storingProviderName);
63
            if (newStoreParams instanceof FilesystemStoreParameters) {
64
                ((FilesystemStoreParameters) newStoreParams).setFile(destFile);
65
            }
66
            if (newStoreParams instanceof NewRasterStoreParameters) {
67
                Buffer buffer = store.getRasterSet().clip(store.getEnvelope());
68
                ((NewRasterStoreParameters) newStoreParams).setBuffer(buffer);
69
            }
70
            if (newStoreParams.hasDynValue("compress")) {
71
                newStoreParams.setDynValue("compress", "NONE");
72
            }
73
            if (newStoreParams.hasDynValue("tfw")) {
74
                newStoreParams.setDynValue("tfw", true);
75
            }
76
            if (newStoreParams.hasDynValue("photometric")) {
77
                newStoreParams.setDynValue("photometric", "RGB");
78
            }
79

    
80

    
81
            if (newStoreParams.isValid() ) {
82
                serverExplorer.add(storingProviderName, newStoreParams, true);
83
            }
84
            assert(destFile.exists());
85

    
86
        }catch (Exception e){
87
            fail("Exception happened: "+e.getMessage());
88
        }finally{
89
            if (destFile!=null && destFile.exists()){
90
                destFile.delete();
91
            }
92
        }
93

    
94
    }
95

    
96
}