Example usage for org.apache.commons.io FileUtils copyFileToDirectory

List of usage examples for org.apache.commons.io FileUtils copyFileToDirectory

Introduction

In this page you can find the example usage for org.apache.commons.io FileUtils copyFileToDirectory.

Prototype

public static void copyFileToDirectory(File srcFile, File destDir) throws IOException 

Source Link

Document

Copies a file to a directory preserving the file date.

Usage

From source file:org.geotools.coverage.io.netcdf.NetCDFMosaicReaderTest.java

@Test
public void testCheckDifferentSampleImages() throws IOException {
    // prepare a "mosaic" with just one NetCDF
    File nc1 = TestData.file(this, "20130101.METOPA.GOME2.NO2.DUMMY.nc");
    File mosaic = new File(TestData.file(this, "."), "nc_sampleimages");
    if (mosaic.exists()) {
        FileUtils.deleteDirectory(mosaic);
    }//from w  w w .  jav a2s .  c om
    assertTrue(mosaic.mkdirs());
    FileUtils.copyFileToDirectory(nc1, mosaic);

    nc1 = TestData.file(this, "20130101.METOPA.GOME2.BrO.DUMMY.nc");
    FileUtils.copyFileToDirectory(nc1, mosaic);

    File xml = TestData.file(this, "DUMMYGOME2.xml");
    FileUtils.copyFileToDirectory(xml, mosaic);

    // The indexer
    String indexer = "TimeAttribute=time\n"
            + "Schema=the_geom:Polygon,location:String,imageindex:Integer,time:java.util.Date\n"
            + "PropertyCollectors=TimestampFileNameExtractorSPI[timeregex](time)\n";
    indexer += Prop.AUXILIARY_FILE + "=" + "DUMMYGOME2.xml";
    FileUtils.writeStringToFile(new File(mosaic, "indexer.properties"), indexer);

    String timeregex = "regex=[0-9]{8}";
    FileUtils.writeStringToFile(new File(mosaic, "timeregex.properties"), timeregex);

    // the datastore.properties file is also mandatory...
    File dsp = TestData.file(this, "datastore.properties");
    FileUtils.copyFileToDirectory(dsp, mosaic);

    // have the reader harvest it
    ImageMosaicFormat format = new ImageMosaicFormat();
    ImageMosaicReader reader = format.getReader(mosaic);
    assertNotNull(reader);

    // Checking whether different sample images have been created
    final File sampleImage1 = new File(TestData.file(this, "."), "nc_sampleimages/BrOsample_image");
    final File sampleImage2 = new File(TestData.file(this, "."), "nc_sampleimages/NO2sample_image");
    assertTrue(sampleImage1.exists());
    assertTrue(sampleImage2.exists());
    reader.dispose();
}

From source file:org.geotools.coverage.io.netcdf.NetCDFReaderTest.java

