Example usage for java.awt Rectangle setSize

List of usage examples for java.awt Rectangle setSize

Introduction

In this page you can find the example usage for java.awt Rectangle setSize.

Prototype

public void setSize(Dimension d) 

Source Link

Document

Sets the size of this Rectangle to match the specified Dimension .

Usage

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);
    }/*  www.  j  a  va  2s  . co  m*/
    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);
    }/*from  ww  w . ja va 2 s .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

@SuppressWarnings({ "rawtypes", "unchecked" })
@Test//w  w w .ja v a  2 s. com
@Ignore
public void IASI() throws Exception {

    final URL testURL = TestData.url(this, "IASI_C_EUMP_20121120062959_31590_eps_o_l2.nc");
    final Hints hints = new Hints(Hints.DEFAULT_COORDINATE_REFERENCE_SYSTEM, CRS.decode("EPSG:4326", true));
    // Get format
    final AbstractGridFormat format = (AbstractGridFormat) GridFormatFinder.findFormat(testURL, hints);
    final NetCDFReader reader = (NetCDFReader) format.getReader(testURL, hints);
    assertNotNull(format);
    assertNotNull(reader);
    try {
        String[] names = reader.getGridCoverageNames();
        assertNotNull(names);
        assertEquals(names.length, 20);

        // surface_emissivity
        final String coverageName = "surface_emissivity";
        final String[] metadataNames = reader.getMetadataNames(coverageName);
        assertNotNull(metadataNames);
        assertEquals(14, 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_NEW_DOMAIN"));

        // additional domains
        final String newDomain = reader.getMetadataValue(coverageName, "NEW_DOMAIN");
        assertNotNull(metadataNames);
        final String[] newDomainValues = newDomain.split(",");
        assertNotNull(newDomainValues);
        assertEquals(12, newDomainValues.length);
        assertEquals(13.063399669990758, Double.valueOf(newDomainValues[11]), 1E-6);
        assertEquals(3.6231999084702693, Double.valueOf(newDomainValues[0]), 1E-6);

        // 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));

        // specify additional Dimensions
        Set<ParameterDescriptor<List>> params = reader.getDynamicParameters(coverageName);
        ParameterValue<List> new_ = null;
        for (ParameterDescriptor param : params) {
            if (param.getName().getCode().equalsIgnoreCase("NEW")) {
                new_ = param.createValue();
                new_.setValue(new ArrayList() {
                    {
                        add(Double.valueOf(newDomainValues[11]));
                    }
                });
            }
        }

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

From source file:org.geotools.gce.imagemosaic.CatalogBuilderTest.java

@Test
public void buildCatalog() throws FileNotFoundException, IOException {
    if (hostnameDefined) {
        CatalogBuilder builder = null;/*from   ww  w  .j a  v a  2  s  . co  m*/
        ImageMosaicReader reader = null;
        ParameterValue<GridGeometry2D> gg = null;
        GeneralEnvelope envelope = null;
        Dimension dim = null;
        Rectangle rasterArea = null;
        GridEnvelope2D range = null;
        GridCoverage2D coverage = null;
        final ParameterValue<Boolean> useJai = AbstractGridFormat.USE_JAI_IMAGEREAD.createValue();
        useJai.setValue(false);

        final ParameterValue<String> tileSize = AbstractGridFormat.SUGGESTED_TILE_SIZE.createValue();
        tileSize.setValue("128,128");

        //build a relative index and then make it run
        CatalogBuilderConfiguration c1 = new CatalogBuilderConfiguration();
        c1.setIndexName("shpindex");
        c1.setLocationAttribute("location");
        c1.setAbsolute(false);
        c1.setRootMosaicDirectory(TestData.file(this, "/overview").toString());
        c1.setIndexingDirectories(Arrays.asList(TestData.file(this, "/overview/0").toString()));
        assertNotNull(c1.toString());
        //build the index
        builder = new CatalogBuilder(c1);
        builder.addProcessingEventListener(new CatalogBuilderListener());
        builder.run();
        final File relativeMosaic = TestData.file(this, "/overview/" + c1.getIndexName() + ".shp");
        assertTrue(relativeMosaic.exists());

        assertTrue(new ImageMosaicFormat().accepts(relativeMosaic));
        reader = (ImageMosaicReader) new ImageMosaicReader(relativeMosaic);

        // limit yourself to reading just a bit of it
        gg = AbstractGridFormat.READ_GRIDGEOMETRY2D.createValue();
        envelope = reader.getOriginalEnvelope();
        dim = new Dimension();
        dim.setSize(reader.getOriginalGridRange().getSpan(0) / 2.0,
                reader.getOriginalGridRange().getSpan(1) / 2.0);
        rasterArea = ((GridEnvelope2D) reader.getOriginalGridRange());
        rasterArea.setSize(dim);
        range = new GridEnvelope2D(rasterArea);
        gg.setValue(new GridGeometry2D(range, envelope));

        // use imageio with defined tiles

        // Test the output coverage
        coverage = (GridCoverage2D) reader.read(new GeneralParameterValue[] { gg, useJai, tileSize });
        Assert.assertNotNull(coverage);
        PlanarImage.wrapRenderedImage(coverage.getRenderedImage()).getTiles();

        //caching should be false by default
        Properties props = new Properties();
        InputStream in = null;
        try {
            in = TestData.openStream(this, "/overview/" + c1.getIndexName() + ".properties");
            assertNotNull("unable to find mosaic properties file", in);
            props.load(in);

            assertTrue(props.containsKey("Caching"));
            assertTrue(props.getProperty("Caching").equalsIgnoreCase("false"));
        } finally {
            if (in != null) {
                IOUtils.closeQuietly(in);
            }
        }

        // dispose
        coverage.dispose(true);
        reader.dispose();

        //build an absolute index and then make it run
        CatalogBuilderConfiguration c2 = new CatalogBuilderConfiguration();
        c2.setIndexName("shpindex_absolute");
        c2.setLocationAttribute("location");
        c2.setAbsolute(true);
        c2.setCaching(true);
        c2.setRootMosaicDirectory(TestData.file(this, "/overview").toString());
        c2.setIndexingDirectories(Arrays.asList(TestData.file(this, "/overview/0").toString()));
        assertNotNull(c2.toString());
        //build the index
        builder = new CatalogBuilder(c2);
        builder.addProcessingEventListener(new CatalogBuilderListener());
        builder.run();
        final File absoluteMosaic = TestData.file(this, "/overview/" + c2.getIndexName() + ".shp");
        assertTrue(absoluteMosaic.exists());

        //caching should be false by default
        props = new Properties();
        in = null;
        try {
            in = TestData.openStream(this, "/overview/" + c2.getIndexName() + ".properties");
            assertNotNull("unable to find mosaic properties file", in);
            props.load(in);

            assertTrue(props.containsKey("Caching"));
            assertTrue(props.getProperty("Caching").equalsIgnoreCase("true"));
        } finally {
            if (in != null) {
                IOUtils.closeQuietly(in);
            }
        }

        assertTrue(new ImageMosaicFormat().accepts(absoluteMosaic));
        reader = (ImageMosaicReader) new ImageMosaicReader(absoluteMosaic);

        // limit yourself to reading just a bit of it
        gg = AbstractGridFormat.READ_GRIDGEOMETRY2D.createValue();
        envelope = reader.getOriginalEnvelope();
        dim = new Dimension();
        dim.setSize(reader.getOriginalGridRange().getSpan(0) / 2.0,
                reader.getOriginalGridRange().getSpan(1) / 2.0);
        rasterArea = ((GridEnvelope2D) reader.getOriginalGridRange());
        rasterArea.setSize(dim);
        range = new GridEnvelope2D(rasterArea);
        gg.setValue(new GridGeometry2D(range, envelope));

        // use imageio with defined tiles

        // Test the output coverage
        coverage = (GridCoverage2D) reader.read(new GeneralParameterValue[] { gg, useJai, tileSize });
        Assert.assertNotNull(coverage);
        PlanarImage.wrapRenderedImage(coverage.getRenderedImage()).getTiles();

        // dispose
        coverage.dispose(true);
        reader.dispose();
    }
}

