Class AbstractGridCoverage2DReader
- All Implemented Interfaces:
 GridCoverageReader,GridCoverage2DReader
- Direct Known Subclasses:
 ArcGridReader,BaseGridCoverage2DReader,GeoPackageReader,GeoTiffReader,GrassCoverageReader,ImageMosaicReader,ImagePyramidReader,JP2KReader,MBTilesReader,NetCDFReader,PGRasterReader,TPKReader,WMSCoverageReader,WMTSCoverageReader,WorldImageReader
The main drawback I see with the current GeoApi GridCoverageReader interface is that there is no way to get real
 information about a raster source unless you instantiate a GridCoverage. As an instance it is impossible to know the
 envelope, the number of overviews, the tile size. This information is needed in order to perform decimation on
 reading or to use built-in overviews
 This really impacts the ability to exploit raster datasets in a desktop environment where caching is crucial.
- Since:
 - 2.3
 - Author:
 - Simone Giannecchini, GeoSolutions
 
- 
Field Summary
FieldsModifier and TypeFieldDescriptionprotected booleanTemp variable used in many readers.protected GridCoverageFactoryGridCoverageFactoryinstance.protected StringCoverage nameprotected CoordinateReferenceSystemcrs for this coverageprotected DatasetLayoutCoverageDatasetLayoutcontaining information about Overviews and Mask managementprotected static doubleSmall number used for double comparisonsprotected booleanIn case we are trying to read from a GZipped file this will be set to true.protected double[]Highest resolution available for this reader.protected HintsHints used by theAbstractGridCoverage2DReadersubclasses.protected ImageInputStreamInput stream that can be used to initialize subclasses ofAbstractGridCoverage2DReader.protected ImageInputStreamSpiprotected intThis contains the number of overviews.aaaprotected Double[]protected GeneralBoundsEnvelope read from fileprotected GridEnvelopeThe originalGridRangefor theGridCoverage2Dof this reader.protected double[][]Resolutions avialaible through an overviews based mechanism.protected MathTransform2DGridToWorld math transform.protected Double[]scales and offsets for rescalingprotected ObjectSource to read fromFields inherited from interface GridCoverage2DReader
ELEVATION_DOMAIN, ELEVATION_DOMAIN_MAXIMUM, ELEVATION_DOMAIN_MINIMUM, ELEVATION_DOMAIN_RESOLUTION, FILE_SOURCE_PROPERTY, HAS_ELEVATION_DOMAIN, HAS_TIME_DOMAIN, MULTICRS_EPSGCODES, MULTICRS_READER, PAM_DATASET, REPROJECTING_READER, SOURCE_URL_PROPERTY, TIME_DOMAIN, TIME_DOMAIN_MAXIMUM, TIME_DOMAIN_MINIMUM, TIME_DOMAIN_RESOLUTION - 
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedDefault protected constructor.Creates a new instance of aAIGReader.AbstractGridCoverage2DReader(Object input, Hints hints) Creates a new instance of aAIGReader. - 
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddAllSiblings(File file, List<File> files, String... extensions) Adds all the siblings that could be found to exist to the given file listprotected voidaddSiblings(List<File> files, File... siblings) Adds the specified siblings, if not null, and existingprotected booleanThis method is responsible for checking the provided coverage name against the coverage name for thisGridCoverage2DReader.protected voidcollectScaleOffset(IIOMetadata iioMetadata) Collects the scales and offsets for value rescaling from the metadata, if presentprotected final GridCoveragecreateImageCoverage(String coverageName, PlanarImage image) Creates aGridCoveragefor the providedPlanarImageusing theoriginalEnvelopethat was provided for this coverage.protected final GridCoverage2DcreateImageCoverage(String coverageName, PlanarImage image, MathTransform raster2Model) Creates aGridCoveragefor the providedPlanarImageusing theraster2Modelthat was provided for this coverage.protected final GridCoveragecreateImageCoverage(PlanarImage image) Creates aGridCoveragefor the providedPlanarImageusing theoriginalEnvelopethat was provided for this coverage.protected final GridCoverage2DcreateImageCoverage(PlanarImage image, MathTransform raster2Model) Creates aGridCoveragefor the providedPlanarImageusing theraster2Modelthat was provided for this coverage.protected final voiddecimationOnReadingControl(String coverageName, Integer imageChoice, ImageReadParam readP, double[] requestedRes) This method is responsible for evaluating possible subsampling factors once the best resolution level has been found, in case we have support for overviews, or starting from the original coverage in case there are no overviews available.voiddispose()Disposes this reader.protected voidfinalize()Forcing disposal of thisAbstractGridCoverage2DReaderwhich may keep anImageInputStreamopen.Retrieves theGeneralBoundsfor thisAbstractGridCoverage2DReader.getCoordinateReferenceSystem(String coverageName) Retrieves theGeneralBoundsfor thisAbstractGridCoverage2DReader.DatasetLayoutReturns theDatasetLayoutfor the coverage.DatasetLayoutgetDatasetLayout(String coverageName) Returns theDatasetLayoutfor the specified coverage.Return the set of dynamic parameterDescriptors (the ones related to domains) for this reader.getDynamicParameters(String coverageName) Return the set of dynamic parameterDescriptors (the ones related to domains) for this reader.protected List<FileGroupProvider.FileGroup>getFiles()Returns a list of files making up the source data for this reader (as a whole).intRetrieve the number of coverages contained within the input source.String[]Retrieve the list of coverages contained within the input source.Return the ground control points for the default coverage, or null if there are nonegetGroundControlPoints(String coverageName) Return the ground control points for the specified, or null if there are noneprotected double[]protected double[]getHighestRes(String coverageName) ImageLayoutRetrieve theImageLayoutfor the default coverage.ImageLayoutgetImageLayout(String coverageName) Retrieve theImageLayoutfor the specified coverage.getInfo()Information about this source.Default implementation returns a FileResourceInfo containing same fileGroup list contained in the ServiceInfo object.String[]Returns the list of metadata keywords associated with the input source as a whole (not associated with any particular grid coverage).String[]getMetadataNames(String coverageName) Returns the list of metadata keywords associated with a specific gridCoverage referred by name.getMetadataValue(String name) Retrieve the metadata value for a given metadata name.getMetadataValue(String coverageName, String name) Retrieve the metadata value for a given metadata name for a specified coverage.protected MultiLevelROIProvidergetMultiLevelROIProvider(String coverageName) Retrieves theGeneralBoundsfor thisAbstractGridCoverage2DReader.getOriginalEnvelope(String coverageName) Retrieves theGeneralBoundsfor thisAbstractGridCoverage2DReader.Retrieves theGeneralGridEnvelopethat represents the raster grid dimensions of the highest resolution level in this dataset.getOriginalGridRange(String coverageName) Retrieves theGeneralGridEnvelopethat represents the raster grid dimensions of the highest resolution level in this dataset.getOriginalGridToWorld(String coverageName, PixelInCell pixInCell) Retrieves the original grid to world transformation for thisAbstractGridCoverage2DReader.getOriginalGridToWorld(PixelInCell pixInCell) Retrieves the original grid to world transformation for thisAbstractGridCoverage2DReader.getOverviewGridEnvelope(int overviewIndex) getOverviewGridEnvelope(String coverageName, int overviewIndex) static PAMDatasetgetPamDataset(TIFFImageMetadata metadata) If available, parses the GDAL_METADATA tag contents and transforms it into a PAMDatasetstatic PAMDatasetgetPamDataset(File sourceFile, IIOMetadata metadata) Method that looks for an externalPAMDatasetfirst, and if not found, checks for an internalGDALMetadatainside a custom tag.double[]getReadingResolutions(String coverageName, OverviewPolicy policy, double[] requestedResolution) Returns the actual resolution used to read the data given the specified target resolution and the specified overview policydouble[]getReadingResolutions(OverviewPolicy policy, double[] requestedResolution) Returns the actual resolution used to read the data given the specified target resolution and the specified overview policyprotected AffineTransformgetRescaledRasterToModel(RenderedImage coverageRaster) Computes the raster to model of a rescaled output raster, based on the original transform and output raster scaling factorprotected static final double[]getResolution(GeneralBounds envelope, Rectangle2D dim, CoordinateReferenceSystem crs) This method is responsible for computing the resolutions in for the provided grid geometry in the provided crs.double[][]Retrieve the resolution levels for the default coverage.double[][]getResolutionLevels(String coverageName) Retrieve the resolution levels for the specified coverage.protected static FilegetSibling(File file, String extension) Retrieves the sibling of the specified file, if available, or null otherwisefinal ObjectRetrieves the source for thisAbstractGridCoverage2DReader.protected FileReturns the source as a File, if it can be converted to one, and it existsread(String coverageName, GeneralParameterValue... parameters) Retrieves theGridEnvelopeassociated to the specified coverageName for thisGridCoverage2DReader.abstract GridCoverage2Dread(GeneralParameterValue... parameters) Read the current grid coverage from the stream.protected voidsetlayout(ImageLayout layout) Set the provided layout for thisGridCoverage2DReader-protected voidsetLayout(ImageReader reader) Extract the ImageLayout from the provided reader for the first available image.protected IntegersetReadParams(String coverageName, OverviewPolicy overviewPolicy, ImageReadParam readP, GeneralBounds requestedEnvelope, Rectangle requestedDim) This method is responsible for preparing the read param for doing anImageReader.read(int, ImageReadParam).protected IntegersetReadParams(OverviewPolicy overviewPolicy, ImageReadParam readP, GeneralBounds requestedEnvelope, Rectangle requestedDim) This method is responsible for preparing the read param for doing anImageReader.read(int, ImageReadParam).Methods inherited from class Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface GridCoverageReader
getFormat 
- 
Field Details
- 
EPS
protected static double EPSSmall number used for double comparisons - 
numOverviews
protected int numOverviewsThis contains the number of overviews.aaa - 
raster2Model
2DGridToWorld math transform. - 
crs
crs for this coverage - 
originalEnvelope
Envelope read from file - 
coverageName
Coverage name - 
source
Source to read from - 
hints
Hints used by theAbstractGridCoverage2DReadersubclasses. - 
highestRes
protected double[] highestResHighest resolution available for this reader. - 
closeMe
protected boolean closeMeTemp variable used in many readers. - 
gzipped
protected boolean gzippedIn case we are trying to read from a GZipped file this will be set to true. - 
originalGridRange
The originalGridRangefor theGridCoverage2Dof this reader. - 
inStream
Input stream that can be used to initialize subclasses ofAbstractGridCoverage2DReader. - 
overViewResolutions
protected double[][] overViewResolutionsResolutions avialaible through an overviews based mechanism. - 
coverageFactory
GridCoverageFactoryinstance. - 
scales
scales and offsets for rescaling - 
offsets
 - 