@Test
public void NetCDFTestOn4Dcoverages()
        throws NoSuchAuthorityCodeException, FactoryException, IOException, ParseException {
    File mosaic = new File(TestData.file(this, "."), "NetCDFTestOn4Dcoverages");
    if (mosaic.exists()) {
        FileUtils.deleteDirectory(mosaic);
    }/*from  w  ww.j  av a 2s. co  m*/
    assertTrue(mosaic.mkdirs());

    File file = TestData.file(this, "O3-NO2.nc");
    FileUtils.copyFileToDirectory(file, mosaic);
    file = new File(mosaic, "O3-NO2.nc");
    final Hints hints = new Hints(Hints.DEFAULT_COORDINATE_REFERENCE_SYSTEM, CRS.decode("EPSG:4326", true));
    // Get format
    final AbstractGridFormat format = (AbstractGridFormat) GridFormatFinder.findFormat(file.toURI().toURL(),
            hints);
    final NetCDFReader reader = (NetCDFReader) format.getReader(file.toURI().toURL(), hints);

    assertNotNull(format);
    try {
        String[] names = reader.getGridCoverageNames();
        names = new String[] { names[1] };

        for (String coverageName : names) {

            final String[] metadataNames = reader.getMetadataNames(coverageName);
            assertNotNull(metadataNames);
            assertEquals(metadataNames.length, 12);

            // Parsing metadata values
            assertEquals("true", reader.getMetadataValue(coverageName, "HAS_TIME_DOMAIN"));
            final String timeMetadata = reader.getMetadataValue(coverageName, "TIME_DOMAIN");
            assertEquals(
                    "2012-04-01T00:00:00.000Z/2012-04-01T00:00:00.000Z,2012-04-01T01:00:00.000Z/2012-04-01T01:00:00.000Z",
                    timeMetadata);
            assertNotNull(timeMetadata);
            assertEquals("2012-04-01T00:00:00.000Z",
                    reader.getMetadataValue(coverageName, "TIME_DOMAIN_MINIMUM"));
            assertEquals("2012-04-01T01:00:00.000Z",
                    reader.getMetadataValue(coverageName, "TIME_DOMAIN_MAXIMUM"));

            assertEquals("true", reader.getMetadataValue(coverageName, "HAS_ELEVATION_DOMAIN"));
            final String elevationMetadata = reader.getMetadataValue(coverageName, "ELEVATION_DOMAIN");
            assertNotNull(elevationMetadata);
            assertEquals("10.0/10.0,450.0/450.0", elevationMetadata);
            assertEquals(2, elevationMetadata.split(",").length);
            assertEquals("10.0", reader.getMetadataValue(coverageName, "ELEVATION_DOMAIN_MINIMUM"));
            assertEquals("450.0", reader.getMetadataValue(coverageName, "ELEVATION_DOMAIN_MAXIMUM"));

            List<DimensionDescriptor> descriptors = ((StructuredGridCoverage2DReader) reader)
                    .getDimensionDescriptors(coverageName);
            assertNotNull(descriptors);
            assertEquals(2, descriptors.size());

            DimensionDescriptor descriptor = descriptors.get(0);
            assertEquals("TIME", descriptor.getName());
            assertEquals("time", descriptor.getStartAttribute());
            assertNull(descriptor.getEndAttribute());
            assertEquals(CoverageUtilities.UCUM.TIME_UNITS.getName(), descriptor.getUnits());
            assertEquals(CoverageUtilities.UCUM.TIME_UNITS.getSymbol(), descriptor.getUnitSymbol());

            descriptor = descriptors.get(1);
            assertEquals("ELEVATION", descriptor.getName());
            assertEquals("z", descriptor.getStartAttribute());
            assertNull(descriptor.getEndAttribute());
            assertEquals("meters", descriptor.getUnits());
            assertEquals(CoverageUtilities.UCUM.ELEVATION_UNITS.getSymbol(), descriptor.getUnitSymbol());

            // subsetting the envelope
            final ParameterValue<GridGeometry2D> gg = AbstractGridFormat.READ_GRIDGEOMETRY2D.createValue();
            final GeneralEnvelope originalEnvelope = reader.getOriginalEnvelope(coverageName);
            final GeneralEnvelope reducedEnvelope = new GeneralEnvelope(
                    new double[] { originalEnvelope.getLowerCorner().getOrdinate(0),
                            originalEnvelope.getLowerCorner().getOrdinate(1) },
                    new double[] { originalEnvelope.getMedian().getOrdinate(0),
                            originalEnvelope.getMedian().getOrdinate(1) });
            reducedEnvelope.setCoordinateReferenceSystem(reader.getCoordinateReferenceSystem(coverageName));

            // Selecting bigger gridRange for a zoomed result
            final Dimension dim = new Dimension();
            GridEnvelope gridRange = reader.getOriginalGridRange(coverageName);
            dim.setSize(gridRange.getSpan(0) * 4.0, gridRange.getSpan(1) * 2.0);
            final Rectangle rasterArea = ((GridEnvelope2D) gridRange);
            rasterArea.setSize(dim);
            final GridEnvelope2D range = new GridEnvelope2D(rasterArea);
            gg.setValue(new GridGeometry2D(range, reducedEnvelope));

            final ParameterValue<List> time = ImageMosaicFormat.TIME.createValue();
            final SimpleDateFormat formatD = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
            formatD.setTimeZone(TimeZone.getTimeZone("GMT"));
            final Date timeD = formatD.parse("2012-04-01T00:00:00.000Z");
            time.setValue(new ArrayList() {
                {
                    add(timeD);
                }
            });

            final ParameterValue<List> elevation = ImageMosaicFormat.ELEVATION.createValue();
            elevation.setValue(new ArrayList() {
                {
                    add(450d); // Elevation
                }
            });

            GeneralParameterValue[] values = new GeneralParameterValue[] { gg, time, elevation };
            GridCoverage2D coverage = reader.read(coverageName, values);
            assertNotNull(coverage);
            if (TestData.isInteractiveTest()) {
                coverage.show();
            } else {
                PlanarImage.wrapRenderedImage(coverage.getRenderedImage()).getTiles();
            }
        }
    } catch (Throwable t) {
        throw new RuntimeException(t);
    } finally {
        if (reader != null) {
            try {
                reader.dispose();
            } catch (Throwable t) {
                // Does nothing
            }
        }
    }
}