From source file:org.geotools.gce.imagemosaic.ImageMosaicPostgisIndexOnlineTest.java

/**
 * Complex test for Postgis indexing on db.
 * //from   w  ww.j  a v a 2 s. c o  m
 * @throws Exception
 */
@SuppressWarnings({ "unchecked", "rawtypes" })
@Test
public void testPostgisIndexing() throws Exception {
    final File workDir = new File(TestData.file(this, "."), tempFolderName1);
    assertTrue(workDir.mkdir());
    FileUtils.copyFile(TestData.file(this, "watertemp.zip"), new File(workDir, "watertemp.zip"));
    TestData.unzipFile(this, tempFolderName1 + "/watertemp.zip");
    final URL timeElevURL = TestData.url(this, tempFolderName1);

    //place datastore.properties file in the dir for the indexing
    FileWriter out = null;
    try {
        out = new FileWriter(new File(TestData.file(this, "."), tempFolderName1 + "/datastore.properties"));

        final Set<Object> keyset = fixture.keySet();
        for (Object key : keyset) {
            final String key_ = (String) key;
            final String value = fixture.getProperty(key_);

            out.write(key_.replace(" ", "\\ ") + "=" + value.replace(" ", "\\ ") + "\n");
        }
        out.flush();
    } finally {
        if (out != null) {
            IOUtils.closeQuietly(out);
        }
    }

    // now start the test
    final AbstractGridFormat format = TestUtils.getFormat(timeElevURL);
    assertNotNull(format);
    ImageMosaicReader reader = TestUtils.getReader(timeElevURL, format);
    assertNotNull(reader);

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

    assertEquals("true", reader.getMetadataValue("HAS_TIME_DOMAIN"));
    final String timeMetadata = reader.getMetadataValue("TIME_DOMAIN");
    assertNotNull(timeMetadata);
    assertEquals(2, timeMetadata.split(",").length);
    assertEquals(timeMetadata.split(",")[0], reader.getMetadataValue("TIME_DOMAIN_MINIMUM"));
    assertEquals(timeMetadata.split(",")[1], reader.getMetadataValue("TIME_DOMAIN_MAXIMUM"));

    assertEquals("true", reader.getMetadataValue("HAS_ELEVATION_DOMAIN"));
    final String elevationMetadata = reader.getMetadataValue("ELEVATION_DOMAIN");
    assertNotNull(elevationMetadata);
    assertEquals(2, elevationMetadata.split(",").length);
    assertEquals(Double.parseDouble(elevationMetadata.split(",")[0]),
            Double.parseDouble(reader.getMetadataValue("ELEVATION_DOMAIN_MINIMUM")), 1E-6);
    assertEquals(Double.parseDouble(elevationMetadata.split(",")[1]),
            Double.parseDouble(reader.getMetadataValue("ELEVATION_DOMAIN_MAXIMUM")), 1E-6);

    // limit yourself to reading just a bit of it
    final ParameterValue<GridGeometry2D> gg = AbstractGridFormat.READ_GRIDGEOMETRY2D.createValue();
    final GeneralEnvelope envelope = reader.getOriginalEnvelope();
    final Dimension dim = new Dimension();
    dim.setSize(reader.getOriginalGridRange().getSpan(0) / 2.0, reader.getOriginalGridRange().getSpan(1) / 2.0);
    final Rectangle rasterArea = ((GridEnvelope2D) reader.getOriginalGridRange());
    rasterArea.setSize(dim);
    final GridEnvelope2D range = new GridEnvelope2D(rasterArea);
    gg.setValue(new GridGeometry2D(range, envelope));

    // use imageio with defined tiles
    final ParameterValue<List> time = ImageMosaicFormat.TIME.createValue();
    final List<Date> timeValues = new ArrayList<Date>();
    final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.sss'Z'");
    sdf.setTimeZone(TimeZone.getTimeZone("GMT+0"));
    Date date = sdf.parse("2008-10-31T00:00:00.000Z");
    timeValues.add(date);
    time.setValue(timeValues);

    final ParameterValue<double[]> bkg = ImageMosaicFormat.BACKGROUND_VALUES.createValue();
    bkg.setValue(new double[] { -9999.0 });

    final ParameterValue<Boolean> direct = ImageMosaicFormat.USE_JAI_IMAGEREAD.createValue();
    direct.setValue(false);

    final ParameterValue<List> elevation = ImageMosaicFormat.ELEVATION.createValue();
    elevation.setValue(Arrays.asList(100.0));

    // Test the output coverage
    assertNotNull(reader.read(new GeneralParameterValue[] { gg, time, bkg, elevation, direct }));
    TestUtils.checkCoverage(reader, new GeneralParameterValue[] { gg, time, bkg, elevation, direct },
            "Time-Elevation Test");

    // Test the output coverage
    reader = TestUtils.getReader(timeElevURL, format);
    elevation.setValue(Arrays.asList(NumberRange.create(0.0, 10.0)));
    TestUtils.checkCoverage(reader, new GeneralParameterValue[] { gg, time, bkg, elevation, direct },
            "Time-Elevation Test");
}