inStreamSPI
 - 
dtLayout
protected DatasetLayout dtLayoutCoverageDatasetLayoutcontaining information about Overviews and Mask management 
 - 
 - 
Constructor Details
- 
AbstractGridCoverage2DReader
protected AbstractGridCoverage2DReader()Default protected constructor. Useful for wrappers. - 
AbstractGridCoverage2DReader
Creates a new instance of aAIGReader. I assume nothing about file extension.- Parameters:
 input- Source object for which we want to build anAIGReader.- Throws:
 DataSourceException
 - 
AbstractGridCoverage2DReader
Creates a new instance of aAIGReader. I assume nothing about file extension.- Parameters:
 input- Source object for which we want to build anAIGReader.hints- Hints to be used by this reader throughout his life.- Throws:
 DataSourceException
 
 - 
 - 
Method Details
- 
checkName
This method is responsible for checking the provided coverage name against the coverage name for thisGridCoverage2DReader.- Parameters:
 coverageName- the coverage name to check.- Returns:
 trueif thisGridCoverage2DReadercontains the provided coverage name,falseotherwise.
 - 
read
public GridCoverage2D read(String coverageName, GeneralParameterValue... parameters) throws IllegalArgumentException, IOException Description copied from interface:GridCoverage2DReaderRetrieves theGridEnvelopeassociated to the specified coverageName for thisGridCoverage2DReader.- Specified by:
 readin interfaceGridCoverage2DReader- Specified by:
 readin interfaceGridCoverageReader- Parameters:
 coverageName- the name of the coverage to work withparameters- an array ofGeneralParameterValuethat uses a subset of the available read params for thisGridCoverage2DReaderas specified by theFormat- Returns:
 - a 
