Describes the valid range of grid coordinates and the math transform to transform grid coordinates to real world coordinates. Grid geometries contains:
- An optional {@linkplain GridEnvelope grid envelope} (a.k.a. "grid range"),usually inferred from the {@linkplain RenderedImage rendered image} size.
- An optional "grid to CRS" {@linkplain MathTransform transform}, which may be inferred from the grid range and the envelope.
- An optional {@linkplain Envelope envelope}, which may be inferred from the grid range and the "grid to CRS" transform.
- An optional {@linkplain CoordinateReferenceSystem coordinate reference system} to begiven to the envelope.
All grid geometry attributes are optional because some of them may be inferred from a wider context. For example a grid geometry know nothing about {@linkplain RenderedImage renderedimages}, but {@link GridCoverage2D} do. Consequently, the later may infer the {@linkplain GridEnvelope grid range} by itself.
By default, any request for an undefined attribute will thrown an {@link InvalidGridGeometryException}. In order to check if an attribute is defined, use {@link #isDefined}.
@since 2.1
@source $URL$
@version $Id$
@author Martin Desruisseaux (IRD)
@author Simone Giannecchini, GeoSolutions SAS
@see GridGeometry2D
@see ImageGeometry