From source file:org.geotools.gce.imagemosaic.ImageMosaicPostgisIndexTest.java

/**
 * Complex test for Postgis indexing on db.
 * //from  w w w.j  av a2s.  c om
 * @throws Exception
 */
@SuppressWarnings({ "unchecked", "rawtypes" })
@Test
public void testPostgisIndexing() throws Exception {
    final File workDir = new File(TestData.file(this, "."), "watertemp4");
    assertTrue(workDir.mkdir());
    FileUtils.copyFile(TestData.file(this, "watertemp.zip"), new File(workDir, "watertemp.zip"));
    TestData.unzipFile(this, "watertemp4/watertemp.zip");
    final URL timeElevURL = TestData.url(this, "watertemp4");

    //place datastore.properties file in the dir for the indexing
    FileWriter out = null;
    try {
        out = new FileWriter(new File(TestData.file(this, "."), "/watertemp4/datastore.properties"));

        final Set<Object> keyset = fixture.keySet();
        for (Object key : keyset) {
            final String key_ = (String) key;
            final String value = fixture.getProperty(key_);

            out.write(key_.replace(" ", "\\ ") + "=" + value.replace(" ", "\\ ") + "\n");
        }
        out.flush();
    } finally {
        if (out != null) {
            IOUtils.closeQuietly(out);
        }
    }

    // now start the test
    final AbstractGridFormat format = TestUtils.getFormat(timeElevURL);
    assertNotNull(format);
    ImageMosaicReader reader = TestUtils.getReader(timeElevURL, format);
    assertNotNull(reader);

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

    assertEquals("true", reader.getMetadataValue("HAS_TIME_DOMAIN"));
    final String timeMetadata = reader.getMetadataValue("TIME_DOMAIN");
    assertNotNull(timeMetadata);
    assertEquals(2, timeMetadata.split(",").length);
    assertEquals(timeMetadata.split(",")[0], reader.getMetadataValue("TIME_DOMAIN_MINIMUM"));
    assertEquals(timeMetadata.split(",")[1], reader.getMetadataValue("TIME_DOMAIN_MAXIMUM"));

    assertEquals("true", reader.getMetadataValue("HAS_ELEVATION_DOMAIN"));
    final String elevationMetadata = reader.getMetadataValue("ELEVATION_DOMAIN");
    assertNotNull(elevationMetadata);
    assertEquals(2, elevationMetadata.split(",").length);
    assertEquals(Double.parseDouble(elevationMetadata.split(",")[0]),
            Double.parseDouble(reader.getMetadataValue("ELEVATION_DOMAIN_MINIMUM")), 1E-6);
    assertEquals(Double.parseDouble(elevationMetadata.split(",")[1]),
            Double.parseDouble(reader.getMetadataValue("ELEVATION_DOMAIN_MAXIMUM")), 1E-6);

    // limit yourself to reading just a bit of it
    final ParameterValue<GridGeometry2D> gg = AbstractGridFormat.READ_GRIDGEOMETRY2D.createValue();
    final GeneralEnvelope envelope = reader.getOriginalEnvelope();
    final Dimension dim = new Dimension();
    dim.setSize(reader.getOriginalGridRange().getSpan(0) / 2.0, reader.getOriginalGridRange().getSpan(1) / 2.0);
    final Rectangle rasterArea = ((GridEnvelope2D) reader.getOriginalGridRange());
    rasterArea.setSize(dim);
    final GridEnvelope2D range = new GridEnvelope2D(rasterArea);
    gg.setValue(new GridGeometry2D(range, envelope));

    // use imageio with defined tiles
    final ParameterValue<List> time = ImageMosaicFormat.TIME.createValue();
    final List<Date> timeValues = new ArrayList<Date>();
    final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.sss'Z'");
    sdf.setTimeZone(TimeZone.getTimeZone("GMT+0"));
    Date date = sdf.parse("2008-10-31T00:00:00.000Z");
    timeValues.add(date);
    time.setValue(timeValues);

    final ParameterValue<double[]> bkg = ImageMosaicFormat.BACKGROUND_VALUES.createValue();
    bkg.setValue(new double[] { -9999.0 });

    final ParameterValue<Boolean> direct = ImageMosaicFormat.USE_JAI_IMAGEREAD.createValue();
    direct.setValue(false);

    final ParameterValue<List> elevation = ImageMosaicFormat.ELEVATION.createValue();
    elevation.setValue(Arrays.asList(100.0));

    // Test the output coverage
    TestUtils.checkCoverage(reader, new GeneralParameterValue[] { gg, time, bkg, elevation, direct },
            "Time-Elevation Test");

    reader = TestUtils.getReader(timeElevURL, format);

    // Test the output coverage
    elevation.setValue(Arrays.asList(NumberRange.create(0.0, 10.0)));
    TestUtils.checkCoverage(reader, new GeneralParameterValue[] { gg, time, bkg, elevation, direct },
            "Time-Elevation Test");

    reader.dispose();

}

