return new GridCoverageWrapper(coverageName, coverage, wrappedDims, properties);
/** * Test GridCoverage unwrapping * * @throws IOException */ @Test public void testGridCoverageUnwrapping() throws IOException { GridCoverageFactory gcFactory = new GridCoverageFactory(); RenderedImage image = new BufferedImage(1, 1, BufferedImage.TYPE_BYTE_GRAY); GridCoverage2D original = gcFactory.create( "original", image, new GeneralEnvelope(new Rectangle2D.Double(0, 0, 64, 64))); GridSampleDimension[] gsd = new GridSampleDimension[] {new GridSampleDimension("wrappedSampleDimension")}; GridCoverageWrapper wrapper = new GridCoverageWrapper("wrapped", original, gsd, null); assertNotSame(original.getSampleDimensions(), wrapper.getSampleDimensions()); assertNotSame(wrapper, original); assertSame(original, wrapper.unwrap(original.getClass())); } }
GridCoverageWrapper.wrapCoverage( coverage, coverage, sampleDimensions, null, true);
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; }
private GridCoverage2D padOnEnvelope(GridCoverage2D coverage, GeneralEnvelope padEnvelope) throws TransformException { GridCoverage2D padded = WCSUtils.padToEnvelope(coverage, padEnvelope); // in case of no padding just return the original coverage without wrapping if (padded == coverage) { return coverage; } padded = GridCoverageWrapper.wrapCoverage(padded, coverage, null, null, false); return padded; }
public static GridCoverage2D wrapCoverage( GridCoverage2D coverage, GridCoverage2D sourceCoverage, GridSampleDimension[] wrappedDimensions, Map properties, boolean forceWrapping) { if (coverage instanceof GridCoverageWrapper || forceWrapping) { return new GridCoverageWrapper( coverage.getName().toString(), coverage, wrappedDimensions == null ? coverage.getSampleDimensions() : wrappedDimensions, properties == null ? sourceCoverage.getProperties() : properties); } return coverage; }