From source file:org.geotools.coverage.io.netcdf.NetCDFReaderTest.java

@Test
public void NetCDFTestOnFilter()
        throws NoSuchAuthorityCodeException, FactoryException, IOException, ParseException {
    File mosaic = new File(TestData.file(this, "."), "NetCDFTestOnFilter");
    if (mosaic.exists()) {
        FileUtils.deleteDirectory(mosaic);
    }/*from   ww  w . ja  v  a  2  s .c om*/
    assertTrue(mosaic.mkdirs());

    File file = TestData.file(this, "O3-NO2.nc");
    FileUtils.copyFileToDirectory(file, mosaic);
    file = new File(mosaic, "O3-NO2.nc");

    final Hints hints = new Hints(Hints.DEFAULT_COORDINATE_REFERENCE_SYSTEM, CRS.decode("EPSG:4326", true));
    // Get format
    final AbstractGridFormat format = (AbstractGridFormat) GridFormatFinder.findFormat(file.toURI().toURL(),
            hints);
    final NetCDFReader reader = (NetCDFReader) format.getReader(file.toURI().toURL(), hints);

    assertNotNull(format);
    try {
        String[] names = reader.getGridCoverageNames();
        names = new String[] { names[1] };

        for (String coverageName : names) {

            final String[] metadataNames = reader.getMetadataNames(coverageName);
            assertNotNull(metadataNames);
            assertEquals(12, metadataNames.length);

            // Parsing metadata values
            assertEquals("true", reader.getMetadataValue(coverageName, "HAS_TIME_DOMAIN"));
            final String timeMetadata = reader.getMetadataValue(coverageName, "TIME_DOMAIN");
            assertEquals(
                    "2012-04-01T00:00:00.000Z/2012-04-01T00:00:00.000Z,2012-04-01T01:00:00.000Z/2012-04-01T01:00:00.000Z",
                    timeMetadata);
            assertNotNull(timeMetadata);
            assertEquals("2012-04-01T00:00:00.000Z",
                    reader.getMetadataValue(coverageName, "TIME_DOMAIN_MINIMUM"));
            assertEquals("2012-04-01T01:00:00.000Z",
                    reader.getMetadataValue(coverageName, "TIME_DOMAIN_MAXIMUM"));

            assertEquals("true", reader.getMetadataValue(coverageName, "HAS_ELEVATION_DOMAIN"));
            final String elevationMetadata = reader.getMetadataValue(coverageName, "ELEVATION_DOMAIN");
            assertNotNull(elevationMetadata);
            assertEquals("10.0/10.0,450.0/450.0", elevationMetadata);
            assertEquals(2, elevationMetadata.split(",").length);
            assertEquals("10.0", reader.getMetadataValue(coverageName, "ELEVATION_DOMAIN_MINIMUM"));
            assertEquals("450.0", reader.getMetadataValue(coverageName, "ELEVATION_DOMAIN_MAXIMUM"));

            // subsetting the envelope
            final ParameterValue<GridGeometry2D> gg = AbstractGridFormat.READ_GRIDGEOMETRY2D.createValue();
            final GeneralEnvelope originalEnvelope = reader.getOriginalEnvelope(coverageName);
            final GeneralEnvelope reducedEnvelope = new GeneralEnvelope(
                    new double[] { originalEnvelope.getLowerCorner().getOrdinate(0),
                            originalEnvelope.getLowerCorner().getOrdinate(1) },
                    new double[] { originalEnvelope.getMedian().getOrdinate(0),
                            originalEnvelope.getMedian().getOrdinate(1) });
            reducedEnvelope.setCoordinateReferenceSystem(reader.getCoordinateReferenceSystem(coverageName));

            // Selecting bigger gridRange for a zoomed result
            final Dimension dim = new Dimension();
            GridEnvelope gridRange = reader.getOriginalGridRange(coverageName);
            dim.setSize(gridRange.getSpan(0) * 4.0, gridRange.getSpan(1) * 2.0);
            final Rectangle rasterArea = ((GridEnvelope2D) gridRange);
            rasterArea.setSize(dim);
            final GridEnvelope2D range = new GridEnvelope2D(rasterArea);
            gg.setValue(new GridGeometry2D(range, reducedEnvelope));

            final ParameterValue<Filter> filterParam = NetCDFFormat.FILTER.createValue();
            FilterFactory2 FF = FeatureUtilities.DEFAULT_FILTER_FACTORY;
            Filter filter = FF.equals(FF.property("z"), FF.literal(450.0));
            filterParam.setValue(filter);

            GeneralParameterValue[] values = new GeneralParameterValue[] { filterParam };
            GridCoverage2D coverage = reader.read(coverageName, values);
            assertNotNull(coverage);
            if (TestData.isInteractiveTest()) {
                coverage.show();
            } else {
                PlanarImage.wrapRenderedImage(coverage.getRenderedImage()).getTiles();
            }
        }
    } catch (Throwable t) {
        throw new RuntimeException(t);
    } finally {
        if (reader != null) {
            try {
                reader.dispose();
            } catch (Throwable t) {
                // Does nothing
            }
        }
    }
}