From source file:org.geotools.gce.imagemosaic.ImageMosaicReaderTest.java

/**
 * Tests the {@link ImageMosaicReader} with default parameters for the
 * various input params./* ww  w  . j  a  va  2  s  .  c  o  m*/
 * 
 * @throws IOException
 * @throws MismatchedDimensionException
 * @throws FactoryException 
 */
@Test
//   @Ignore
public void overviews() throws IOException, MismatchedDimensionException, FactoryException {
    final AbstractGridFormat format = TestUtils.getFormat(overviewURL);
    final ImageMosaicReader reader = TestUtils.getReader(overviewURL, format);

    // limit yourself to reading just a bit of it
    final ParameterValue<GridGeometry2D> gg = AbstractGridFormat.READ_GRIDGEOMETRY2D.createValue();
    final GeneralEnvelope envelope = reader.getOriginalEnvelope();
    final Dimension dim = new Dimension();
    dim.setSize(reader.getOriginalGridRange().getSpan(0) / 2.0, reader.getOriginalGridRange().getSpan(1) / 2.0);
    final Rectangle rasterArea = ((GridEnvelope2D) reader.getOriginalGridRange());
    rasterArea.setSize(dim);
    final GridEnvelope2D range = new GridEnvelope2D(rasterArea);
    gg.setValue(new GridGeometry2D(range, envelope));

    // use imageio with defined tiles
    final ParameterValue<Boolean> useJai = AbstractGridFormat.USE_JAI_IMAGEREAD.createValue();
    useJai.setValue(false);

    final ParameterValue<String> tileSize = AbstractGridFormat.SUGGESTED_TILE_SIZE.createValue();
    tileSize.setValue("128,128");

    // Test the output coverage
    TestUtils.checkCoverage(reader, new GeneralParameterValue[] { gg, useJai, tileSize }, "overviews test");
}

