Examples of GeneralEnvelope


Examples of org.geotools.geometry.GeneralEnvelope

     *
     * @return The geographical area covered by the {@link #getGridEnvelope() grid range} of the
     *         raster at this pyramid level
     */
    public GeneralEnvelope getSpatialExtent() {
        return new GeneralEnvelope(spatialExtent);
    }
View Full Code Here

Examples of org.geotools.geometry.GeneralEnvelope

         * (North pole, South pole, 180� longitude). We will expand this initial box later.
         */
        CoordinateOperationFactory coordinateOperationFactory = CRS.getCoordinateOperationFactory(lenient);

        final CoordinateOperation operation = coordinateOperationFactory.createOperation(crs, targetCRS);
        final GeneralEnvelope transformed = CRS.transform(operation, this);
        transformed.setCoordinateReferenceSystem(targetCRS);

        /*
         * Now expands the box using the usual utility methods.
         */
        final ReferencedEnvelope target = new ReferencedEnvelope(transformed);
View Full Code Here

Examples of org.geotools.geometry.GeneralEnvelope

        int levelMinPixelY;
        int levelMaxPixelY;
        {
            // use a model to raster transform to find out which pixel range at the specified level
            // better match the requested extent
            GeneralEnvelope requestedPixels;
            try {
                requestedPixels = CRS.transform(modelToRaster, requestedEnvelope);
            } catch (NoninvertibleTransformException e) {
                throw new IllegalArgumentException(e);
            } catch (TransformException e) {
                throw new IllegalArgumentException(e);
            }

            levelMinPixelX = (int) Math.floor(requestedPixels.getMinimum(0));
            levelMinPixelY = (int) Math.floor(requestedPixels.getMinimum(1));

            levelMaxPixelX = (int) Math.ceil(requestedPixels.getMaximum(0));
            levelMaxPixelY = (int) Math.ceil(requestedPixels.getMaximum(1));

            final int width = levelMaxPixelX - levelMinPixelX;
            final int height = levelMaxPixelY - levelMinPixelY;
            levelOverlappingPixels = new GridEnvelope2D(levelMinPixelX, levelMinPixelY, width,
                    height);
View Full Code Here

Examples of org.geotools.geometry.GeneralEnvelope

                throw new RuntimeException(e);
            }
        }

        for (RasterQueryInfo rasterResultInfo : results) {
            final GeneralEnvelope rasterResultEnvelope = rasterResultInfo.getResultEnvelope();

            final GridEnvelope targetRasterGridRange;
            targetRasterGridRange = getTargetGridRange(modelToRaster, rasterResultEnvelope);

            rasterResultInfo.setMosaicLocation(targetRasterGridRange);
View Full Code Here

Examples of org.geotools.geometry.GeneralEnvelope

        final int numRasters = rasterInfo.getNumRasters();
        List<RasterQueryInfo> matchingRasters = new ArrayList<RasterQueryInfo>(numRasters);

        int optimalPyramidLevel;
        GeneralEnvelope gridEnvelope;
        for (int rasterN = 0; rasterN < numRasters; rasterN++) {
            optimalPyramidLevel = rasterInfo.getOptimalPyramidLevel(rasterN, overviewPolicy,
                    requestedEnvelope, requestedDim);
            gridEnvelope = rasterInfo.getGridEnvelope(rasterN, optimalPyramidLevel);
            final boolean edgesInclusive = true;
View Full Code Here

Examples of org.geotools.geometry.GeneralEnvelope

    public static void fitRequestToRaster(final GeneralEnvelope requestedEnvelope,
            final RasterDatasetInfo rasterInfo, final RasterQueryInfo query) {

        GridEnvelope resultGridRange;
        GeneralEnvelope resultEnvelope;
        // GridEnvelope resultDimensionInsideTiledImage;
        GridEnvelope tiledImageGridRange;
        // GridEnvelope levelTileRange;
        GridEnvelope matchingTiles;

        int rasterIndex = query.getRasterIndex();
        int pyramidLevel = query.getPyramidLevel();
        MathTransform2D rasterToModel = (MathTransform2D) rasterInfo.getRasterToModel(rasterIndex,
                pyramidLevel);
        MathTransform2D modelToRaster;

        try {
            modelToRaster = (MathTransform2D) rasterToModel.inverse();
            final GeneralEnvelope adjustedGRange = CRS.transform(modelToRaster, requestedEnvelope);

            int xmin = (int) Math.floor(adjustedGRange.getMinimum(0));
            int ymin = (int) Math.floor(adjustedGRange.getMinimum(1));
            int xmax = (int) Math.ceil(adjustedGRange.getMaximum(0));
            int ymax = (int) Math.ceil(adjustedGRange.getMaximum(1));

            final GridEnvelope levelRange = rasterInfo.getGridRange(rasterIndex, pyramidLevel);

            xmin = Math.max(xmin, levelRange.getLow(0));
            ymin = Math.max(ymin, levelRange.getLow(1));
            xmax = Math.min(xmax, levelRange.getHigh(0) + 1);// 1+ because getHigh is inclusive
            ymax = Math.min(ymax, levelRange.getHigh(1) + 1);// 1+ because getHigh is inclusive

            int width = xmax - xmin;
            int height = ymax - ymin;

            resultGridRange = new GridEnvelope2D(xmin, ymin, width, height);
            Rectangle2D finalEnvelope = CRS.transform(rasterToModel, (Rectangle2D) resultGridRange,
                    new Rectangle2D.Double());

            resultEnvelope = new GeneralEnvelope(finalEnvelope);
            CoordinateReferenceSystem crs = rasterInfo.getCoverageCrs();
            resultEnvelope.setCoordinateReferenceSystem(crs);
        } catch (TransformException e) {
            throw new RuntimeException(e);
        }
View Full Code Here

Examples of org.geotools.geometry.GeneralEnvelope

             * target image should have the same size). Then create again a new grid geometry,
             * this time with the target envelope.
             */
            GridEnvelope gridRange;
            try {
                final GeneralEnvelope transformed;
                transformed = CRS.transform(CRS.getCoordinateOperationFactory(true)
                        .createOperation(targetCRS, reducedCRS), target);
                final Envelope reduced;
                final MathTransform gridToCRS;
                if (reducedCRS == sourceCRS) {
                    reduced   = source.getEnvelope();
                    gridToCRS = gridGeometry.getGridToCRS();
                } else {
                    reduced   = CoverageUtilities.getEnvelope2D(source);
                    gridToCRS = GridGeometry2D.wrap(gridGeometry).getGridToCRS2D();
                }
                transformed.intersect(reduced);
                gridGeometry = new GridGeometry2D(PixelInCell.CELL_CENTER, gridToCRS, transformed, null);
            } catch (FactoryException exception) {
                recoverableException("resample", exception);
            } catch (TransformException exception) {
                recoverableException("resample", exception);
View Full Code Here

Examples of org.geotools.geometry.GeneralEnvelope

    public void testEnvelopes() throws NoSuchAuthorityCodeException, FactoryException,
            TransformException {
        // Setting up an UTM and WGS84 CRSs

        // Setup a 3D envelope and return it as 2D, making sure there is no 3rd dimension anymore
        final GeneralEnvelope envelope3D = new GeneralEnvelope(DefaultGeographicCRS.WGS84_3D);
        envelope3D.setEnvelope(0, 0, 0, 10, 10, 10);
        final Envelope requestedEnvelope = Utilities.getRequestedEnvelope2D(envelope3D);
        assertEquals(0, requestedEnvelope.getMinimum(0), DELTA);
        assertEquals(0, requestedEnvelope.getMinimum(1), DELTA);
        assertEquals(10, requestedEnvelope.getMaximum(0), DELTA);
        assertEquals(10, requestedEnvelope.getMaximum(1), DELTA);

        // 3D envelope has 3rd dimension whilst 2D one hasn't
        assertEquals(10, envelope3D.getMaximum(2), DELTA);
        boolean is3D = true;
        try {
            requestedEnvelope.getMaximum(2);
        } catch (IndexOutOfBoundsException e) {
            is3D = false;
View Full Code Here

Examples of org.geotools.geometry.GeneralEnvelope

    @Test
    public void testGetEnvelope() throws FactoryException, TransformException {

        // Setup an envelope in WGS84
        GeneralEnvelope envelope = new GeneralEnvelope(DefaultGeographicCRS.WGS84);
        envelope.setEnvelope(0, 0, 10, 10);
       
        GeneralEnvelope wgs84 = new GeneralEnvelope(Utilities.getEnvelopeAsWGS84(envelope, true));
        GeneralEnvelope wgs84_2 = new GeneralEnvelope(Utilities.getEnvelopeAsWGS84(envelope, false));
       
        // Ensure the 2 envelope contain the initial one
        assertFalse(wgs84.isEmpty());
        assertTrue(wgs84.contains(envelope, true));
        assertFalse(wgs84_2.isEmpty());
        assertTrue(wgs84_2.contains(envelope, true));
       
        // Setup an envelope in EPSG:3857
        envelope = new GeneralEnvelope(CRS.decode("EPSG:3857"));
        envelope.setEnvelope(0, 0, 10, 10);
       
        wgs84 = new GeneralEnvelope(Utilities.getEnvelopeAsWGS84(envelope, true));
        wgs84_2 = new GeneralEnvelope(Utilities.getEnvelopeAsWGS84(envelope, false));
        // Ensure the new envelopes are not empty
        assertFalse(wgs84.isEmpty());
        assertFalse(wgs84_2.isEmpty());
    }
View Full Code Here

Examples of org.geotools.geometry.GeneralEnvelope

    }
   
    @Test
    public void testCropRegion() throws TransformException{
        // Setup an envelope in WGS84
        GeneralEnvelope envelope = new GeneralEnvelope(DefaultGeographicCRS.WGS84);
        envelope.setEnvelope(0, 0, 10, 10);
       
        // Setup a rectangle
        Rectangle rect = new Rectangle(0, 0, 20, 20);
        GridEnvelope2D env = new GridEnvelope2D(rect);
       
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.