Package org.opengis.coverage.grid

Examples of org.opengis.coverage.grid.GridCoverageReader


        if (type != TYPE_RASTER) {
            throw new IllegalArgumentException("Layer type is not raster");
        }

        CoverageInfo resource = (CoverageInfo) layerInfo.getResource();
        GridCoverageReader coverageReader = resource.getGridCoverageReader(null, null);
        return coverageReader;
    }
View Full Code Here


           
            // connect and defaults
            info.setURL(url);
            info.setType(obj.str("type"));
            try {
                GridCoverageReader reader = info.getGridCoverageReader(null, null);
                Format format = reader.getFormat();
                info.setDescription( format.getDescription() );
                info.setEnabled(true);
            } catch (IOException e) {
                info.setError(e);
                info.setEnabled(false);
View Full Code Here

            IO.bounds(obj.putObject("bounds"),info.getBounds());
            IO.schema(obj.putObject("schema"), schema, false);
        }
        if(store instanceof CoverageStoreInfo){
            CoverageStoreInfo data = (CoverageStoreInfo) store;
            GridCoverageReader r = data.getGridCoverageReader(null, null);
            obj.put("title", WordUtils.capitalize(name));
            obj.put("description", "");
            if( r instanceof GridCoverage2DReader){
                GridCoverage2DReader reader = (GridCoverage2DReader) r;
                CoordinateReferenceSystem crs = reader.getCoordinateReferenceSystem(name);
View Full Code Here

    /*
    final ParameterValueGroup writerParams = format.getWriteParameters();
        writerParams.parameter(AbstractGridFormat.GEOTOOLS_WRITE_PARAMS.getName().toString())
                    .setValue(wp);
    */
    GridCoverageReader coverageReader = mapLayerInfo.getCoverageReader();
   
    /*
     * Try to use a gridcoverage style render
     */
    GridCoverage2D subCov = null;
View Full Code Here

    // Create format and reader
    //
    // /////////////////////////////////////////////////////////////////////
    final GeoTiffFormat format = new GeoTiffFormat();
    // getting a reader
    GridCoverageReader reader = format.getReader(tiff);
    assertNotNull(reader);

    // /////////////////////////////////////////////////////////////////////
    //
    // Play with metadata
    //
    // /////////////////////////////////////////////////////////////////////
    IIOMetadataDumper metadataDumper = new IIOMetadataDumper(((GeoTiffReader) reader).getMetadata().getRootNode());
    if (TestData.isInteractiveTest()) {
      LOGGER.info(metadataDumper.getMetadata());
    } else
      metadataDumper.getMetadata();

    // /////////////////////////////////////////////////////////////////////
    //
    // Read the original coverage.
    //
    // /////////////////////////////////////////////////////////////////////
    GridCoverage2D gc = (GridCoverage2D) reader.read(null);
    if (TestData.isInteractiveTest()) {
      LOGGER.info(new StringBuilder("Coverage before: ").append("\n")
          .append(gc.getCoordinateReferenceSystem().toWKT()).append(
              gc.getEnvelope().toString()).toString());
    }
    final CoordinateReferenceSystem sourceCRS = gc.getCoordinateReferenceSystem2D();
    final GeneralEnvelope sourceEnvelope = (GeneralEnvelope) gc.getEnvelope();
    final GridGeometry2D sourcedGG = (GridGeometry2D) gc.getGridGeometry();
    final MathTransform sourceG2W = sourcedGG.getGridToCRS(PixelInCell.CELL_CENTER);

    // /////////////////////////////////////////////////////////////////////
    //
    //
    // CROP
    //
    //
    // /////////////////////////////////////////////////////////////////////

    // /////////////////////////////////////////////////////////////////////
    //
    // Crop the original coverage.
    //
    // /////////////////////////////////////////////////////////////////////
    double xc = sourceEnvelope.getMedian(0);
    double yc = sourceEnvelope.getMedian(1);
    double xl = sourceEnvelope.getSpan(0);
    double yl = sourceEnvelope.getSpan(1);
    final GeneralEnvelope cropEnvelope = new GeneralEnvelope(new double[] {
        xc - xl / 4.0, yc - yl / 4.0 }, new double[] { xc + xl / 4.0,
        yc + yl / 4.0 });
    final CoverageProcessor processor = CoverageProcessor.getInstance();
    final ParameterValueGroup param = processor
        .getOperation("CoverageCrop").getParameters();
    param.parameter("Source").setValue(gc);
    param.parameter("Envelope").setValue(cropEnvelope);
    final GridCoverage2D cropped = (GridCoverage2D) processor.doOperation(param);

    // /////////////////////////////////////////////////////////////////////
    //
    // Check that we got everything correctly after the crop.
    //
    // /////////////////////////////////////////////////////////////////////
    // checking the ranges of the output image.
    final GridGeometry2D croppedGG = (GridGeometry2D) cropped.getGridGeometry();
    final GridEnvelope croppedGR = croppedGG.getGridRange();
    final MathTransform croppedG2W = croppedGG.getGridToCRS(PixelInCell.CELL_CENTER);
    final GeneralEnvelope croppedEnvelope = (GeneralEnvelope) cropped.getEnvelope();
    assertTrue("min x do not match after crop", 29 == croppedGR.getLow(0));
    assertTrue("min y do not match after crop", 30 == croppedGR.getLow(1));
    assertTrue("max x do not match after crop", 90 == croppedGR.getHigh(0)+1);
    assertTrue("max y do not match after crop", 91 == croppedGR.getHigh(1)+1);
    // check that the affine transform are the same thing
    assertTrue(
        "The Grdi2World tranformations of the original and the cropped covearage do not match",
        sourceG2W.equals(croppedG2W));
    // check that the envelope is correct
    final GeneralEnvelope expectedEnvelope = new GeneralEnvelope(croppedGR,PixelInCell.CELL_CENTER, croppedG2W, cropped.getCoordinateReferenceSystem2D());
    assertTrue("Expected envelope is different from the computed one",expectedEnvelope.equals(croppedEnvelope, XAffineTransform.getScale((AffineTransform) croppedG2W) / 2.0, false));

    //release things
    cropped.dispose(true);
    gc.dispose(true);
    try{
      if(reader!=null)
        reader.dispose();
    }catch (Throwable e) {
    }
    // /////////////////////////////////////////////////////////////////////
    //
    //
    // WRITING AND TESTING
    //
    //
    // /////////////////////////////////////////////////////////////////////
    final File writeFile = new File(new StringBuilder(writedir.getAbsolutePath()).append(File.separatorChar).append(cropped.getName().toString()).append(".tiff").toString());
    final GridCoverageWriter writer = format.getWriter(writeFile);
   
    try{
      writer.write(cropped, null);
    }catch (IOException e) {
    }
    finally{
      try{
        writer.dispose();
      }catch (Throwable e) {
      }
    }
    try{
      reader = new GeoTiffReader(writeFile, null);
      assertNotNull(reader);
      gc = (GridCoverage2D) reader.read(null);
      assertNotNull(gc);
      final CoordinateReferenceSystem targetCRS = gc.getCoordinateReferenceSystem2D();
      assertTrue(
          "Source and Target coordinate reference systems do not match",
          CRS.equalsIgnoreMetadata(sourceCRS, targetCRS));
      assertEquals("Read-back and Cropped envelopes do not match", cropped
          .getEnvelope(), croppedEnvelope);
 
      if (TestData.isInteractiveTest()) {
        LOGGER.info(new StringBuilder("Coverage after: ").append("\n")
            .append(gc.getCoordinateReferenceSystem().toWKT()).append(
                gc.getEnvelope().toString()).toString());
        if (TestData.isInteractiveTest())
          gc.show();
        else
          PlanarImage.wrapRenderedImage(gc.getRenderedImage()).getTiles();
 
      }
    }finally{
      try{
        if(reader!=null)
          reader.dispose();
      }catch (Throwable e) {
      }
     
      if(!TestData.isInteractiveTest())
        gc.dispose(true);
View Full Code Here

        // Create format and reader
        //
        // /////////////////////////////////////////////////////////////////////
        final GeoTiffFormat format = new GeoTiffFormat();
        // getting a reader
        GridCoverageReader reader = format.getReader(tiff);
        assertNotNull(reader);

        // /////////////////////////////////////////////////////////////////////
        //
        // Read the original coverage.
        //
        // /////////////////////////////////////////////////////////////////////
        GridCoverage2D gc = (GridCoverage2D) reader.read(null);
        if (TestData.isInteractiveTest()) {
            logger.info(new StringBuilder("Coverage before: ").append("\n")
                    .append(gc.getCoordinateReferenceSystem().toWKT())
                    .append(gc.getEnvelope().toString()).toString());
        }
        final CoordinateReferenceSystem sourceCRS = gc.getCoordinateReferenceSystem2D();
        final GeneralEnvelope sourceEnvelope = (GeneralEnvelope) gc.getEnvelope();
        final GridGeometry2D sourcedGG = (GridGeometry2D) gc.getGridGeometry();
        final MathTransform sourceG2W = sourcedGG.getGridToCRS(PixelInCell.CELL_CENTER);

        // /////////////////////////////////////////////////////////////////////
        //
        //
        // CROP
        //
        //
        // /////////////////////////////////////////////////////////////////////

        // /////////////////////////////////////////////////////////////////////
        //
        // Crop the original coverage.
        //
        // /////////////////////////////////////////////////////////////////////
        double xc = sourceEnvelope.getMedian(0);
        double yc = sourceEnvelope.getMedian(1);
        double xl = sourceEnvelope.getSpan(0);
        double yl = sourceEnvelope.getSpan(1);
        final GeneralEnvelope cropEnvelope = new GeneralEnvelope(new double[] { xc - xl / 4.0,
                yc - yl / 4.0 }, new double[] { xc + xl / 4.0, yc + yl / 4.0 });
        final CoverageProcessor processor = new CoverageProcessor();
        final ParameterValueGroup param = processor.getOperation("CoverageCrop").getParameters();
        param.parameter("Source").setValue(gc);
        param.parameter("Envelope").setValue(cropEnvelope);
        final GridCoverage2D cropped = (GridCoverage2D) processor.doOperation(param);

        // /////////////////////////////////////////////////////////////////////
        //
        // Check that we got everything correctly after the crop.
        //
        // /////////////////////////////////////////////////////////////////////
        // checking the ranges of the output image.
        final GridGeometry2D croppedGG = (GridGeometry2D) cropped.getGridGeometry();
        final GridEnvelope2D croppedGR = (GridEnvelope2D) croppedGG.getGridRange();
        final MathTransform croppedG2W = croppedGG.getGridToCRS(PixelInCell.CELL_CENTER);
        final GeneralEnvelope croppedEnvelope = (GeneralEnvelope) cropped.getEnvelope();
        assertTrue("min x do not match after crop", 29 == croppedGR.x);
        assertTrue("min y do not match after crop", 30 == croppedGR.y);
        assertTrue("max x do not match after crop", 90 == croppedGR.getMaxX());
        assertTrue("max y do not match after crop", 91 == croppedGR.getMaxY());
        // check that the affine transform are the same thing
        assertTrue("The Grdi2World tranformations of the original and the cropped covearage do not match",
                sourceG2W.equals(croppedG2W));
        // check that the envelope is correct
        final GeneralEnvelope expectedEnvelope = new GeneralEnvelope(croppedGR,
                PixelInCell.CELL_CENTER, croppedG2W, cropped.getCoordinateReferenceSystem2D());
        assertTrue("Expected envelope is different from the computed one",
                expectedEnvelope.equals(croppedEnvelope,
                        XAffineTransform.getScale((AffineTransform) croppedG2W) / 2.0, false));

        // /////////////////////////////////////////////////////////////////////
        //
        //
        // WRITING AND TESTING
        //
        //
        // /////////////////////////////////////////////////////////////////////
        final File writeFile = new File(writedir.getAbsolutePath() + File.separatorChar
                + cropped.getName().toString() + ".tiff");
        final GridCoverageWriter writer = format.getWriter(writeFile);
        // /////////////////////////////////////////////////////////////////////
        //
        // Create the writing params
        //
        // /////////////////////////////////////////////////////////////////////
        try {
            writer.write(cropped, null);
        } catch (IOException e) {
        } finally {
            try {
                writer.dispose();
            } catch (Throwable e) {
            }
        }
       
        // release things
        cropped.dispose(true);
        gc.dispose(true);
        if (reader != null) {
            try {

                reader.dispose();
            } catch (Throwable e) {
            }
        }
       
        try {
            reader = new GeoTiffReader(writeFile, null);
            assertNotNull(reader);
            gc = (GridCoverage2D) reader.read(null);
            assertNotNull(gc);
            final CoordinateReferenceSystem targetCRS = gc.getCoordinateReferenceSystem2D();
            assertTrue("Source and Target coordinate reference systems do not match",
                    CRS.equalsIgnoreMetadata(sourceCRS, targetCRS));
            assertEquals("Read-back and Cropped envelopes do not match", cropped.getEnvelope(),
                    croppedEnvelope);

            if (TestData.isInteractiveTest()) {
                logger.info(new StringBuilder("Coverage after: ").append("\n")
                        .append(gc.getCoordinateReferenceSystem().toWKT())
                        .append(gc.getEnvelope().toString()).toString());
                gc.show();
            } else {
                gc.getRenderedImage().getData();
            }

        } finally {
            if (reader != null) {
                try {

                    reader.dispose();
                } catch (Throwable e) {
                }
            }
            if (!TestData.isInteractiveTest()) {
                gc.dispose(true);
View Full Code Here

        AbstractGridFormat.GEOTOOLS_WRITE_PARAMS.getName().toString())
        .setValue(wp);

    if (format.accepts(statURL)) {
      // get a reader
      final GridCoverageReader reader = format.getReader(statURL);

      // get a grid coverage
      final GridCoverage2D gc = ((GridCoverage2D) reader.read(null));

      // preparing to write it down
      File testDir = TestData.file(this, "");
      newDir = new File(testDir.getAbsolutePath() + "/newDir");
      newDir.mkdir();
View Full Code Here

        ReferencedEnvelope env = new ReferencedEnvelope(r.getWest(), r.getEast(), r.getSouth(), r.getNorth(), crs);
        readGG.setValue(new GridGeometry2D(gridEnvelope, env));
        readParams[0] = readGG;

        AbstractGridFormat format = (AbstractGridFormat) new GrassCoverageFormatFactory().createFormat();
        GridCoverageReader reader = format.getReader(file);
        GridCoverage2D gc = ((GridCoverage2D) reader.read(readParams));
        return gc;
    }
View Full Code Here

        ReferencedEnvelope env = new ReferencedEnvelope(w, e, s, n, crs);
        readGG.setValue(new GridGeometry2D(gridEnvelope, env));
        readParams[0] = readGG;
        // do the reading
        AbstractGridFormat format = (AbstractGridFormat) new GrassCoverageFormatFactory().createFormat();
        GridCoverageReader reader = format.getReader(file);
        GridCoverage2D gc = ((GridCoverage2D) reader.read(readParams));
       
        // readgrassraster stop
        return gc;
    }
View Full Code Here

        File pitFile = DataUtilities.urlToFile(pitUrl);
        assertFalse(format.accepts(pitFile));
    }

    private GridCoverage2D readGc( AbstractGridFormat format, File fileToRead ) throws IOException {
        GridCoverageReader reader = format.getReader(fileToRead);
        GridCoverage2D gc = ((GridCoverage2D) reader.read(null));
        assertTrue(gc != null);
        assertTrue(CoverageUtilities.hasRenderingCategories(gc));

        checkMatrixEqual(gc.getRenderedImage(), mapData, 0);
View Full Code Here

TOP

Related Classes of org.opengis.coverage.grid.GridCoverageReader

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.