Statistics
| Revision:

gvsig-gdal / branches / org.gvsig.gdal-2018a / org.gvsig.gdal.prov / org.gvsig.gdal.raster / org.gvsig.gdal.raster.provider / src / test / java / org / gvsig / raster / gdal / provider / RasterGdalStoreProviderTest.java @ 361

History | View | Annotate | Download (3.85 KB)

1 361 fdiaz
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
8
import org.gvsig.fmap.crs.CRSFactory;
9
import org.gvsig.fmap.dal.DALLocator;
10
import org.gvsig.fmap.dal.DataManager;
11
import org.gvsig.fmap.dal.DataServerExplorer;
12
import org.gvsig.fmap.dal.DataServerExplorerParameters;
13
import org.gvsig.fmap.dal.raster.api.NewRasterStoreParameters;
14
import org.gvsig.fmap.dal.raster.api.RasterStore;
15
import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemStoreParameters;
16
import org.gvsig.fmap.dal.spi.DALSPILocator;
17
import org.gvsig.fmap.dal.spi.DataManagerProviderServices;
18
import org.gvsig.raster.lib.buffer.api.Buffer;
19
import org.gvsig.tools.junit.AbstractLibraryAutoInitTestCase;
20
21
public class RasterGdalStoreProviderTest extends AbstractLibraryAutoInitTestCase {
22
23
    @Override
24
    protected void doSetUp() throws Exception {
25
26
27
    }
28
29
    /**
30
     * Tries to copy an store into a new one using gdal provider
31
     * @throws Exception
32
     */
33
    public void testGdalCopyStore() throws Exception{
34
        IProjection projection = CRSFactory.getCRS("EPSG:23030");
35
        final URL url = this.getClass().getResource("/pathcv.png");
36
        //The store is created using the PNG provider
37
        String openingProviderName="PNG";
38
        File openedFile=new File(url.toURI());
39
        //The store is copied using the GTiff provider
40
        String storingProviderName="GTiff";
41
        String extension="tif";
42
        File destFile=new File(openedFile.getParentFile(), "copiedFile."+extension);
43
44
        DataManager dataManager = DALLocator.getDataManager();
45
        try {
46
            //Opening the store
47
            RasterGdalStoreProviderFactory gdalFactory=
48
                (RasterGdalStoreProviderFactory)dataManager.getStoreProviderFactory(openingProviderName);
49
            RasterGdalFileStoreParameters openParams = (RasterGdalFileStoreParameters)gdalFactory.createParameters();
50
            openParams.setFile(openedFile);
51
            openParams.setCRS(projection);
52
53
            RasterStore store=null;
54
            store = (RasterStore) dataManager.openStore(openingProviderName,openParams);
55
            assertNotNull(store);
56
57
            //The store is opened and must be copied
58
            DataManagerProviderServices manager=DALSPILocator.getDataManagerProviderServices();
59
            DataServerExplorerParameters eparams = manager.createServerExplorerParameters("FilesystemExplorer");
60
            eparams.setDynValue("initialpath","/");
61
            DataServerExplorer serverExplorer= manager.createServerExplorer(eparams);
62
63
            NewRasterStoreParameters newStoreParams =(NewRasterStoreParameters) serverExplorer.getAddParameters(storingProviderName);
64
            if (newStoreParams instanceof FilesystemStoreParameters) {
65
                ((FilesystemStoreParameters) newStoreParams).setFile(destFile);
66
            }
67
            if (newStoreParams instanceof NewRasterStoreParameters) {
68
                Buffer buffer = store.getRasterSet().clip(store.getEnvelope());
69
                ((NewRasterStoreParameters) newStoreParams).setBuffer(buffer);
70
            }
71
            if (newStoreParams.hasDynValue("compress")) {
72
                newStoreParams.setDynValue("compress", "NONE");
73
            }
74
            if (newStoreParams.hasDynValue("tfw")) {
75
                newStoreParams.setDynValue("tfw", true);
76
            }
77
            if (newStoreParams.hasDynValue("photometric")) {
78
                newStoreParams.setDynValue("photometric", "RGB");
79
            }
80
81
82
            if (newStoreParams.isValid() ) {
83
                serverExplorer.add(storingProviderName, newStoreParams, true);
84
            }
85
            assert(destFile.exists());
86
87
        }catch (Exception e){
88
            fail("Exception happened: "+e.getMessage());
89
        }finally{
90
            if (destFile!=null && destFile.exists()){
91
                destFile.delete();
92
            }
93
        }
94
95
    }
96
97
}