// now we have enough info to read the coverage, grab the parameters
// and add the grid geometry info
final Map parameters = CoverageUtils.getParametersKVP(reader.getFormat()
.getReadParameters());
final GeneralEnvelope intersected = new GeneralEnvelope(destinationEnvelopeInSourceCRS);
intersected.intersect(originalEnvelope);
final GridGeometry2D destinationGridGeometry =new GridGeometry2D(PixelInCell.CELL_CENTER, gridToCRS, intersected, null);
parameters.put(AbstractGridFormat.READ_GRIDGEOMETRY2D.getName().toString(),
destinationGridGeometry);
coverage = (GridCoverage2D) reader.read(CoverageUtils.getParameters(reader.getFormat()
.getReadParameters(), parameters, true));