GridCoverage2Dfor the underlying default coverage for thisGridCoverage2DReaderornullin case noGridCoverage2Dcan be read for the provided parameters. - Throws:
 IllegalArgumentException- if the specified coverageName does not existIOException- if a read operation failed for some other input/output reason, includingFileNotFoundExceptionif no file with the givennamecan be found, orIIOExceptionif an error was thrown by the underlying image library.
 - 
read
public abstract GridCoverage2D read(GeneralParameterValue... parameters) throws IllegalArgumentException, IOException Read the current grid coverage from the stream.Example:
- Specified by:
 readin interfaceGridCoverage2DReader- Specified by:
 readin interfaceGridCoverageReader- Parameters:
 parameters- Optional parameters matchingFormat.getReadParameters().- Returns:
 - a grid coverage from the input source.
 - Throws:
 InvalidParameterNameException- if a parameter inparametersdoesn't have a recognized name.InvalidParameterValueException- if a parameter inparametersdoesn't have a valid value.ParameterNotFoundException- if a parameter was required for the operation but was not provided in theparameterslist.CannotCreateGridCoverageException- if the coverage can't be created for a logical reason (for example an unsupported format, or an inconsistency found in the data).IOException- if a read operation failed for some other input/output reason, includingFileNotFoundExceptionif no file with the givennamecan be found, orIIOExceptionif an error was thrown by the underlying image library.InvalidParameterNameException- if a parameter inparametersdoesn't have a recognized name.InvalidParameterValueException- if a parameter inparametersdoesn't have a valid value.ParameterNotFoundException- if a parameter was required for the operation but was not provided in theparameterslist.IllegalArgumentException
 - 