From source file:org.geotools.gce.imagemosaic.ImageMosaicReaderTest.java

@Test
public void timeElevationH2() throws Exception {

    final File workDir = new File(TestData.file(this, "."), "water temp3");
    if (!workDir.mkdir()) {
        FileUtils.deleteDirectory(workDir);
        assertTrue("Unable to create workdir:" + workDir, workDir.mkdir());
    }/*from  ww  w  . java 2 s. co m*/
    FileUtils.copyFile(TestData.file(this, "watertemp.zip"), new File(workDir, "watertemp.zip"));
    TestData.unzipFile(this, "water temp3/watertemp.zip");
    final URL timeElevURL = TestData.url(this, "water temp3");

    //place H2 file in the dir
    FileWriter out = null;
    try {
        out = new FileWriter(new File(TestData.file(this, "."), "/water temp3/datastore.properties"));
        out.write("SPI=org.geotools.data.h2.H2DataStoreFactory\n");
        out.write("database=imagemosaic\n");
        out.write("dbtype=h2\n");
        out.write("Loose\\ bbox=true #important for performances\n");
        out.write("Estimated\\ extends=false #important for performances\n");
        out.write("user=geosolutions\n");
        out.write("passwd=fucktheworld\n");
        out.write("validate \\connections=true #important for avoiding errors\n");
        out.write("Connection\\ timeout=3600\n");
        out.write("max \\connections=10 #important for performances, internal pooling\n");
        out.write("min \\connections=5  #important for performances, internal pooling\n");
        out.flush();
    } finally {
        if (out != null) {
            IOUtils.closeQuietly(out);
        }
    }

    // now start the test
    final AbstractGridFormat format = TestUtils.getFormat(timeElevURL);
    assertNotNull(format);
    ImageMosaicReader reader = TestUtils.getReader(timeElevURL, format);
    assertNotNull(reader);

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

    assertEquals("true", reader.getMetadataValue("HAS_TIME_DOMAIN"));
    final String timeMetadata = reader.getMetadataValue("TIME_DOMAIN");
    assertNotNull(timeMetadata);
    assertEquals(2, timeMetadata.split(",").length);
    assertEquals(timeMetadata.split(",")[0], reader.getMetadataValue("TIME_DOMAIN_MINIMUM"));
    assertEquals(timeMetadata.split(",")[1], reader.getMetadataValue("TIME_DOMAIN_MAXIMUM"));

    assertEquals("true", reader.getMetadataValue("HAS_ELEVATION_DOMAIN"));
    final String elevationMetadata = reader.getMetadataValue("ELEVATION_DOMAIN");
    assertNotNull(elevationMetadata);
    assertEquals(2, elevationMetadata.split(",").length);
    assertEquals(Double.parseDouble(elevationMetadata.split(",")[0]),
            Double.parseDouble(reader.getMetadataValue("ELEVATION_DOMAIN_MINIMUM")), 1E-6);
    assertEquals(Double.parseDouble(elevationMetadata.split(",")[1]),
            Double.parseDouble(reader.getMetadataValue("ELEVATION_DOMAIN_MAXIMUM")), 1E-6);

    // limit yourself to reading just a bit of it
    final ParameterValue<GridGeometry2D> gg = AbstractGridFormat.READ_GRIDGEOMETRY2D.createValue();
    final GeneralEnvelope envelope = reader.getOriginalEnvelope();
    final Dimension dim = new Dimension();
    dim.setSize(reader.getOriginalGridRange().getSpan(0) / 2.0, reader.getOriginalGridRange().getSpan(1) / 2.0);
    final Rectangle rasterArea = ((GridEnvelope2D) reader.getOriginalGridRange());
    rasterArea.setSize(dim);
    final GridEnvelope2D range = new GridEnvelope2D(rasterArea);
    gg.setValue(new GridGeometry2D(range, envelope));

    // use imageio with defined tiles
    final ParameterValue<List> time = ImageMosaicFormat.TIME.createValue();
    final List<Date> timeValues = new ArrayList<Date>();
    final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.sss'Z'");
    sdf.setTimeZone(TimeZone.getTimeZone("GMT+0"));
    Date date = sdf.parse("2008-10-31T00:00:00.000Z");
    timeValues.add(date);
    time.setValue(timeValues);

    final ParameterValue<double[]> bkg = ImageMosaicFormat.BACKGROUND_VALUES.createValue();
    bkg.setValue(new double[] { -9999.0 });

    final ParameterValue<Boolean> direct = ImageMosaicFormat.USE_JAI_IMAGEREAD.createValue();
    direct.setValue(false);

    final ParameterValue<List> elevation = ImageMosaicFormat.ELEVATION.createValue();
    elevation.setValue(Arrays.asList(100.0));

    // Test the output coverage
    TestUtils.checkCoverage(reader, new GeneralParameterValue[] { gg, time, bkg, elevation, direct },
            "Time-Elevation Test");

    reader = TestUtils.getReader(timeElevURL, format);
    elevation.setValue(Arrays.asList(NumberRange.create(0.0, 10.0)));

    // Test the output coverage
    TestUtils.checkCoverage(reader, new GeneralParameterValue[] { gg, time, bkg, elevation, direct },
            "Time-Elevation Test");

    // clean up
    if (!INTERACTIVE) {
        FileUtils.deleteDirectory(TestData.file(this, "water temp3"));
    }
}