From source file:org.geotools.coverage.io.netcdf.NetCDFReaderTest.java

@Test
public void NetCDFTestOn4DcoveragesWithDifferentSchemas()
        throws NoSuchAuthorityCodeException, FactoryException, IOException, ParseException {
    File mosaic = new File(TestData.file(this, "."), "NetCDFTestOn4DcoveragesWithDifferentSchemas");
    if (mosaic.exists()) {
        FileUtils.deleteDirectory(mosaic);
    }/*from   w  w  w  .  java2  s .c o m*/
    assertTrue(mosaic.mkdirs());

    File file = TestData.file(this, "O3-NO2-noZ.nc");
    FileUtils.copyFileToDirectory(file, mosaic);
    file = new File(mosaic, "O3-NO2-noZ.nc");

    final Hints hints = new Hints(Hints.DEFAULT_COORDINATE_REFERENCE_SYSTEM, CRS.decode("EPSG:4326", true));
    // Get format
    final AbstractGridFormat format = (AbstractGridFormat) GridFormatFinder.findFormat(file.toURI().toURL(),
            hints);
    final NetCDFReader reader = (NetCDFReader) format.getReader(file.toURI().toURL(), hints);

    assertNotNull(format);
    try {
        String[] names = reader.getGridCoverageNames();
        for (String coverageName : names) {

            final String[] metadataNames = reader.getMetadataNames(coverageName);
            assertNotNull(metadataNames);
            assertEquals(metadataNames.length, 12);

            // Parsing metadata values
            assertEquals("true", reader.getMetadataValue(coverageName, "HAS_TIME_DOMAIN"));
            final String timeMetadata = reader.getMetadataValue(coverageName, "TIME_DOMAIN");
            assertEquals(
                    "2012-04-01T00:00:00.000Z/2012-04-01T00:00:00.000Z,2012-04-01T01:00:00.000Z/2012-04-01T01:00:00.000Z",
                    timeMetadata);
            assertNotNull(timeMetadata);
            assertEquals("2012-04-01T00:00:00.000Z",
                    reader.getMetadataValue(coverageName, "TIME_DOMAIN_MINIMUM"));
            assertEquals("2012-04-01T01:00:00.000Z",
                    reader.getMetadataValue(coverageName, "TIME_DOMAIN_MAXIMUM"));

            if (coverageName.equalsIgnoreCase("O3")) {
                assertEquals("true", reader.getMetadataValue(coverageName, "HAS_ELEVATION_DOMAIN"));
                final String elevationMetadata = reader.getMetadataValue(coverageName, "ELEVATION_DOMAIN");
                assertNotNull(elevationMetadata);
                assertEquals("10.0/10.0,450.0/450.0", elevationMetadata);
                assertEquals(2, elevationMetadata.split(",").length);
                assertEquals("10.0", reader.getMetadataValue(coverageName, "ELEVATION_DOMAIN_MINIMUM"));
                assertEquals("450.0", reader.getMetadataValue(coverageName, "ELEVATION_DOMAIN_MAXIMUM"));
            } else {
                // Note that This sample doesn't have elevation for NO2
                assertEquals("false", reader.getMetadataValue(coverageName, "HAS_ELEVATION_DOMAIN"));
                final String elevationMetadata = reader.getMetadataValue(coverageName, "ELEVATION_DOMAIN");
                assertNull(elevationMetadata);

            }

            // subsetting the envelope
            final ParameterValue<GridGeometry2D> gg = AbstractGridFormat.READ_GRIDGEOMETRY2D.createValue();
            final GeneralEnvelope originalEnvelope = reader.getOriginalEnvelope(coverageName);
            final GeneralEnvelope reducedEnvelope = new GeneralEnvelope(
                    new double[] { originalEnvelope.getLowerCorner().getOrdinate(0),
                            originalEnvelope.getLowerCorner().getOrdinate(1) },
                    new double[] { originalEnvelope.getMedian().getOrdinate(0),
                            originalEnvelope.getMedian().getOrdinate(1) });
            reducedEnvelope.setCoordinateReferenceSystem(reader.getCoordinateReferenceSystem(coverageName));

            // Selecting bigger gridRange for a zoomed result
            final Dimension dim = new Dimension();
            GridEnvelope gridRange = reader.getOriginalGridRange(coverageName);
            dim.setSize(gridRange.getSpan(0) * 4.0, gridRange.getSpan(1) * 2.0);
            final Rectangle rasterArea = ((GridEnvelope2D) gridRange);
            rasterArea.setSize(dim);
            final GridEnvelope2D range = new GridEnvelope2D(rasterArea);
            gg.setValue(new GridGeometry2D(range, reducedEnvelope));

            final ParameterValue<List> time = ImageMosaicFormat.TIME.createValue();
            final SimpleDateFormat formatD = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
            formatD.setTimeZone(TimeZone.getTimeZone("GMT"));
            final Date timeD = formatD.parse("2012-04-01T00:00:00.000Z");
            time.setValue(new ArrayList() {
                {
                    add(timeD);
                }
            });

            final ParameterValue<List> elevation = ImageMosaicFormat.ELEVATION.createValue();
            elevation.setValue(new ArrayList() {
                {
                    add(450d); // Elevation
                }
            });

            GeneralParameterValue[] values = coverageName.equalsIgnoreCase("O3")
                    ? new GeneralParameterValue[] { gg, time, elevation }
                    : new GeneralParameterValue[] { gg, time };

            GridCoverage2D coverage = reader.read(coverageName, values);
            assertNotNull(coverage);
            if (TestData.isInteractiveTest()) {
                coverage.show();
            } else {
                PlanarImage.wrapRenderedImage(coverage.getRenderedImage()).getTiles();
            }
        }
    } catch (Throwable t) {
        throw new RuntimeException(t);
    } finally {
        if (reader != null) {
            try {
                reader.dispose();
            } catch (Throwable t) {
                // Does nothing
            }
        }
    }
}