setReadParams
protected Integer setReadParams(OverviewPolicy overviewPolicy, ImageReadParam readP, GeneralBounds requestedEnvelope, Rectangle requestedDim) throws IOException, TransformException This method is responsible for preparing the read param for doing anImageReader.read(int, ImageReadParam).This method is responsible for preparing the read param for doing an
ImageReader.read(int, ImageReadParam). It sets the passedImageReadParamin terms of decimation on reading using the provided requestedEnvelope and requestedDim to evaluate the needed resolution. It also returns andIntegerrepresenting the index of the raster to be read when dealing with multipage raster.- Parameters:
 overviewPolicy- it can be one ofHints#VALUE_OVERVIEW_POLICY_IGNORE,Hints#VALUE_OVERVIEW_POLICY_NEAREST,Hints#VALUE_OVERVIEW_POLICY_QUALITYorHints#VALUE_OVERVIEW_POLICY_SPEED. It specifies the policy to compute the overviews level upon request.readP- an instance ofImageReadParamfor setting the subsampling factors.requestedEnvelope- theGeneralBoundswe are requesting.requestedDim- the requested dimensions.- Returns:
 - the index of the raster to read in the underlying data source.
 - Throws:
 IOExceptionTransformException
 - 
setReadParams
protected Integer setReadParams(String coverageName, OverviewPolicy overviewPolicy, ImageReadParam readP, GeneralBounds requestedEnvelope, Rectangle requestedDim) throws IOException, TransformException This method is responsible for preparing the read param for doing anImageReader.read(int, ImageReadParam).This method is responsible for preparing the read param for doing an
ImageReader.read(int, ImageReadParam). It sets the passedImageReadParamin terms of decimation on reading using the provided requestedEnvelope and requestedDim to evaluate the needed resolution. It also returns andIntegerrepresenting the index of the raster to be read when dealing with multipage raster.- Parameters:
 overviewPolicy- it can be one ofHints#VALUE_OVERVIEW_POLICY_IGNORE,Hints#VALUE_OVERVIEW_POLICY_NEAREST,Hints#VALUE_OVERVIEW_POLICY_QUALITYorHints#VALUE_OVERVIEW_POLICY_SPEED. It specifies the policy to compute the overviews level upon request.readP- an instance ofImageReadParamfor setting the subsampling factors.requestedEnvelope- theGeneralBoundswe are requesting.requestedDim- the requested dimensions.- Returns:
 - the index of the raster to read in the underlying data source.
 - Throws:
 IOExceptionTransformException
 - 