From source file:org.geotools.gce.imagemosaic.ImageMosaicReaderTest.java

@Test
//   @Ignore//from   ww w  .  j a  v a  2s.  c o  m
public void timeElevation() throws IOException, ParseException, NoSuchAuthorityCodeException, FactoryException {
    final File workDir = new File(TestData.file(this, "."), "watertemp2");
    if (!workDir.mkdir()) {
        FileUtils.deleteDirectory(workDir);
        assertTrue("Unable to create workdir:" + workDir, workDir.mkdir());
    }
    FileUtils.copyFile(TestData.file(this, "watertemp.zip"), new File(workDir, "watertemp.zip"));
    TestData.unzipFile(this, "watertemp2/watertemp.zip");

    final URL timeElevURL = TestData.url(this, "watertemp2");

    final AbstractGridFormat format = TestUtils.getFormat(timeElevURL);
    assertNotNull(format);
    ImageMosaicReader reader = TestUtils.getReader(timeElevURL, format);
    assertNotNull(format);

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

    assertEquals("true", reader.getMetadataValue("HAS_TIME_DOMAIN"));
    final String timeMetadata = reader.getMetadataValue("TIME_DOMAIN");
    assertNotNull(timeMetadata);
    assertEquals(2, timeMetadata.split(",").length);
    assertEquals(timeMetadata.split(",")[0], reader.getMetadataValue("TIME_DOMAIN_MINIMUM"));
    assertEquals(timeMetadata.split(",")[1], reader.getMetadataValue("TIME_DOMAIN_MAXIMUM"));

    assertEquals("true", reader.getMetadataValue("HAS_ELEVATION_DOMAIN"));
    final String elevationMetadata = reader.getMetadataValue("ELEVATION_DOMAIN");
    assertNotNull(elevationMetadata);
    assertEquals(2, elevationMetadata.split(",").length);
    assertEquals(elevationMetadata.split(",")[0], reader.getMetadataValue("ELEVATION_DOMAIN_MINIMUM"));
    assertEquals(elevationMetadata.split(",")[1], reader.getMetadataValue("ELEVATION_DOMAIN_MAXIMUM"));

    // limit yourself to reading just a bit of it
    final ParameterValue<GridGeometry2D> gg = AbstractGridFormat.READ_GRIDGEOMETRY2D.createValue();
    final GeneralEnvelope envelope = reader.getOriginalEnvelope();
    final Dimension dim = new Dimension();
    dim.setSize(reader.getOriginalGridRange().getSpan(0) / 2.0, reader.getOriginalGridRange().getSpan(1) / 2.0);
    final Rectangle rasterArea = ((GridEnvelope2D) reader.getOriginalGridRange());
    rasterArea.setSize(dim);
    final GridEnvelope2D range = new GridEnvelope2D(rasterArea);
    gg.setValue(new GridGeometry2D(range, envelope));

    // use imageio with defined tiles
    final ParameterValue<List> time = ImageMosaicFormat.TIME.createValue();
    final List<Date> timeValues = new ArrayList<Date>();
    final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.sss'Z'");
    sdf.setTimeZone(TimeZone.getTimeZone("GMT+0"));
    Date date = sdf.parse("2008-11-01T00:00:00.000Z");
    timeValues.add(date);
    time.setValue(timeValues);

    final ParameterValue<Boolean> direct = ImageMosaicFormat.USE_JAI_IMAGEREAD.createValue();
    direct.setValue(false);

    final ParameterValue<double[]> bkg = ImageMosaicFormat.BACKGROUND_VALUES.createValue();
    bkg.setValue(new double[] { -9999.0 });

    final ParameterValue<List> elevation = ImageMosaicFormat.ELEVATION.createValue();
    elevation.setValue(Arrays.asList(0.0));

    // Test the output coverage
    TestUtils.checkCoverage(reader, new GeneralParameterValue[] { gg, time, bkg, elevation, direct },
            "Time-Elevation Test");

    reader = TestUtils.getReader(timeElevURL, format);
    elevation.setValue(Arrays.asList(NumberRange.create(0.0, 10.0)));

    // Test the output coverage
    TestUtils.checkCoverage(reader, new GeneralParameterValue[] { gg, time, bkg, elevation, direct },
            "Time-Elevation Test");

    // clean up
    if (!INTERACTIVE) {
        FileUtils.deleteDirectory(TestData.file(this, "watertemp2"));
    }
}