From source file:org.geotools.coverage.io.netcdf.NetCDFReaderTest.java

@Test
public void NetCDFTestOn4DcoveragesWithImposedSchemas()
        throws NoSuchAuthorityCodeException, FactoryException, IOException, ParseException {
    File mosaic = new File(TestData.file(this, "."), "NetCDFTestOn4DcoveragesWithImposedSchemas");
    if (mosaic.exists()) {
        FileUtils.deleteDirectory(mosaic);
    }//from  w  ww .j a  v a  2s  . c om
    assertTrue(mosaic.mkdirs());

    File file = TestData.file(this, "O3NO2-noZ.nc");
    File auxFile = TestData.file(this, "O3NO2-noZ.xml");
    FileUtils.copyFileToDirectory(file, mosaic);
    FileUtils.copyFileToDirectory(auxFile, mosaic);
    file = new File(mosaic, "O3NO2-noZ.nc");

    final Hints hints = new Hints(Hints.DEFAULT_COORDINATE_REFERENCE_SYSTEM, CRS.decode("EPSG:4326", true));
    hints.put(Utils.AUXILIARY_FILES_PATH, new File(mosaic, "O3NO2-noZ.xml").getAbsolutePath()); // impose def

    // Get format
    final AbstractGridFormat format = (AbstractGridFormat) GridFormatFinder.findFormat(file.toURI().toURL(),
            hints);
    final NetCDFReader reader = (NetCDFReader) format.getReader(file.toURI().toURL(), hints);

    assertNotNull(format);
    try {
        String[] names = reader.getGridCoverageNames();
        for (String coverageName : names) {

            final String[] metadataNames = reader.getMetadataNames(coverageName);
            assertNotNull(metadataNames);
            assertEquals(metadataNames.length, 12);

            // Parsing metadata values
            assertEquals("true", reader.getMetadataValue(coverageName, "HAS_TIME_DOMAIN"));
            final String timeMetadata = reader.getMetadataValue(coverageName, "TIME_DOMAIN");
            assertEquals(
                    "2012-04-01T00:00:00.000Z/2012-04-01T00:00:00.000Z,2012-04-01T01:00:00.000Z/2012-04-01T01:00:00.000Z",
                    timeMetadata);
            assertNotNull(timeMetadata);
            assertEquals("2012-04-01T00:00:00.000Z",
                    reader.getMetadataValue(coverageName, "TIME_DOMAIN_MINIMUM"));
            assertEquals("2012-04-01T01:00:00.000Z",
                    reader.getMetadataValue(coverageName, "TIME_DOMAIN_MAXIMUM"));

            if (coverageName.equalsIgnoreCase("O3")) {
                assertEquals("true", reader.getMetadataValue(coverageName, "HAS_ELEVATION_DOMAIN"));
                final String elevationMetadata = reader.getMetadataValue(coverageName, "ELEVATION_DOMAIN");
                assertNotNull(elevationMetadata);
                assertEquals("10.0/10.0,450.0/450.0", elevationMetadata);
                assertEquals(2, elevationMetadata.split(",").length);
                assertEquals("10.0", reader.getMetadataValue(coverageName, "ELEVATION_DOMAIN_MINIMUM"));
                assertEquals("450.0", reader.getMetadataValue(coverageName, "ELEVATION_DOMAIN_MAXIMUM"));
            } else {
                // Note that This sample doesn't have elevation for NO2
                assertEquals("false", reader.getMetadataValue(coverageName, "HAS_ELEVATION_DOMAIN"));
                final String elevationMetadata = reader.getMetadataValue(coverageName, "ELEVATION_DOMAIN");
                assertNull(elevationMetadata);

            }

            // subsetting the envelope
            final ParameterValue<GridGeometry2D> gg = AbstractGridFormat.READ_GRIDGEOMETRY2D.createValue();
            final GeneralEnvelope originalEnvelope = reader.getOriginalEnvelope(coverageName);
            final GeneralEnvelope reducedEnvelope = new GeneralEnvelope(
                    new double[] { originalEnvelope.getLowerCorner().getOrdinate(0),
                            originalEnvelope.getLowerCorner().getOrdinate(1) },
                    new double[] { originalEnvelope.getMedian().getOrdinate(0),
                            originalEnvelope.getMedian().getOrdinate(1) });
            reducedEnvelope.setCoordinateReferenceSystem(reader.getCoordinateReferenceSystem(coverageName));

            // Selecting bigger gridRange for a zoomed result
            final Dimension dim = new Dimension();
            GridEnvelope gridRange = reader.getOriginalGridRange(coverageName);
            dim.setSize(gridRange.getSpan(0) * 4.0, gridRange.getSpan(1) * 2.0);
            final Rectangle rasterArea = ((GridEnvelope2D) gridRange);
            rasterArea.setSize(dim);
            final GridEnvelope2D range = new GridEnvelope2D(rasterArea);
            gg.setValue(new GridGeometry2D(range, reducedEnvelope));

            final ParameterValue<List> time = ImageMosaicFormat.TIME.createValue();
            final SimpleDateFormat formatD = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
            formatD.setTimeZone(TimeZone.getTimeZone("GMT"));
            final Date timeD = formatD.parse("2012-04-01T00:00:00.000Z");
            time.setValue(new ArrayList() {
                {
                    add(timeD);
                }
            });

            final ParameterValue<List> elevation = ImageMosaicFormat.ELEVATION.createValue();
            elevation.setValue(new ArrayList() {
                {
                    add(450d); // Elevation
                }
            });

            GeneralParameterValue[] values = coverageName.equalsIgnoreCase("O3")
                    ? new GeneralParameterValue[] { gg, time, elevation }
                    : new GeneralParameterValue[] { gg, time };

            GridCoverage2D coverage = reader.read(coverageName, values);
            assertNotNull(coverage);
            if (TestData.isInteractiveTest()) {
                coverage.show();
            } else {
                PlanarImage.wrapRenderedImage(coverage.getRenderedImage()).getTiles();
            }
        }
    } catch (Throwable t) {
        throw new RuntimeException(t);
    } finally {
        if (reader != null) {
            try {
                reader.dispose();
            } catch (Throwable t) {
                // Does nothing
            }
        }
    }
}

