Point lcGrid = new Point();
mt.transform(lc, lcGrid);
Point2D uc = toPoint2D(envelope.getUpperCorner());
Point ucGrid = new Point();
mt.transform(uc, ucGrid);
GridEnvelope2D gridEnv = new GridEnvelope2D(
Math.min(lcGrid.x, ucGrid.x),
Math.min(lcGrid.y, ucGrid.y),
Math.abs(lcGrid.x - ucGrid.x),