GridToEnvelopeMapper g2eMapper = new GridToEnvelopeMapper();
g2eMapper.setEnvelope(requestedRegionEnvelope);
g2eMapper.setGridRange(new GridEnvelope2D(0, 0, requestedCols, requestedRows));
g2eMapper.setPixelAnchor(cellAnchor);
MathTransform gridToEnvelopeTransform = g2eMapper.createTransform();
GridCoverageFactory factory = CoverageFactoryFinder.getGridCoverageFactory(GeoTools.getDefaultHints());
GridCoverage2D coverage2D = factory.create(name, finalImage, crs, gridToEnvelopeTransform,
new GridSampleDimension[]{band}, null, null);
return coverage2D;