From source file:org.geotools.coverage.io.netcdf.NetCDFReaderTest.java

@Test
public void NetCDFTestAscatL1()
        throws NoSuchAuthorityCodeException, FactoryException, IOException, ParseException {
    File mosaic = new File(TestData.file(this, "."), "NetCDFTestAscatL1");
    if (mosaic.exists()) {
        FileUtils.deleteDirectory(mosaic);
    }// w  w w  .jav  a  2s  .  c o m
    assertTrue(mosaic.mkdirs());
    File file = TestData.file(this, "ascatl1.nc");
    FileUtils.copyFileToDirectory(file, mosaic);
    file = new File(mosaic, "ascatl1.nc");

    final Hints hints = new Hints(Hints.DEFAULT_COORDINATE_REFERENCE_SYSTEM, CRS.decode("EPSG:4326", true));
    hints.add(new Hints(Utils.EXCLUDE_MOSAIC, true));

    // Get format
    final AbstractGridFormat format = (AbstractGridFormat) GridFormatFinder.findFormat(file.toURI().toURL(),
            hints);
    final NetCDFReader reader = (NetCDFReader) format.getReader(file.toURI().toURL(), hints);

    assertNotNull(format);
    try {
        String[] names = reader.getGridCoverageNames();
        names = new String[] { names[1] };

        for (String coverageName : names) {

            final String[] metadataNames = reader.getMetadataNames(coverageName);
            assertNotNull(metadataNames);
            assertEquals(17, metadataNames.length);

            // Parsing metadata values
            assertEquals("false", reader.getMetadataValue(coverageName, "HAS_TIME_DOMAIN"));

            assertEquals("false", reader.getMetadataValue(coverageName, "HAS_ELEVATION_DOMAIN"));

            assertEquals("true", reader.getMetadataValue(coverageName, "HAS_NUMSIGMA_DOMAIN"));
            final String sigmaMetadata = reader.getMetadataValue(coverageName, "NUMSIGMA_DOMAIN");
            assertNotNull(sigmaMetadata);
            assertEquals("0,1,2", sigmaMetadata);
            assertEquals(3, sigmaMetadata.split(",").length);

            // subsetting the envelope
            final ParameterValue<GridGeometry2D> gg = AbstractGridFormat.READ_GRIDGEOMETRY2D.createValue();
            final GeneralEnvelope originalEnvelope = reader.getOriginalEnvelope(coverageName);
            final GeneralEnvelope reducedEnvelope = new GeneralEnvelope(
                    new double[] { originalEnvelope.getLowerCorner().getOrdinate(0),
                            originalEnvelope.getLowerCorner().getOrdinate(1) },
                    new double[] { originalEnvelope.getMedian().getOrdinate(0),
                            originalEnvelope.getMedian().getOrdinate(1) });
            reducedEnvelope.setCoordinateReferenceSystem(reader.getCoordinateReferenceSystem(coverageName));

            // Selecting bigger gridRange for a zoomed result
            final Dimension dim = new Dimension();
            GridEnvelope gridRange = reader.getOriginalGridRange(coverageName);
            dim.setSize(gridRange.getSpan(0) * 4.0, gridRange.getSpan(1) * 2.0);
            final Rectangle rasterArea = ((GridEnvelope2D) gridRange);
            rasterArea.setSize(dim);
            final GridEnvelope2D range = new GridEnvelope2D(rasterArea);
            gg.setValue(new GridGeometry2D(range, reducedEnvelope));

            ParameterValue<List<String>> sigmaValue = null;
            final String selectedSigma = "1";
            Set<ParameterDescriptor<List>> params = reader.getDynamicParameters(coverageName);
            for (ParameterDescriptor param : params) {
                if (param.getName().getCode().equalsIgnoreCase("NUMSIGMA")) {
                    sigmaValue = param.createValue();
                    sigmaValue.setValue(new ArrayList<String>() {
                        {
                            add(selectedSigma);
                        }
                    });
                }
            }

            GeneralParameterValue[] values = new GeneralParameterValue[] { gg, sigmaValue };
            GridCoverage2D coverage = reader.read(coverageName, values);
            assertNotNull(coverage);
            if (TestData.isInteractiveTest()) {
                coverage.show();
            } else {
                PlanarImage.wrapRenderedImage(coverage.getRenderedImage()).getTiles();
            }
        }
    } catch (Throwable t) {
        throw new RuntimeException(t);
    } finally {
        if (reader != null) {
            try {
                reader.dispose();
            } catch (Throwable t) {
                // Does nothing
            }
        }
    }
}

