final Envelope requestedEnvelopeCropped = CRS.transform(adjustedRequestedEnvelope,
requestedEnvelopeCRS2D);
final Rectangle2D ordinates = CRS.transform(readGridToWorld.inverse(),
requestedEnvelopeCropped).toRectangle2D();
final GeneralGridEnvelope finalRange = new GeneralGridEnvelope(ordinates.getBounds());
final Rectangle tempRect = finalRange.toRectangle();
// check that we stay inside the source rectangle
XRectangle2D.intersect(tempRect, requestedDim, tempRect);
requestedDim.setRect(tempRect);
} catch (TransformException te) {
// something bad happened while trying to transform this