getReadingResolutions
public double[] getReadingResolutions(OverviewPolicy policy, double[] requestedResolution) throws IOException Returns the actual resolution used to read the data given the specified target resolution and the specified overview policy- Specified by:
 getReadingResolutionsin interfaceGridCoverage2DReader- Parameters:
 policy- theOverviewPolicyto use during evaluation.requestedResolution- the requested resolution- Returns:
 - an array of 2 double with the resolution of the selected overview.
 - Throws:
 IOException- in case an error occurs.
 - 
getReadingResolutions
public double[] getReadingResolutions(String coverageName, OverviewPolicy policy, double[] requestedResolution) throws IOException Returns the actual resolution used to read the data given the specified target resolution and the specified overview policy- Specified by:
 getReadingResolutionsin interfaceGridCoverage2DReader- Parameters:
 coverageName- the name of the coverage to work on.policy- theOverviewPolicyto use during evaluation.requestedResolution- the requested resolution- Returns:
 - an array of 2 double with the resolution of the selected overview.
 - Throws:
 IOException- in case an error occurs.
 - 
decimationOnReadingControl
protected final void decimationOnReadingControl(String coverageName, Integer imageChoice, ImageReadParam readP, double[] requestedRes) This method is responsible for evaluating possible subsampling factors once the best resolution level has been found, in case we have support for overviews, or starting from the original coverage in case there are no overviews available.Anyhow this method should not be called directly but subclasses should make use of the setReadParams method instead in order to transparently look for overviews.
 - 
createImageCoverage
Creates aGridCoveragefor the providedPlanarImageusing theoriginalEnvelopethat was provided for this coverage.- Parameters:
 image- contains the data for the coverage to create.- Returns:
 - a 
GridCoverage - Throws:
 IOException
 - 
createImageCoverage
protected final GridCoverage createImageCoverage(String coverageName, PlanarImage image) throws IOException Creates aGridCoveragefor the providedPlanarImageusing theoriginalEnvelopethat was provided for this coverage.- Parameters:
 image- contains the data for the coverage to create.- Returns:
 - a 
GridCoverage - Throws:
 IOException
 - 
createImageCoverage
protected final GridCoverage2D createImageCoverage(PlanarImage image, MathTransform raster2Model) throws IOException Creates aGridCoveragefor the providedPlanarImageusing theraster2Modelthat was provided for this coverage.This method is vital when working with coverages that have a raster to model transformation that is not a simple scale and translate.
- Parameters:
 image- contains the data for the coverage to create.raster2Model- is theMathTransformthat maps from the raster space to the model space.- Returns:
 - a 
GridCoverage - Throws:
 IOException
 - 
createImageCoverage
protected final GridCoverage2D createImageCoverage(String coverageName, PlanarImage image, MathTransform raster2Model) throws IOException Creates aGridCoveragefor the providedPlanarImageusing theraster2Modelthat was provided for this coverage.This method is vital when working with coverages that have a raster to model transformation that is not a simple scale and translate.
- Parameters:
 image- contains the data for the coverage to create.raster2Model- is theMathTransformthat maps from the raster space to the model space.- Returns:
 - a 
GridCoverage - Throws:
 IOException
 - 