From source file:org.geotools.gce.imagemosaic.ImageMosaicReaderTest.java

@Test
//    @Ignore   //  w w w .  ja v a 2s.  c  om
public void imposedBBox() throws IOException, NoSuchAuthorityCodeException, FactoryException {
    final AbstractGridFormat format = TestUtils.getFormat(imposedEnvelopeURL);
    final ImageMosaicReader reader = TestUtils.getReader(imposedEnvelopeURL, format);

    //check envelope
    final GeneralEnvelope envelope = reader.getOriginalEnvelope();
    assertNotNull(envelope);

    assertEquals(envelope.getMinimum(0), -180.0, 1E-6);
    assertEquals(envelope.getMinimum(1), -90.0, 1E-6);
    assertEquals(envelope.getMaximum(0), 180.0, 1E-6);
    assertEquals(envelope.getMaximum(1), 90.0, 1E-6);

    // limit yourself to reading just a bit of it
    final ParameterValue<GridGeometry2D> gg = AbstractGridFormat.READ_GRIDGEOMETRY2D.createValue();
    final Dimension dim = new Dimension();
    dim.setSize(reader.getOriginalGridRange().getSpan(0) / 3.0, reader.getOriginalGridRange().getSpan(1) / 3.0);
    final Rectangle rasterArea = ((GridEnvelope2D) reader.getOriginalGridRange());
    rasterArea.setSize(dim);
    final GridEnvelope2D range = new GridEnvelope2D(rasterArea);
    gg.setValue(new GridGeometry2D(range, envelope));

    // use imageio with defined tiles
    final ParameterValue<Boolean> useJai = AbstractGridFormat.USE_JAI_IMAGEREAD.createValue();
    useJai.setValue(false);

    // Test the output coverage
    TestUtils.checkCoverage(reader, new GeneralParameterValue[] { gg, useJai }, "Imposed BBox");
}