A factory for {@linkplain GridCoverage2D grid coverage} objects. This factory expects variouscombinaisons of the following informations:
- A name as a {@linkplain CharSequence character sequence}.
- A {@linkplain WritableRaster raster}, or an {@linkplain RenderedImage image}, or an {@linkplain ImageFunction image function}, or a matrix of kind {@code float[][]}.
- A ( {@linkplain CoordinateReferenceSystem coordinate reference system} -{@linkplain MathTransform transform}) pair, or an {@linkplain Envelope envelope}, or a {@linkplain GridGeometry2D grid geometry}. The envelope is easier to use, while the transform provides more control.
- Information about each {@linkplain GridSampleDimension sample dimensions} (oftencalled bands in the particular case of images), or minimal and maximal expected values for each bands.
- Optional properties as a {@linkplain Map map} of key-value pairs."Properties" in Java Advanced Imaging are called "Metadata" by OpenGIS. Keys are {@link String} objects ({@link CaselessStringKey} are accepted as well), whilevalues may be any {@link Object}.
The {@linkplain CoordinateReferenceSystem coordinate reference system} is inferred from thesupplied {@linkplain Envelope envelope} or {@linkplain GridGeometry2D grid geometry} parameters.If those parameters do not have CRS information, then this factory fallback on a {@linkplain #getDefaultCRS default CRS}.
Every {@code create} methods will ultimately delegate their work to a master{@link #create(CharSequence,RenderedImage,GridGeometry2D,GridSampleDimension[],GridCoverage[],Map) create} variant. Developpers can override this method if theywant to intercept the creation of all {@link GridCoverage2D} objects in this factory.
@since 2.1
@author Martin Desruisseaux
@source $URL$
@version $Id$