getResolution
protected static final double[] getResolution(GeneralBounds envelope, Rectangle2D dim, CoordinateReferenceSystem crs) throws DataSourceException This method is responsible for computing the resolutions in for the provided grid geometry in the provided crs.It is worth to note that the returned resolution array is of length of 2 and it always is lon, lat for the moment.
It might be worth to remove the axes reordering code when we are confident enough with the code to handle the north-up crs.TODO use orthodromic distance?
- Parameters:
 envelope- the GeneralEnvelope- Throws:
 DataSourceException
 - 
getOriginalGridRange
Retrieves theGeneralGridEnvelopethat represents the raster grid dimensions of the highest resolution level in this dataset.- Specified by:
 getOriginalGridRangein interfaceGridCoverage2DReader- Returns:
 - the 
GeneralGridEnvelopethat represents the raster grid dimensions of the highest resolution level in this dataset. 
 - 
getOriginalGridRange
Retrieves theGeneralGridEnvelopethat represents the raster grid dimensions of the highest resolution level in this dataset.- Specified by:
 getOriginalGridRangein interfaceGridCoverage2DReader- Parameters:
 coverageName- the name of the coverage to work with- Returns:
 - the 
GeneralGridEnvelopethat represents the raster grid dimensions of the highest resolution level in this dataset. 
 - 
getCoordinateReferenceSystem
Retrieves theGeneralBoundsfor thisAbstractGridCoverage2DReader.- Specified by:
 getCoordinateReferenceSystemin interfaceGridCoverage2DReader- Returns:
 - the 
GeneralBoundsfor thisAbstractGridCoverage2DReader. 
 - 
getCoordinateReferenceSystem
Retrieves theGeneralBoundsfor thisAbstractGridCoverage2DReader.- Specified by:
 getCoordinateReferenceSystemin interfaceGridCoverage2DReader- Returns:
 - the 
GeneralBoundsfor thisAbstractGridCoverage2DReader. 
 - 
getOriginalEnvelope
Retrieves theGeneralBoundsfor thisAbstractGridCoverage2DReader.- Specified by:
 getOriginalEnvelopein interfaceGridCoverage2DReader- Returns:
 - the 
GeneralBoundsfor thisAbstractGridCoverage2DReader. 
 - 
getOriginalEnvelope
Retrieves theGeneralBoundsfor thisAbstractGridCoverage2DReader.- Specified by:
 getOriginalEnvelopein interfaceGridCoverage2DReader- Parameters:
 coverageName- the name of the coverage to work on.- Returns:
 - the 
GeneralBoundsfor thisAbstractGridCoverage2DReader. 
 - 
getOriginalGridToWorld
Retrieves the original grid to world transformation for thisAbstractGridCoverage2DReader.- Specified by:
 getOriginalGridToWorldin interfaceGridCoverage2DReader- Parameters:
 pixInCell- specifies the datum of the transformation we want.- Returns:
 - the original grid to world transformation for this 
AbstractGridCoverage2DReader. 
 - 
getOriginalGridToWorld
Retrieves the original grid to world transformation for thisAbstractGridCoverage2DReader.- Specified by:
 getOriginalGridToWorldin interfaceGridCoverage2DReader- Parameters:
 pixInCell- specifies the datum of the transformation we want.coverageName- the name of the coverage to work with- Returns:
 - the original grid to world transformation for this 
AbstractGridCoverage2DReader. 
 - 
getSource
Retrieves the source for thisAbstractGridCoverage2DReader.- Specified by:
 getSourcein interfaceGridCoverageReader- Returns:
 - the source for this 
AbstractGridCoverage2DReader. 
 - 
dispose
public void dispose()Disposes this reader.This method just tries to close the underlying
ImageInputStream.- Specified by:
 disposein interfaceGridCoverageReader
 - 
getGridCoverageNames
Description copied from interface:GridCoverageReaderRetrieve the list of coverages contained within the input source. Each grid can have a different coordinate system, number of dimensions and grid geometry. For example, a HDF-EOS file (GRID.HDF) contains 6 grid coverages each having a different projection. An empty array will be returned if no sub names exist.- Specified by:
 getGridCoverageNamesin interfaceGridCoverageReader- Returns:
 - The list of grid coverages contained within the input source.
 
 - 
