@Override public Object visit(BBOX filter, Object data) { final ReferencedEnvelope bbox = ReferencedEnvelope.reference(filter.getBounds()); if (this.bbox != null) { this.bbox = (ReferencedEnvelope) this.bbox.intersection(bbox); } else { this.bbox = bbox; } return super.visit(filter, data); } }
computedBBox.intersection(coverageProperties.bbox), coverageProperties.crs2D); if (computedBBox.isEmpty()) {
private Rectangle computeRasterArea( ReferencedEnvelope computedBBox, MathTransform2D requestedWorldToGrid) throws TransformException, FactoryException { final ReferencedEnvelope cropBBOXInRequestCRS = Utils.reprojectEnvelope(computedBBox, requestCRS, requestedBBox); // make sure it falls within the requested envelope cropBBOXInRequestCRS.intersection((org.locationtech.jts.geom.Envelope) requestedBBox); // now go back to raster space Rectangle computedRasterArea = new GeneralGridEnvelope( CRS.transform(requestedWorldToGrid, cropBBOXInRequestCRS), PixelInCell.CELL_CORNER, false) .toRectangle(); // intersect with the original requested raster space to be sure that we stay within // the requested raster area XRectangle2D.intersect(computedRasterArea, requestedRasterArea, computedRasterArea); return computedRasterArea; }
private GridCoverage2D cropCoverageOnRequestedEnvelope(GridCoverage2D readCoverage) { if (readCoverage == null) { return null; } try { ReferencedEnvelope requested = ReferencedEnvelope.reference(requestedGridGeometry.getEnvelope()); ReferencedEnvelope requestedNativeCRS = requested.transform(readCoverage.getCoordinateReferenceSystem(), true); ReferencedEnvelope coverageEnvelope = ReferencedEnvelope.reference(readCoverage.getEnvelope()); ReferencedEnvelope cropEnvelope = new ReferencedEnvelope( requestedNativeCRS.intersection(coverageEnvelope), readCoverage.getCoordinateReferenceSystem()); if (isNotEmpty(cropEnvelope)) { GridCoverage2D cropCoverage = cropCoverage(readCoverage, requestedNativeCRS); return cropCoverage; } else { return null; } } catch (Exception e) { LOGGER.log( Level.FINE, "Failed to crop coverage on the requested area, using the original one", e); return readCoverage; } }
bbox.intersection(cropBBox), cropBBox.getCoordinateReferenceSystem()); if (intersection.isEmpty()) { if (LOGGER.isLoggable(java.util.logging.Level.FINE)) {
((ReferencedEnvelope) cropBBox).intersection(coverageProperties.bbox), coverageProperties.crs2D);
ReferencedEnvelope validAreaInTargetCRS = validAreaBounds.transform(envelope.getCoordinateReferenceSystem(), true); envelope = envelope.intersection(validAreaInTargetCRS); if (envelope.isEmpty()) { return null; ReferencedEnvelope reduced = transformed.intersection(validArea); if (reduced.isNull()) { return null; if (handler != null && handler.validAreaBounds != null) { ReferencedEnvelope validAreaBounds = handler.validAreaBounds; envWGS84 = envWGS84.intersection(validAreaBounds); if (handler != null && handler.validAreaBounds != null) { ReferencedEnvelope validAreaBounds = handler.validAreaBounds; envWGS84 = envWGS84.intersection(validAreaBounds); bbox.getNorthBoundLatitude(), DefaultGeographicCRS.WGS84); Envelope intersection = envWGS84.intersection(restriction); if (intersection.isNull()) { return null;
ReferencedEnvelope cropEnvelope = new ReferencedEnvelope( readingEnvelope.intersection(coverageEnvelope), readerCRS); GridCoverage2D cropped = cropCoverage(coverage, cropEnvelope); return singleton(cropped); cropEnvelope = new ReferencedEnvelope( cropEnvelope.intersection(coverageEnvelope), readerCRS); cropEnvelope = new ReferencedEnvelope( cropEnvelope.intersection(readingEnvelope), readerCRS); GridCoverage2D cropped = cropCoverage(coverage, cropEnvelope); if (cropped != null) {
ReferencedEnvelope intersection = new ReferencedEnvelope( translated.intersection(excess), translated.getCoordinateReferenceSystem()); boolean isEmptyEnvelope =
@Test public void intersection() throws Exception { ReferencedEnvelope australia = new ReferencedEnvelope(DefaultGeographicCRS.WGS84); australia.include(40, 110); australia.include(10, 150); ReferencedEnvelope newZealand = new ReferencedEnvelope(DefaultEngineeringCRS.CARTESIAN_2D); newZealand.include(50, 165); newZealand.include(33, 180); try { australia.intersection(newZealand); fail("Expected a mismatch of CoordinateReferenceSystem"); } catch (MismatchedReferenceSystemException t) { // expected } }
if (CRS.equalsIgnoreMetadata(reqCrs, layerEnv.getCoordinateReferenceSystem())) { requestedExtent = requestedExtent.intersection(new ReferencedEnvelope(layerEnv)); if (LOGGER.isLoggable(Level.FINE)) { LOGGER.fine("Layer CRS match: cropping request bbox :" + requestedExtent); requestedExtent = requestedExtent.intersection(covExtentInReqCrs);
useFootprint ? new ReferencedEnvelope( granuleBBOX.intersection(inclusionGeometry.getEnvelopeInternal()), granuleBBOX.getCoordinateReferenceSystem()) : granuleBBOX; bbox.intersection(cropBBox), cropBBox.getCoordinateReferenceSystem()); if (intersection.isEmpty() || (useFootprint
new ReferencedEnvelope(validAreaBounds.intersection(geWGS84), WGS84); return geometry; envIntWgs84 = translated.intersection(geWGS84); } else if (validAreaBounds.contains( -180, (validAreaBounds.getMinY() + validAreaBounds.getMaxY()) / 2)) { return geometry; envIntWgs84 = translated.intersection(geWGS84); new ReferencedEnvelope(validAreaBounds.intersection(geWGS84), WGS84);
new ReferencedEnvelope( ((ReferencedEnvelope) cropBBox) .intersection(rasterManager.spatialDomainManager.coverageBBox), rasterManager.spatialDomainManager.coverageCRS2D);
((ReferencedEnvelope) requestedBBox).intersection(coverageBBox), coverageCRS2D); approximateWGS84requestedBBox.intersection(coverageGeographicBBox), DefaultGeographicCRS.WGS84); final GeneralEnvelope approximateRequestedBBoInNativeCRS =
bbox.intersection(cropBBox), cropBBox.getCoordinateReferenceSystem());
useFootprint ? new ReferencedEnvelope( granuleBBOX.intersection(inclusionGeometry.getEnvelopeInternal()), granuleBBOX.getCoordinateReferenceSystem()) : granuleBBOX; bbox.intersection(cropBBox), cropBBox.getCoordinateReferenceSystem()); if (intersection.isEmpty()) { if (LOGGER.isLoggable(java.util.logging.Level.FINE)) {
targetEnvelope.intersection(coveragesEnvelope), renderingEnvelope.getCoordinateReferenceSystem()); if (targetEnvelope.isEmpty() || targetEnvelope.isNull()) {
@Override public Object visit(BBOX filter, Object data) { final ReferencedEnvelope bbox= new ReferencedEnvelope( filter.getMinX(), filter.getMaxX(), filter.getMinY(), filter.getMaxY(), null); if(this.bbox!=null) this.bbox=(ReferencedEnvelope) this.bbox.intersection(bbox); else this.bbox=bbox; return super.visit(filter, data); }
private ReferencedEnvelope extractAndCombineBBox(Filter filter) { // TODO extract eventual bbox from query here final BBOXFilterExtractor bboxExtractor = new GTDataStoreGranuleCatalog.BBOXFilterExtractor(); filter.accept(bboxExtractor, null); ReferencedEnvelope requestedBBox=bboxExtractor.getBBox(); // add eventual bbox from the underlying index to constrain search if(requestedBBox!=null){ // intersection final Envelope intersection = requestedBBox.intersection(ReferencedEnvelope.reference(wrappedCatalogue.getBounds())); // create intersection final ReferencedEnvelope referencedEnvelope= new ReferencedEnvelope(intersection,wrappedCatalogue.getBounds().getCoordinateReferenceSystem()); } else return ReferencedEnvelope.reference(wrappedCatalogue.getBounds()); return requestedBBox; }