From source file:org.geotools.coverage.io.netcdf.NetCDFReaderTest.java

@Test
public void NetCDFGOME2() throws NoSuchAuthorityCodeException, FactoryException, IOException, ParseException {
    File mosaic = new File(TestData.file(this, "."), "NetCDFGOME2");
    if (mosaic.exists()) {
        FileUtils.deleteDirectory(mosaic);
    }/*from   w w w .  j a  v  a 2  s.c  o  m*/
    assertTrue(mosaic.mkdirs());
    File file = TestData.file(this, "DUMMY.GOME2.NO2.PGL.nc");
    FileUtils.copyFileToDirectory(file, mosaic);
    file = new File(mosaic, "DUMMY.GOME2.NO2.PGL.nc");

    final Hints hints = new Hints(Hints.DEFAULT_COORDINATE_REFERENCE_SYSTEM, CRS.decode("EPSG:4326", true));
    // Get format
    final AbstractGridFormat format = (AbstractGridFormat) GridFormatFinder.findFormat(file.toURI().toURL(),
            hints);
    final NetCDFReader reader = (NetCDFReader) format.getReader(file.toURI().toURL(), hints);

    assertNotNull(format);
    try {
        String[] names = reader.getGridCoverageNames();
        names = new String[] { names[0] };

        for (String coverageName : names) {

            final String[] metadataNames = reader.getMetadataNames(coverageName);
            assertNotNull(metadataNames);
            assertEquals(metadataNames.length, 12);

            // Parsing metadata values
            assertEquals("false", reader.getMetadataValue(coverageName, "HAS_TIME_DOMAIN"));
            final String timeMetadata = reader.getMetadataValue(coverageName, "TIME_DOMAIN");
            assertNull(timeMetadata);

            assertEquals("false", reader.getMetadataValue(coverageName, "HAS_ELEVATION_DOMAIN"));
            final String elevationMetadata = reader.getMetadataValue(coverageName, "ELEVATION_DOMAIN");
            assertNull(elevationMetadata);
        }
    } catch (Throwable t) {
        throw new RuntimeException(t);
    } finally {
        if (reader != null) {
            try {
                reader.dispose();
            } catch (Throwable t) {
                // Does nothing
            }
        }
    }
}

