private GridCoverage2D cropOnEnvelope(GridCoverage2D coverage, Envelope cropEnvelope) { CoordinateReferenceSystem sourceCRS = coverage.getCoordinateReferenceSystem(); CoordinateReferenceSystem subsettingCRS = cropEnvelope.getCoordinateReferenceSystem(); try { if (!CRS.equalsIgnoreMetadata(subsettingCRS, sourceCRS)) { cropEnvelope = CRS.transform(cropEnvelope, sourceCRS); } } catch (TransformException e) { throw new WCS20Exception( "Unable to initialize subsetting envelope", WCS20Exception.WCS20ExceptionCode.SubsettingCrsNotSupported, subsettingCRS.toWKT(), e); } GridCoverage2D cropped = WCSUtils.crop(coverage, cropEnvelope); cropped = GridCoverageWrapper.wrapCoverage(cropped, coverage, null, null, false); return cropped; }
final GridCoverage2D croppedGridCoverage = WCSUtils.crop(bandSelectedCoverage, (GeneralEnvelope) coverage.getEnvelope(), nativeCRS, destinationEnvelopeInSourceCRS, Boolean.TRUE);
final GridCoverage2D croppedGridCoverage = WCSUtils.crop(bandSelectedCoverage, (GeneralEnvelope) coverage.getEnvelope(), cvCRS, destinationEnvelopeInSourceCRS, Boolean.TRUE);
coverage = WCSUtils.crop(coverage, intersectionEnvelopeInSourceCRS);