getMetadataNames
Description copied from interface:GridCoverageReaderReturns the list of metadata keywords associated with a specific gridCoverage referred by name. If no metadata is available, the array will be empty.- Specified by:
 getMetadataNamesin interfaceGridCoverageReader- Returns:
 - The list of metadata keywords for the input source.
 
 - 
getMetadataNames
Description copied from interface:GridCoverageReaderReturns the list of metadata keywords associated with the input source as a whole (not associated with any particular grid coverage). If no metadata is available, the array will be empty.- Specified by:
 getMetadataNamesin interfaceGridCoverageReader- Returns:
 - The list of metadata keywords for the input source.
 - See Also:
 
 - 
getMetadataValue
Description copied from interface:GridCoverageReaderRetrieve the metadata value for a given metadata name.- Specified by:
 getMetadataValuein interfaceGridCoverageReader- Parameters:
 name- Metadata keyword for which to retrieve metadata.- Returns:
 - The metadata value for the given metadata name. Should be one of the name returned by
     
GridCoverageReader.getMetadataNames(). - See Also:
 
 - 
getMetadataValue
Description copied from interface:GridCoverageReaderRetrieve the metadata value for a given metadata name for a specified coverage.- Specified by:
 getMetadataValuein interfaceGridCoverageReadername- Metadata keyword for which to retrieve metadata.- Returns:
 - The metadata value for the given metadata name. Should be one of the name returned by
     
GridCoverageReader.getMetadataNames(). 
 - 
getGridCoverageCount
public int getGridCoverageCount()Description copied from interface:GridCoverageReaderRetrieve the number of coverages contained within the input source.- Specified by:
 getGridCoverageCountin interfaceGridCoverageReader- Returns:
 - The number of coverages contained within the input source.
 - See Also:
 
 - 
getInfo
Information about this source.Subclasses should provide additional format specific information.
- Specified by:
 getInfoin interfaceGridCoverage2DReader- Returns:
 - ServiceInfo describing getSource().
 
 - 
getFiles
Returns a list of files making up the source data for this reader (as a whole). The default implementation returns the source, if it can be made into a File object, or null otherwise.- Throws:
 IOException
 - 
getSourceAsFile
Returns the source as a File, if it can be converted to one, and it exists - 
getInfo
Default implementation returns a FileResourceInfo containing same fileGroup list contained in the ServiceInfo object.- Specified by:
 getInfoin interfaceGridCoverage2DReader- Returns:
 - ResourceInfo describing a specific coverage.
 
 - 
finalize
Forcing disposal of thisAbstractGridCoverage2DReaderwhich may keep anImageInputStreamopen. - 
getDynamicParameters
Return the set of dynamic parameterDescriptors (the ones related to domains) for this reader. Default implementation returns an empty set of parameters- Specified by:
 getDynamicParametersin interfaceGridCoverage2DReader- Returns:
 - the 
Setof dynamic read parameters supported by thisGridCoverage2DReader. - Throws:
 IOException- in case an error occurs while creating theSetof dynamic parameters.
 - 
getDynamicParameters
Return the set of dynamic parameterDescriptors (the ones related to domains) for this reader. Default implementation returns an empty set of parameters- Specified by:
 getDynamicParametersin interfaceGridCoverage2DReader- Parameters:
 coverageName- the name of the coverage to work with- Returns:
 - the 
Setof dynamic read parameters supported by thisGridCoverage2DReader. - Throws:
 IOException- in case an error occurs while creating theSetof dynamic parameters.
 - 
getDatasetLayout
public DatasetLayout getDatasetLayout()Description copied from interface:GridCoverage2DReaderReturns theDatasetLayoutfor the coverage.- Specified by:
 getDatasetLayoutin interfaceGridCoverage2DReader- Returns:
 - a 
DatasetLayoutobject containing info about Overview number and Image masks. 
 - 