From source file:org.geotools.data.complex.config.AppSchemaFileDataTest.java

/**
 * Copy a file from the test-data directory to another directory.
 * //from ww w .ja  v  a2s  .c  o  m
 * @param baseFileName
 *            base filename (without any path) of the file to be copied
 * @param destDir
 *            destination filename
 * @throws IOException
 */
private static void copyTestData(String baseFileName, File destDir) throws IOException {
    destDir.mkdirs();
    FileUtils.copyFileToDirectory(
            DataUtilities.urlToFile(AppSchemaFileDataTest.class.getResource(testData + baseFileName)), destDir);
}

From source file:org.glassfish.tyrus.tests.qa.tools.Misc.java

/**
 * Copy file set to the target directory. If the directory does not exist it
 * is created.//ww  w.j a v  a 2  s. c o  m
 *
 * @param fileSet set of files to be copied
 * @param dstDirectory destination where the files are copied
 */
public static void copyFiles(Set<File> fileSet, File dstDirectory, String regex, String move)
        throws IOException {
    if (!dstDirectory.isDirectory()) {
        FileUtils.forceMkdir(dstDirectory);
    }
    for (File src : fileSet) {
        File srcParent = src.getParentFile();
        String targetDir = FilenameUtils.separatorsToUnix(srcParent.toString());
        if (regex != null) {
            if (move == null) {
                move = "";
            }
            targetDir = targetDir.replaceFirst(regex, move);
        }
        File dst = new File(dstDirectory, targetDir);
        logger.log(Level.FINE, "copyFiles: {0} ---> {1}", new Object[] { src, dst });
        FileUtils.copyFileToDirectory(src, dst);
    }
}

From source file:org.goobi.io.SafeFile.java

public void copyFileToDirectory(SafeFile destDir) throws IOException {
    FileUtils.copyFileToDirectory(delegate, destDir.delegate);
}