getDatasetLayout
Description copied from interface:GridCoverage2DReaderReturns theDatasetLayoutfor the specified coverage.- Specified by:
 getDatasetLayoutin interfaceGridCoverage2DReader- Parameters:
 coverageName- the name of the coverage for which we do want to get theDatasetLayout- Returns:
 - a 
DatasetLayoutobject containing info about Overview number and Image masks. 
 - 
getOverviewGridEnvelope
- Throws:
 IOException
 - 
getOverviewGridEnvelope
public GridEnvelope getOverviewGridEnvelope(String coverageName, int overviewIndex) throws IOException - Throws:
 IOException
 - 
getImageLayout
Description copied from interface:GridCoverage2DReaderRetrieve theImageLayoutfor the specified coverage.Throw an
IllegalArgumentExceptionin case the name is wrong and/or no such a coverage exists.- Specified by:
 getImageLayoutin interfaceGridCoverage2DReader- Parameters:
 coverageName- the name of the coverage for which we want to know theGridEnvelope.- Returns:
 - an 
ImageLayoutthat is useful for actually knowing theColorModel, theSampleModelas well as the tile grid for a certain coverage. - Throws:
 IOException
 - 
getImageLayout
Description copied from interface:GridCoverage2DReaderRetrieve theImageLayoutfor the default coverage.Throw an
IllegalArgumentExceptionin case the name is wrong and/or no such a coverage exists.- Specified by:
 getImageLayoutin interfaceGridCoverage2DReader- Returns:
 - an 
ImageLayoutthat is useful for actually knowing theColorModel, theSampleModelas well as the tile grid for the default coverage. - Throws:
 IOException
 - 
setLayout
Extract the ImageLayout from the provided reader for the first available image.- Parameters:
 reader- an istance ofImageReader- Throws:
 IOException- in case an error occurs
 - 
setlayout
protected void setlayout(ImageLayout layout) Set the provided layout for thisGridCoverage2DReader-- Parameters:
 layout- theImageLayoutto set. It must be nont null
 - 
getResolutionLevels
Description copied from interface:GridCoverage2DReaderRetrieve the resolution levels for the default coverage.Throw an
IllegalArgumentExceptionin case the name is wrong and/or no such a coverage exists.- Specified by:
 getResolutionLevelsin interfaceGridCoverage2DReader- Returns:
 - the resolution levels for the default coverage.
 - Throws:
 IOException
 - 
getResolutionLevels
Description copied from interface:GridCoverage2DReaderRetrieve the resolution levels for the specified coverage.Throw an
IllegalArgumentExceptionin case the name is wrong and/or no such a coverage exists.- Specified by:
 getResolutionLevelsin interfaceGridCoverage2DReader- Parameters:
 coverageName- the name of the coverage for which we want to know the resolution levels.- Returns:
 - the resolution levels for the specified coverage.
 - Throws:
 IOException
 - 
getHighestRes
 - 
getHighestRes
protected double[] getHighestRes() - 
getGroundControlPoints
Return the ground control points for the default coverage, or null if there are none - 
getGroundControlPoints
Return the ground control points for the specified, or null if there are none - 
getRescaledRasterToModel
Computes the raster to model of a rescaled output raster, based on the original transform and output raster scaling factor - 
getSibling
Retrieves the sibling of the specified file, if available, or null otherwise - 
addAllSiblings
Adds all the siblings that could be found to exist to the given file list - 
addSiblings
Adds the specified siblings, if not null, and existing - 
getMultiLevelROIProvider
 - 
collectScaleOffset
Collects the scales and offsets for value rescaling from the metadata, if present - 
getPamDataset
Method that looks for an externalPAMDatasetfirst, and if not found, checks for an internalGDALMetadatainside a custom tag.The method is tolerant to invalid metadata contents and will log at INFO level in case of invalid metadata structure: there might be files with invalid metadata that used to be read just fine before PAM dataset reading was implemented.
 - 
getPamDataset
public static PAMDataset getPamDataset(TIFFImageMetadata metadata) If available, parses the GDAL_METADATA tag contents and transforms it into a PAMDataset 
 -